Freeform Arduino (10 / 11 steg)
Steg 10: IR-mottagare
XBee? Nej, för stor!
Bluetooth? Nej, för dyrt!
Tänk om jag bara använda IR-mottagare, bara två dollar!
Det är det! IR-mottagare bestämde jag mig.
Och här är de komponenter som jag köpte för detta projekt.
38khz IR mottagare (Radio Shack #276-0143)
IR-LED (Radio Shack #276-640) - inte används i projektet bara fick det för testprocessen.
Jag använde Poraloid fjärrkontrollen för att matcha med IR-mottagaren. (se Ken Shirriff blogg för sättet att göra det..)
Skiss
Jag använde Ken Shirriff IR-bibliotek, och jag anpassat en av prov skiss, IRrecDemo.ino, i biblioteket.
Jag använder också ett annat exempel, IRsendDemo.ino, för att avkoda min Polaroid IR fjärrkontroll, för att få värdet på Enter-knappen, så jag kan använda Enter-knappen för att slå på motorn. (Se detalj hur man gör detta på Kens blogg på nämnda länken ovan.)
/*
* IRremote: IRrecvDemo - visar mottagande IR koder med IRrecv
* En IR-detektor/demodulator måste anslutas till ingången RECV_PIN.
* Version 0.1 juli, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/
#include < IRremote.h >
#define motorPin 12
#define ledPin 13
int RECV_PIN = 9;
IRrecv irrecv(RECV_PIN);
decode_results resultat.
void setup()
{
Serial.BEGIN(9600);
pinMode (ledPin, produktionen);
digitalWrite (ledPin, låg);
pinMode (motorPin, produktionen);
digitalWrite (motorPin, låg);
irrecv.enableIRIn(); Starta mottagaren
}
void dance() {
Delay(200);
digitalWrite (motorPin, hög);
digitalWrite (ledPin, hög);
Delay(4000);
digitalWrite (motorPin, låg);
digitalWrite (ledPin, låg);
}
void loop() {
om (irrecv.decode (& resultat)) {
Serial.println (results.value, HEX);
Polaroid RC-50 Remote: Ange = 0x9C63AC04
IF(results.Value == 0x9C63AC04) {
Dance();
}
irrecv.Resume(); Ta emot nästa värde
}
}