A friend of mine has a camera dolly that he made, but wanted it remote controlled so i took a microcontroller, some other electronic parts, a broken servo and a old DVD players IR remote (DVD player quit working).
PartsUsed:
- Teensy USB 2.0 microcontroller
- 5V 7805 voltage regulator
- X2 TIP3055 NPN Transistor
- X2 TIP42G PNP Transistor
- X6 1k ohm Resistor
- Red Blinking LED
- Momentary push button
- 5V reed relay
- 9V battery connector
- 9V battery
- Broken servo
- An old DVD player remote
- General-Purpose IC PC Board
You can see the h-bridge in the top right, lower left is the power regulator and the power on reed relay, to the right of that is the power on LED and the Power on button. To turn the box off you use the power button the the IR remote. I used an h-bridge I made because the broken servo that I used did not work with PWM, so I soldered to leads directly on the servo motor and removed the potentiometer.
Here is the code I used on the teensy:
/*
* Version 1.0 Nov, 2011
* Copyright 2011 Elijah Cochran
* http://www.elijahcochran.com
* Open a Serial Monitor for new IR code retrieval in HEX
*/
#include
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
// initialize the digital pins as outputs.
pinMode(8, OUTPUT); // "Motor lead 1"
pinMode(9, OUTPUT); // "Motor lead 2"
pinMode(1, OUTPUT); // Power Relay Pin
pinMode(11, OUTPUT); // Stats LED
}
int step = 1;
void loop() {
digitalWrite(1, HIGH); // Power Relay On
if (irrecv.decode(&results)) {
switch (results.value) {
case 0xDEB92: // left
digitalWrite(11, HIGH); // Stats LED On
digitalWrite(8, LOW); // resets pins
digitalWrite(9, LOW);
digitalWrite(8, HIGH); // begin motion
digitalWrite(9, LOW);
delay(5000); // wait for five second
digitalWrite(8, LOW); // stop motion
digitalWrite(11, LOW); // led off
break;
case 0x3EB92: // right
digitalWrite(11, HIGH); // Stats LED On
digitalWrite(8, LOW); // resets pins
digitalWrite(9, LOW);
digitalWrite(8, LOW); // begin motion
digitalWrite(9, HIGH);
delay(5000); // wait for five second
digitalWrite(9, LOW); // stop motion
digitalWrite(11, LOW); // led off
break;
case 0x68B92: // open / close
digitalWrite(11, HIGH); // Power Stats LED On
delay(50);
digitalWrite(11, LOW); // Power Stats LED Off
delay(50);
break;
case 0xA8B92: // off
digitalWrite(1,LOW); // Power System Off
delay(5000); // Wait five seconds to confirm its off
break;
default:
Serial.print("Received 0x");
Serial.println(results.value, HEX);
}
irrecv.resume(); // Receive the next value
}
}
What you do is you turn on the unit by holding down the power button, until the LED start blinking. Then the code turns on the reed relay to keep the power on. Then it starts looking for a IR code to come in. Here is the schematic.
Your website is really very informative. Keep posting that way.
this was a lovely article to read.
awesome blog to read…love to read it, thanks for all.
Thank you for your internet site! I really treasure what you’re providing here.