Arduino fjärrkontroll lampor med Universal Remote (6 / 7 steg)
Steg 6: Arduino skiss
Arduino RF till IR-projektet
av Jack Zaldivar
Skicka hög signal (250ms) var 5 sekunder, som test scenario
#include < IRremote.h >
definiera Pin outs baserat på layouten på originalfjärrkontrollen
CONST int OFF1_PIN = 2;
CONST int OFF2_PIN = 3;
CONST int OFF3_PIN = 4;
CONST int ON1_PIN = 5;
CONST int ON2_PIN = 6;
CONST int ON3_PIN = 7.
int BASE_PIN;
i följande avsnitt om för IR bearbetning
int RECV_PIN = 11;
char * recv_IR;
IRrecv irrecv(RECV_PIN);
IRsend irsend;
decode_results resultat.
under den setup() funktionen. definiera alla stift som utdata utom IR-mottagaren, som kommer att vara en ingång
Detta blir också alla utgångsstift till låg standard
void setup() {
Definiera alla på stift och läge låg
pinMode (ON1_PIN, OUTPUT);
digitalWrite (ON1_PIN, låg);
pinMode (ON2_PIN, OUTPUT);
digitalWrite (ON2_PIN, låg);
pinMode (ON3_PIN, OUTPUT);
digitalWrite (ON3_PIN, låg);
Definiera alla av stift och inställda läge till låg
pinMode (OFF1_PIN, OUTPUT);
digitalWrite (OFF1_PIN, låg);
pinMode (OFF2_PIN, OUTPUT);
digitalWrite (OFF2_PIN, låg);
pinMode (OFF3_PIN, OUTPUT);
digitalWrite (OFF3_PIN, låg);
Serial.BEGIN(9600); Öppna serieporten och datahastighet
irrecv.enableIRIn();
}
void loop() {
om (irrecv.decode (& resultat)) {
/*
Avkommentera dessa nästa få rader och övervaka värdena i Arduino följetong skärmen för att Visa debug data
Serial.Print ("bitar:");
Serial.println(results.BITS);
Serial.Print("type");
Serial.println(results.decode_type);
Serial.Print ("ul värde:");
Serial.println(results.Value);
Serial.println("---");
Serial.println (ultoa (results.value, NULL, results.bits));
osignerade långa test = strtoul ("a90", NULL, 12);
Serial.println(test);
*/
om (results.value == 2704) //piano Light ON - ljus 1
{
processReceived(ON1_PIN);
}
om (results.value == 2705) {//piano lampa av - ljus 1
processReceived(OFF1_PIN);
}
om (results.value == 2706) {//Table ljus på - ljus 2
processReceived(ON2_PIN);
}
om (results.value == 2707) {//Table av ljus - ljus 2
processReceived(OFF2_PIN);
}
irrecv.Resume(); Ta emot nästa värde
}
}
void processReceived (int BASE_PIN) {
digitalWrite (BASE_PIN, hög);
Delay(1000);
/*
Serial.Print rader används endast för felsökning. Avkommentera om måste du Visa status för funktionen
Serial.Print skrev ("");
Serial.Print(BASE_PIN);
Serial.println ("hög"); * /
digitalWrite (BASE_PIN, låg);
/*
Serial.println skrev ("låg");
Serial.Print ("bearbetas:");
Serial.println(BASE_PIN);
*/
}