Three years back in time, I bought Nikon D3000 DSLR. I started shooting, but the moment I needed remote, came one day (more over night), during on night photography session. I checked all local suppliers, but the prices were high. I ordered one from China. The problem with orders from China is that they take time. I started waiting and one day I made my IR remote, using the MSP430.
This is a youtube video showing the remote in action:
It doesn’t use the Launchpad hardware, I use it only for programming the MSP430G2231. This is the schematic of the remote:
This is a photo of the prototype
One tip use good quality buttons, I had to debug this low cost button for more than 1/2 hour. The battery I used is 3V, not 4.5 V, like in the schematic. You can remove the RESET button, I placed it for other purposes.
Now the code:
//; 2000 us ON
//; 27830 us OFF
//; 390 us ON
//; 1580 us OFF
//; 410 us ON
//; 3580 us OFF
//; 400 us ON
//; repeat after 63200 us (OFF)
#include
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
BCSCTL1 = CALBC1_1MHZ; // Set range
DCOCTL = CALDCO_1MHZ;
P1DIR = 0x41; // P1.0 and P1.6 output (red and green LEDs)
_delay_cycles(100000);
P1OUT = 0x41;
_delay_cycles(2000);
P1OUT = 0x00;
_delay_cycles(27830);
P1OUT = 0x41;
_delay_cycles(390);
P1OUT = 0x00;
_delay_cycles(1580);
P1OUT = 0x41;
_delay_cycles(410);
P1OUT = 0x00;
_delay_cycles(3580);
P1OUT = 0x41;
_delay_cycles(400);
P1OUT = 0x00;
_delay_cycles(63000);
P1OUT = 0x41;
_delay_cycles(2000);
P1OUT = 0x00;
_delay_cycles(27830);
P1OUT = 0x41;
_delay_cycles(390);
P1OUT = 0x00;
_delay_cycles(1580);
P1OUT = 0x41;
_delay_cycles(410);
P1OUT = 0x00;
_delay_cycles(3580);
P1OUT = 0x41;
_delay_cycles(400);
P1OUT = 0x00;
_delay_cycles(3000000);
for (;;)
{
P1OUT = 0x41; // P1.6 on (red LED)
_delay_cycles(1000000);
P1OUT = 0x00;
_delay_cycles(1000000);
}
}
Happy shooting!
Follow

