Lämpötilahälytin Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi. Laite koostuu Arduinokortista ja koekytkentälevystä. Hälyttimen toiminnat ohjelmoidaan Arduinolle. Lämpötila-anturi ja hälytinkomponentit asetetaan koekytkentälevylle. Arduino toimii laitteen aivoina. Arduinokortti on kuin pieni tietokone, johon voit ohjelmoida toimintoja. Tässä tutkimustyössä Arduino lukee lämpötila-anturin antamaa lukemaa ja ohjaa kahta lediä ja pientä kaiutinta. Koekytkentälevylle voit asettaa kytkennän elektroniset komponentit. Koekytkentälevyn reiät on kytketty toisiinsa kuvan mukaisesti. Reunalla olevat pystysuuntaisella linjalla sijaitsevat reiät on kytketty toisiinsa. Keskellä olevat reiät on kytketty vaakasuunnassa toisiinsa Tarvittavat välineet: koekytkentälevy ja Arduino/Genuino Uno 2 lediä (punainen ja vihreä) 2 kpl 220 ohmin vastuksia 1 kpl lämpötila-anturi TMP36 pietsosähköinen kaiutin hyppylankoja johdotusta varten (8 kpl) K.Blinnikka 2016 1
Lämpötilahälytys ledien avulla Kokoa kytkentä. 1. Aseta Arduinokortti ja koekytkentälevy kuvan mukaisesti. 2. Paina punainen ja vihreä ledi koekytkentälevylle. Ledissä on kaksi johtoa. Pidempi johto asetetaan alapuolelle. Punainen Lyhyempi johto Pidempi johto Vihreä 3. Laita kaksi 220 ohmin vastusta kuvan mukaisesti koekytkentälevylle. Vastusten tulee olla ledin ylemmän johdon kohdalla. 220 ohmin vastuksen ympärillä on värirenkaat punainen-punainen-ruskea. Vastukset voit asettaa kummin päin hyvänsä, suunnalla ei ole väliä. Kummankin vastuksen toinen johdin tulee asettaa aivan levyn reunalla olevaan reikäriviin. K.Blinnikka 2016 2
4. Yhdistä Arduinokortti kytkentälevyyn kolmella hyppylangalla. Lankojen värillä ei ole väliä. Tärkeintä on, että itse erotat eri johtimet. Kytke hyppylanka Arduinon pinnistä 2 vihreän ledin alempaan kytkentäjohtoon (samalle reikäriville), Arduinon pinnistä 6 punaisen ledin alempaan kytkentäjohtoon (samalle reikäriville), Arduinon pinnistä GND (Ground) koekytkentälevyn reunan reikäriviin. 5. Kytke lämpötila-anturi levylle. Aseta anturi täsmälleen kuvan mukaiseen asentoon, tasainen tekstipuoli kohti Arduinokorttia. K.Blinnikka 2016 3
6. Lisää kolme hyppylankaa anturille: Arduinon pinnistä +5 V anturin ylempään liitäntäjohtoon Arduinon pinnistä A0 anturin keskimmäiseen liitäntäjohtoon anturin alimmasta liitäntäjohdosta koekytkentälevyllä samaan riviin GNDjohtimen kanssa (reunimmainen reikärivi). Kytkentä on valmis kokeiltavaksi! Kuva valmiista kytkennästä ja laitteen piirikaavio. Huom.: kummassakin kuvassa on myös pienoiskaiutin kytketty pinniin 10. K.Blinnikka 2016 4
Kirjoita ohjelma Avaa Arduino-ohjelma tietokoneelle. Ohjelman tunnistat kuvakkeesta Ohjelma aukeaa Kirjoita ohjelma aaltosulkeiden väliin mallin mukaan. Muista kirjoittaa ohjelmakäskyjen loppuun puolipiste. Ohjelmakoodissa on vertailu lukemaan 160. Tämä vastaa 28 asteen lämpötilaa. void setup() { pinmode(2, OUTPUT); pinmode(6, OUTPUT); void loop() { int lukema = analogread(a0); if (lukema < 160) { digitalwrite(2, HIGH); digitalwrite(6, LOW); else { digitalwrite(2, LOW); digitalwrite(6, HIGH); delay(1000); K.Blinnikka 2016 5
Lataa ohjelma Arduinolle Kytke Arduinokortti USB-johdolla tietokoneeseen. Tarkista, että tietokone tunnistaa Arduinon: Valikossa Työkalut Kortti Arduino/Genuino Uno, Työkalut Portti (jokin COM-portti valittuna, yleensä COM3 tai suurempi). Lataa ohjelma Arduinolle työkalupalkin nuolinappulasta Arduino saattaa samalla kysyä talletatko tiedoston. Tiedostoa ei ole pakkoa tallettaa, joten voit painaa nappulaa Peruuta. Testaa laitteen toiminta. Lämmitä anturia esimerkiksi puristamalla sormilla. Huomaat kyllä, toimiiko laite! Hönkäile lämpötila-anturia kohti. Kokeile riittääkö lämmin uloshengitysilma aiheuttamaan hälytyksen. Lisätutkimuksia 1. Tutki ohjelmakoodia. Yritä päätellä, mitä kukin ohjelman käsky tarkoittaa. Viimeisenä oleva delay-käsky keskeyttää ohjelman etenemisen 1 sekunnin ajaksi (1000 ms). Laite siis mittaa ympäristön lämpötilaa kerran sekunnissa. 2. Vaihda if-käskyssä olevan vertailun ehtoa. Arduinon mittaama lukema vastaa aina jotakin lämpötilaa. Valitse taulukosta jokin arvo. Lämpötila ( o C) Arduinon lukema 22 148 24 152 26 156 28 160 30 164 32 168 Millä tavalla Arduinon lukema riippuu lämpötilasta? Kun teet ohjelmakoodiin muutoksia, paina työkalupalkissa olevaa latausnappulaa. Muutettu ohjelma siirtyy Arduinokortille! K.Blinnikka 2016 6
Lämpötilahälytys ledeillä ja äänellä Voit lisätä pietsosähköisen kaiuttimen kytkentälevylle. Kytke hyppylangat kuvan mukaisesti kaiuttimen navoista koekytkentälevyn GND-riville ja Arduinon pinniin 10. Muuta ohjelmaa ja kirjoita äänihälytys. void setup() { pinmode(2, OUTPUT); pinmode(6, OUTPUT); void loop() { int lukema = analogread(a0); if (lukema < 160) { digitalwrite(2, HIGH); digitalwrite(6, LOW); else { digitalwrite(2, LOW); digitalwrite(6, HIGH); tone(10, 300, 200); delay(1000); Huom.: Tone-käskyssä lukujen merkitys on tone(pinni, taajuus, kesto millisekunteina). K.Blinnikka 2016 7
Voit muokata ohjelmaa edelleen. Tässä versiossa äänen taajuus kasvaa lämpötilan kasvaessa. Laitetta voi käyttää akustisena lämpömittarina. void setup() { pinmode(2, OUTPUT); pinmode(6, OUTPUT); void loop() { int lukema = analogread(a0); if (lukema < 160) { digitalwrite(2, HIGH); digitalwrite(6, LOW); else { digitalwrite(2, LOW); digitalwrite(6, HIGH); int taajuus = 30*lukema-4100; tone(10, taajuus, 200); delay(1000); Lisätutkimuksia 1. Muuta ohjelmaa niin, että ledit toimivat päinvastoin. Punainen ledi syttyy, kun lämpötila on matala, vihreä ledi, kun lämpötila on korkea. (Tämän voi tehdä ohjelmakoodilla ainakin kahdella tavalla, keksitkö kummatkin? Mitä muita tapoja voisi olla?) 2. Tutki ohjelmakoodia ja päättele, mitä ohjelman käskyt tekevät. analogread digitalwrite tone delay Mitä merkitystä mahtaa olla ohjelmassa alussa olevilla pinmode-käskyllä? Mitä varten arvelet ohjelmassa olevan kaksi lohkoa, setup ja loop? Parilla ohjelmarivillä oleva int tarkoittaa englanninkielen sanaa integer eli kokonaisluku. K.Blinnikka 2016 8