Arduinosetissä mukana tullut infrapunavastaanotin otetaan nyt käyttöön ja tehdään Arduinolle ohjelma, joka tulkitsee lähetetyt infrapunaviestit. Ehkä selvemmin kuitenkin sanottu jos puhutaan kaukosäätimen vastaanottimesta.
Vastaanottimen komponenttina käytetään kolmijalkaista VS1838 IR-vastaanotinta, minkä pinnijärjestys on sama mikä lähes kaikissa IR-vastaanottimista löytyy:
Out-pinni kytketään Arduinon haluttuun pinniin, tässä tapauksessa pinniin numero 7.
Kytkentä
Kytkentä kokonaisuudessaan on hyvin yksinkertainen, alla olevan kuvan mukainen:
Vastaanottimelle kytketään 5 volttia (punainen), maajohto (musta) sekä OUT-signaalin johto (keltainen), mistä Arduino lukee IR-vastaanottimen havaitseman datan.
Ohjelma
Arduinon ohjelma aloitetaan lataamalla tarvittavat kirjastot internetistä osoitteesta http://z3t0.github.io/Arduino-IRremote/ . Kun tiedosto on ladattu, niin se lisätään Arduino IDE:n sisällä Sketch valikosta:
Seuraavaksi tehdään koodi, joka tulkitsee kauko-ohjaimen komennot:
#include <IRremote.h> // Pinni mihin IR-vastaanotin on kytketty int receive = 7; // Kirjaston vaatimat muuttujat IRrecv irrecv(receive); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if(irrecv.decode(&results)) // Onko jotain dataa vastaanotettu? { // Tarkastetaan mikä nappi oli kyseessä getTheIRCode(); irrecv.resume(); } else { // ei tehdä mitään } } void getTheIRCode() { switch(results.value) { case 0xFFA25D: Serial.println(" CH- "); break; case 0xFF629D: Serial.println(" CH "); break; case 0xFFE21D: Serial.println(" CH+ "); break; case 0xFF22DD: Serial.println(" PREV "); break; case 0xFF02FD: Serial.println(" NEXT "); break; case 0xFFC23D: Serial.println(" PLAY/PAUSE "); break; case 0xFFE01F: Serial.println(" VOL- "); break; case 0xFFA857: Serial.println(" VOL+ "); break; case 0xFF906F: Serial.println(" EQ "); break; case 0xFF6897: Serial.println(" 0 "); break; case 0xFF9867: Serial.println(" 100+ "); break; case 0xFFB04F: Serial.println(" 200+ "); break; case 0xFF30CF: Serial.println(" 1 "); break; case 0xFF18E7: Serial.println(" 2 "); break; case 0xFF7A85: Serial.println(" 3 "); break; case 0xFF10EF: Serial.println(" 4 "); break; case 0xFF38C7: Serial.println(" 5 "); break; case 0xFF5AA5: Serial.println(" 6 "); break; case 0xFF42BD: Serial.println(" 7 "); break; case 0xFF4AB5: Serial.println(" 8 "); break; case 0xFF52AD: Serial.println(" 9 "); break; default: Serial.println(" other button "); } delay(500); }
Mikäli koodin kirjoittamisen jälkeen kääntämisvaiheessa tulee virheilmoituksia, niin täytyy RobotIRremote -kirjasto poistaa Arduinon asennuskansiosta.
Kun koodi on saatu onnistuneesti Arduinolle ladattua, nähdään vastaanotetut kaukosäätimen komennot sarjamonitorista:
Kuten nähdään, niin ei ole kovin vaikea homma, koska taustatyötä on tehty paljon muiden toimesta. Siitä iso kiitos heille.
Seuraava osa: 12. RFID-tagien luku Arduinolla
Linkkejä:
https://arduino-info.wikispaces.com/IR-RemoteControl