Arduino låda kontrolleras av TV-fjärrkontroll och koden
Detta instructable visar dig hur jag har skapat en låda kontrolleras fjärrkontroll av en IR-sändare för TV. Jag har tagit inspiration av detta instructable kontroll någon krets med en TV Remote (och en Arduino). I denna länk kan du upptäcka biblioteket kan du avkoda signalen från din fjärrkontroll och instruktion för att ladda ner och installera biblioteket zip-filen. Syftet med detta projekt är återanvända gamla komponenter och förvandla dessa i elektroniska återanvändbara moduler.
KOD (ofullständig se .ino bifogad fil)
#include...
#include...
#define MAX_TIME 150
#define LED_PIN_yellow 3
#define LED_PIN_green 4
#define LED_PIN_red 5
#define LED_PIN_blue 6
#define USB_RELAY 9
#define LAMP_RELAY 10
IRrecv irrecv(11);
decode_results resultat.
lång lastPressTime = 0;
int state = låg;
int blink_register = 0;
int blink_fast_register = 0;
void setup()
{
pinMode (LED_PIN_red, OUTPUT);
pinMode (LED_PIN_green, OUTPUT);
pinMode (LED_PIN_yellow, OUTPUT);
pinMode (LED_PIN_blue, OUTPUT);
pinMode (USB_RELAY, OUTPUT);
pinMode (LAMP_RELAY, OUTPUT);
irrecv.enableIRIn(); Starta mottagaren
}
void loop() {
om (irrecv.decode (& resultat)) {
// --------------------------------------------------------
gula lysdioder
om (results.value == 0x443038C7) {
om (millis() - lastPressTime > MAX_TIME) {
Det har varit ett tag sedan senaste pressen, så här
måste vara en ny press.
Växla mellan staten
State = 1 - stat;
(blink_register = 0);
(blink_fast_register = 0);
digitalWrite (LED_PIN_yellow, staten);
}
lastPressTime = millis();
}
irrecv.Resume(); Ta emot nästa värde
// --------------------------------------------------------
gröna lysdioderna
om (results.value == 0x4430D827) {
om (millis() - lastPressTime > MAX_TIME) {
Det har varit ett tag sedan senaste pressen, så här
måste vara en ny press.
Växla mellan staten
State = 1 - stat;
(blink_register = 0);
(blink_fast_register = 0);
digitalWrite (LED_PIN_green, staten);
}
lastPressTime = millis();
}
irrecv.Resume(); Ta emot nästa värde
// --------------------------------------------------------
röda lysdioder
om (results.value == 0x443058A7) {
om (millis() - lastPressTime > MAX_TIME) {
Det har varit ett tag sedan senaste pressen, så här
måste vara en ny press.
Växla mellan staten
State = 1 - stat;
(blink_register = 0);
(blink_fast_register = 0);
digitalWrite (LED_PIN_red, staten);
}
lastPressTime = millis();
}
irrecv.Resume(); Ta emot nästa värde
// --------------------------------------------------------
blå lysdioder
om (results.value == 0x443002FD) {
om (millis() - lastPressTime > MAX_TIME) {
Det har varit ett tag sedan senaste pressen, så här
måste vara en ny press.
Växla mellan staten
State = 1 - stat;
(blink_register = 0);
(blink_fast_register = 0);
digitalWrite (LED_PIN_blue, staten);
}
lastPressTime = millis();
}
irrecv.Resume(); Ta emot nästa värde
// --------------------------------------------------------
USB_RELAY
KNAPP 4
om (results.value == 0x443020DF) {
om (millis() - lastPressTime > MAX_TIME) {
Det har varit ett tag sedan senaste pressen, så här
måste vara en ny press.
Växla mellan staten
State = 1 - stat;
(blink_register = 0);
(blink_fast_register = 0);
digitalWrite (USB_RELAY, staten);
}
lastPressTime = millis();
}
irrecv.Resume(); Ta emot nästa värde
// --------------------------------------------------------
LAMP_RELAY
KNAPPEN OK
om (results.value == 0x44308877) {
om (millis() - lastPressTime > MAX_TIME) {
Det har varit ett tag sedan senaste pressen, så här
måste vara en ny press.
Växla mellan staten
State = 1 - stat;
(blink_register = 0);
(blink_fast_register = 0);
digitalWrite (LAMP_RELAY, staten);
}
lastPressTime = millis();
}
irrecv.Resume(); Ta emot nästa värde
// --------------------------------------------------------
alla lysdioder
knappen 1
om (results.value == 0x4430807F) {
om (millis() - lastPressTime > MAX_TIME) {
Det har varit ett tag sedan senaste pressen, så här
måste vara en ny press.
Växla mellan staten
State = 1 - stat;
(blink_register = 0);
(blink_fast_register = 0);
digitalWrite (LED_PIN_red, staten);
digitalWrite (LED_PIN_blue, staten);
digitalWrite (LED_PIN_yellow, staten);
digitalWrite (LED_PIN_green, staten);
}
lastPressTime = millis();
}
irrecv.Resume(); Ta emot nästa värde
}
// --------------------------------------------------------
blinka alla lysdioder
knapp 2
om (results.value == 0x443040BF) {
(blink_register = 1);
(blink_fast_register = 0);
}
om (blink_register == 1) {
digitalWrite (LED_PIN_red, hög);
digitalWrite (LED_PIN_yellow, hög);
digitalWrite (LED_PIN_green, hög);
digitalWrite (LED_PIN_blue, hög);
Delay(1000);
digitalWrite (LED_PIN_red, låg);
digitalWrite (LED_PIN_yellow, låg);
digitalWrite (LED_PIN_green, låg);
digitalWrite (LED_PIN_blue, låg);
Delay(1000);
}
// --------------------------------------------------------
blinka snabbt alla lysdioder
knapp 3
om (results.value == 0x4430C03F) {
(blink_fast_register = 1);
(blink_register = 0);
}
om (blink_fast_register == 1) {
digitalWrite (LED_PIN_red, hög);
digitalWrite (LED_PIN_yellow, hög);
digitalWrite (LED_PIN_green, hög);
digitalWrite (LED_PIN_blue, hög);
Delay(200);
digitalWrite (LED_PIN_red, låg);
digitalWrite (LED_PIN_yellow, låg);
digitalWrite (LED_PIN_green, låg);
digitalWrite (LED_PIN_blue, låg);
Delay(200);
}
}