Tekstitykset
Syventävä: Infrapunalähetin
Johdanto
Infrapunasäteily on valoa, jota ihminen ei näe. Esimerkiksi Maker kitissäsi oleva etäisyyssensori toimii lähettämällä ja vastaanottamalla infrapunasäteilyä. Mitä vahvemman heijastuvan infrapunasignaalin anturi ottaa vastaan, sitä lähempänä kohde on.
Infrapunasignaaleja lähettävät myös monet kaukosäätimet. Tässä harjoituksessa pääset kokeilemaan, saatko käynnistettyä Arduinon toimintoja luokasta löytyvällä kaukosäätimellä!
Alla olevassa videossa näytetään, miten kaikenlaisia sähkölaitteita voi käynnistää kaukosäätimestä tulevan infrapunavalon avulla, kun ne on ensin kytketty Arduinoon.
Dejan Nedelkovski: Control any Electronics with a TV Remote | Arduino IR Tutorial
Tarvikkeet
Mehackit boardin (tai Arduinon), USB-johdon, koekytkentälevyn ja johtimien lisäksi tarvitset seuraavat komponentit.
Osa | Kuva | Kuvaus |
---|---|---|
Jatkojohto x 2 | ||
Infrapunalähetin | Infrapunasäteilyä lähettävä led. | |
Vastus 10 kΩ | Vastus vastustaa sähkövirran kulkua. Vastuksen arvo mitataan ohmeissa (Ω) ja ilmoitetaan komponentissa eri värisinä raitoina (tässä ruskea, musta, punainen ja kulta). | |
Infrapunavastaanotin | Infrapunasäteilyn vastaanotin (phototransistor) | |
Piezo-kaiutin | Elektroninen komponentti, jota voi käyttää värähtelyn havaitsemiseen sekä äänten tuottamiseen. | |
Kaukosäädin | Useimmat kaukosäätimet lähettävät infrapunapulsseista koostuvia sarjoja, jotka vastaanotin (esim. televisio) osaa tulkita ja toimia niiden mukaan. |
Virtapiiri
- Kytke piezo porttiin 5 ja maahan
- Kytke infrapunalähettimen (valkoinen) pidempi jalka jatko-johdon avulla porttiin 3 ja lyhyempi jalka myöskin jatkojohdon avulla 330 ohmin vastuksen kautta maahan.
- Kytke infrapunavastaanottimen (musta) pidempi jalka analogiseen porttiin 0 sekä 10 kilo-ohmin vastuksen kautta maahan. Kytke lyhyempi jalka 5V-jännitteeseen.
Ohjelman tavoite
Kun infrapunavastaanotin havaitsee kaukosäätimen signaalin, piezo soittaa jonkin äänen. Kaikki käytettävät komennot ovatkin sinulle tuttuja, mutta voit palauttaa niiden toimintaa mieleesi alla olevien linkkien kautta.
Tutut komennot:
- pinMode(portti, asetus)
- digitalWrite(portti, arvo)
- delay(aika)
- Serial.begin(nopeus)
- Serial.println(tuloste)
- If/else
- int-muuttujan luominen
- analogRead(portti)
- tone(portti, taajuus, kesto)
Ohjelmointi 1/3 - Infapunavastaanottimen testaus
void setup() {
pinMode(3, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(3, HIGH);
Serial.println(analogRead(0));
}
Ohjelmointi 2/3 - Suurin arvo talteen
Saatoit huomata, että kaukosäätimen nappien painaminen aiheuttaa yksittäisiä suuria arvoja, jotka ehdit hädin tuskin nähdä monitorillasi.
int remote;
int remoteMax;
void setup() {
pinMode(3, OUTPUT);
Serial.begin(9600);
}
void loop() {
//Tallennetaan muuttujaan remote ir-vastaanottimesta tuleva arvo.
remote = analogRead(0);
//Jos arvo on suurempi kuin aiempi maksimiarvo, korvataan
//maksimiarvo uudella arvolla.
if(remote > remoteMax){
remoteMax = remote;
}
Serial.print("Value = ");
Serial.print(remote);
Serial.print("\t");
Serial.print("Max-value = ");
Serial.print(remoteMax);
Serial.print("\n");
}
Ohjelmointi 3/3 - Ääntä piezosta
Viimeisessä vaiheessa otetaan piezo-summeri käyttöön. Piezo voisi soittaa melodian aina, kun kaukosäätimestä painetaan nappia. Voisit myös käynnistää piezon sijaan esimerkiksi aiemmin hakkeroimasi lelun!
int remote;
int remoteMax;
void setup() {
pinMode(3, OUTPUT);
//Aseta piezon portti tilaan OUTPUT
Serial.begin(9600);
}
void loop() {
remote = analogRead(0);
if(remote > remoteMax){
remoteMax = remote;
}
Serial.print("Value = ");
Serial.print(remote);
Serial.print("\t");
Serial.print("Max-value = ");
Serial.print(remoteMax);
Serial.print("\n");
// Jos valitsemasi raja-arvo ylittyy, soita piezolla jokin melodia
}
Lisätietoa
Melodioita Piezolla?
Pelkän äänen sijaan voisi olla hauskaa soittaa jokin melodia piezolla. Kolmannen luvun harjoituksessa R2D2 pääsitkin tutustumaan melodioiden soittamiseen. Katso myös tämä esimerkkiohjelma Arduinon sivuilta.