Styra något distans med infraröda signaler. (3 / 4 steg)
Steg 3: kod
Du kommer att behöva hämta IR biblioteket från http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html om du inte har det redan.
Du kanske känner igen några av denna kod, och det är att hålla allting enkelt. Jag använder koden allmänt tillgänglig på internet i stor utsträckning från arduino.cc och http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html så att om någon har frågor de kan se det upp för fler hänvisningar.
LED-kod
#include < IRremote.h >
osignerade långa someValue = 0xXXXXXXXX; där XXXXXXXX är på våra din fjärrkontroll värden.
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results resultat.
int ledde = 13.
Rutinen installationsprogrammet körs en gång när du trycker på reset:
void setup() {
Serial.BEGIN(9600);
irrecv.enableIRIn(); Starta mottagaren
initiera digital PIN-koden som en utgång.
pinMode ledde (, OUTPUT);
}
loop rutinen körs för evigt om och om igen:
void loop() {
om (irrecv.decode (& resultat)) {
Serial.println (results.value, HEX);
irrecv.Resume(); Ta emot nästa värde
}
IF(results.Value == someValue) {
digitalWrite (ledde, högt); Aktivera LED (HIGH är spänningsnivån)
Delay(1000); vänta en sekund
digitalWrite (ledde, låg); Inaktivera LED genom att spänningen låg
Delay(1000); vänta en sekund
}
}
Servo kod
#include < Servo.h >
#include < IRremote.h >
osignerade långa Value2 = 0xXXXXXXXX; där XXXXXXXX är på våra din fjärrkontroll värden. Vi kallar detta värde 1
osignerade långa värde1 = 0xXXXXXXXX; där XXXXXXXX är en annan knapp på fjärrkontrollen
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results resultat.
Servo servo1;
Rutinen installationsprogrammet körs en gång när du trycker på reset:
void setup() {
Serial.BEGIN(9600);
irrecv.enableIRIn(); Starta mottagaren
initiera digital PIN-koden som en utgång.
servo1.attach(10); attack servo till digital stift 10
}
}
loop rutinen körs för evigt om och om igen:
void loop() {
om (irrecv.decode (& resultat)) {
Serial.println (results.value, HEX);
irrecv.Resume(); Ta emot nästa värde
}
IF(results.Value == Value1) {
servo1.write(179);
}
IF(results.Value == Value1) {
servo1.write(1);
}
}