Controlling Leds by the Apple Remote (video updated using the Iphone Photostudio for Arduino Stand)
The idea originated because i´m learning a lot on Led driven home applications for lighting, and the first project i´m doing is led lighting for the kitchen (indirect). The commercial systems are very expensive, specially with dimmers and remote controls, so why not Arduino System?
The programming i thought would be very difficult for the IR remote, but it was very simple and fast thanks to this library: IRremote that you can download from this link.
Part List:
- 3 x LED
- 3 x resistencias 220 ohm
- 1 x IR receiver transistor
- 1 x placa Arduino UNO
- 1 x Apple Remote (funciona con cualquier control IR, sólo que me gusta el apple personalmente).
- 1 x breadboard
The conexions are made following the attached schematics; in this case i used digital input 11 to receive the info from de IR receiver, and the 4, and 5 as digital outputs for the LEDS and the 9 as analog output for the dimmer LED. The only difference between the 4, 5 and 9, is that in one of the LEDS i want to control de intensity (dimmer), using more buttons from the Apple Remote.
We are using the PLay button to start the middle led, the << (rev) button for the left led and the >> (FF) button for the right led. The + and – buttons will be used to change the intensity of the middle led.
/* Code for using the Apple Remote Control on Arduino To be used with 3 leds, port 4 and 5 (left and right), port 9 center. The + and - buttons act as dimmers on the port 9 led. The IR receiver is installed on port 11. On the center led (PLAY button) yo can switch on and off with the same button. */ #include <IRremote.h> int RECV_PIN = 11; //Assigning ports int ledPLAY = 9; int ledFF = 4; int ledREV = 5; //Assigning states (on = 0, off = 1) int ledPLAYst = 0; int ledFFst = 0; int ledREVst = 0; //Dimmer step int paso = 10; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); Serial.println("Comenzamos Lectura"); irrecv.enableIRIn(); // Start the receiver pinMode(ledPLAY, OUTPUT); pinMode(ledFF, OUTPUT); pinMode(ledREV, OUTPUT); } void ledCLEAR(){ digitalWrite(ledPLAY, LOW); digitalWrite(ledFF, LOW); digitalWrite(ledREV, LOW); //ledPLAYst = 0; } int brightness = 0; void loop() { if (irrecv.decode(&results)) { Serial.println(results.value); irrecv.resume(); // Receive the next value if (results.value == 2011242556) { ledCLEAR(); Serial.println("Play"); Serial.println(ledPLAYst); Serial.println(brightness); if (ledPLAYst == 0) { analogWrite(ledPLAY, brightness); ledPLAYst = 1; } else { analogWrite(ledPLAY, 0); ledPLAYst = 0; } } else if (results.value == 2011291708) { ledCLEAR(); Serial.println("FF"); digitalWrite(ledFF, HIGH); } else if (results.value == 2011238460) { ledCLEAR(); Serial.println("REV"); //digitalWrite(ledPLAY, HIGH); //digitalWrite(ledFF, HIGH); digitalWrite(ledREV, HIGH); } else if (results.value == 2011287612) { ledCLEAR(); Serial.println("+"); Serial.println(brightness); if (brightness < 255 - paso){ brightness=brightness + paso;} else {brightness = 255;} analogWrite(ledPLAY, brightness); } else if (results.value == 2011279420) { ledCLEAR(); Serial.println("-"); Serial.println(brightness); if (brightness > paso){ brightness=brightness - paso;} else {brightness = 0;} analogWrite(ledPLAY, brightness); } else if (results.value == 2011250748) { ledCLEAR(); Serial.println("Menu"); } else {Serial.println("Otro");} } }
Related Posts
This is a very simple proyect too. We are measuring the ambient temperature with a Thermistor (4,7k) and showing the results by an RGB Led. We are assuming the cool temperature is Blue and the hot is Red. You can see it working in this video: http://www.youtube.com/watch?v=uouKAKhgowQ The part list…
Para comentar debe estar registrado.