HUOM!
Pienessä, mustassa anturissa on kirjaimet TMP. Maker kitissä on muitakin samannäköisiä komponentteja joten varmista, että käytössäsi on oikea komponentti.
Hajuja, ääniä, lämpötiloja ja muita jatkuvanluonteisia asioita mitataan antureilla, joita voi kytkeä Arduinoonkin.
Tässä harjoituksessa testataan, millaisia antureita Mehackit Maker Kitistä löytyy. Antureiden nimiä ja toimintaa ei paljasteta tehtävänannossa, koska tehtävänäsi on selvittää itse, mihin eri anturit reagoivat!
Voit katsoa johdannoksi alta löytyvän videon, jossa pohditaan, minkälaista dataa erilaisilla antureilla voidaan saada tulevaisuuden älykkäässä kaupungeissa!
Mehackit boardin (tai Arduinon), USB-johdon, koekytkentälevyn ja johtimien lisäksi tarvitset seuraavat komponentit.
Osa | Kuva | Kuvaus |
---|---|---|
Jatkojohto x 3 | Anturit on tässä harjoituksessa kätevintä kytkeä jatkojohtojen päihin. Valitse musta, keltainen ja punainen! | |
LED | Pidempi jalka (kuvassa mutkallinen) eli anodi + -napaan eli Arduinon porttiin. Lyhyempi jalka eli katodi miinus-napaan eli maahan. | |
Vastus 330 Ω | Vastus vastustaa sähkövirran kulkua. Vastuksen arvo mitataan ohmeissa (Ω) ja ilmoitetaan komponentissa eri värisinä raitoina (tässä oranssi, oranssi, ruskea ja kulta). | |
? | Maker kitistäsi löytyy jompi kumpi, sillä nämä anturit mittaavat samaa asiaa! Jos sinulla on antureista alempi, sitä ei vielä kytketä osana tätä harjoitusta. | |
Kolmipaikkainen terminal block. | Mikäli Maker kitistäsi löytyy tällainen, on siitä apua edellisen rivin ylemmän anturin kytkennässä. | |
? | ? | |
? | Maker-kitistä löytyvä versio voi näyttää erilaiselta, mutta siinä on joka tapauksessa pitkä pyörivä tappi. | |
? | Huom: Mehackit Maker Kitissä on viisi samannäköistä mustaa komponenttia, mutta vain yksi niistä on oikea! Komponentin pinnalla on teksti "TMP 36GZ". Muut komponentit ovat transistoreita tai melodiapiirejä. |
Maker-kitistä löytyvien johtimien väreillä ei ole väliä virtapiirin toimimisen kannalta. Ihmisen on kuitenkin helpompi ymmärtää virtapiirejä, jos esimerkiksi maakytkentöihin on aina käytetty mustia johtoja. Käytä tämän virtapiirin tekemiseen kuvassa olevia johtimien värejä, jotta pysyt itse paremmin kärryillä kytkennöistä! Kytke tavalliset johdot Mehackit-boardiin tai Arduinoon ja pidennä niitä jatkojohdoilla.
Varaa jo valmiiksi lähelle kuvassa näkyvät anturit: tehtävänä on seuraavaksi ohjelmoida Arduino ja sitten vaihtaa jatkojohtojen päähän eri antureita ja testata, mihin asioihin mikäkin anturi reagoi. Antureiden nimiä ei paljasteta vielä
Anturit reagoivat ympäristön muutokseen ja välittävät tiedon tästä Arduinolle. Arduino tulkitsee anturista tulevan tiedon lukuna välillä 0-1023. Jos luku ylittää ohjelmassa määritellyn raja-arvon, Arduino laittaa porttiin 6 kiinnitetyn ledin päälle. Jos luku on on raja-arvoa pienempi, led on poissa päältä.
Tuttuja komentoja ja termejä:
Uusia komentoja:
int sensor = analogRead(A0);
if(sensor > 300){
//Jotain tapahtuu
}
else{
//Jotain muuta tapahtuu
}
void setup() {
// määrittele komennolla pinMode portti 6 ulostuloksi (OUTPUT)
Serial.begin(9600);
}
void loop() {
// määrittele kokonaislukumuuttuja (int) nimeltä sensor, ja aseta sen arvoksi
// portin 'A0' lukema komennolla analogRead.
Serial.println(sensor);
// lisää 10 millisekunnin viive käskyllä delay
if (sensor < 300) {
// laita portissa 6 oleva led päälle (HIGH) komennolla digitalWrite.
} else {
// laita portissa 6 oleva led pois päältä (LOW) komennolla digitalWrite.
}
}
Kun käytit aiemmin lämpötila-anturia, sen lukemista saattoi päätellä lämpötilan muutoksia, vaikka numerot eivät edustaneetkaan esimerkiksi celcius-asteita. Miten lämpötila-anturin datasta saisi helpommin ymmärrettävää?
float jannite = 0.0;
float lampo = 0.0; // float: desimaalilukujen tyyppi, nyt ei pärjätä kokonaisluvuilla
void setup()
{
Serial.begin(9600);
}
void loop()
{
//Mehackit-board mittaa anturiporteissa aina jännitteen muutosta,
//ja muuttaa jännitteen numeroksi välillä 0-1023.
//Alla muutetaan anturilukema takaisin jännitelukemaksi.
//Jännite täytyy tietää, jotta voidaan laskea lämpötila.
jannite = analogRead(A0) * 5.0 / 1024; Serial.print(jannite);
Serial.print("V ");
// Alla olevalla kaavalla lasketaan, mikä anturin havaitsema lämpötila on
//celcius-asteina. Kaava on anturin valmistajan tuottama.
lampo = (jannite-0.5) * 100;
//Lopuksi tulostetaan lämpoötila-arvo Serial monitoriin.
Serial.print(lampo);
Serial.println("'C");
delay(300);
}