Sisältö

  1. Yleistä
  2. Video
  3. Osat
  4. Kytkennät
  5. Ohjelmoiminen

_________________

Mitä seuraavaksi?

MITÄ TÄHÄN?

Yleistä

Tässä ohjeessa näytetään miten käytät valovastusta (ldr) arduinon tai Snap4Arduinon kanssa. Valovastus on vastus, joka reagoi valon määrään, ja sitä voikin käyttää sensorina jolla saamme vaikka valot syttymään kun on pimeää tai vaikka vaihdella valojen vilkutuksen nopeutta.

Osat

Valovastus

 

 

 

 

 

Led

 

 

 

 

Minkä tahansa värinen led käy.

Vastus

 

 

 

 

Tarvitset kaks vastusta, yksi vastus valovastukselle ja yksi ledille. Voit käyttää ledille 220 ohmin vastusta ja valovastukselle esimerkiksi 4.7 kilo-ohmin tai 10 kilo-ohmin vastuksen. Vastuksen koko vaikuttaa valovastuksen arvoihin.

Arduino

 

 

 

 

 

 

KYTKENNÄT

 

Yllä oleva kuva näyttää valovastuksen ja ledin kytkemisen. Tässä vielä huomioita

  1. Led on kytketty pinniin 11, koska osa Arduinon pinneistä on erityisiä PWM-pinnejä jotka mahdollistavat ledin valoisuuden muuttamisen tai vaikka moottorin nopeuden vaihtamisen. Lue lisää PWM:stä täältä.
  2. Valovastus on kytketty 5-volttiin ja maahan (GND) ja valovastuksen ja maan välissä on 10 kilo-ohmin tai 4.7-kilo-ohmin vastus. Valitsemasi vastus vaikuttaa valovastuksen tuottamiin arvoihin, mutta periaatteessa voit käyttää kumpaa vain vastusta.
  3. Valovastuksen arvo luetaan sen toisesta jalasta, samasta mistä vastus lähtee kohti maata. Ajatuksena on siis se että Arduino vain kuuntelee mitä valovastuksessa tapahtuu ja kertoo sen meille, jolloin voimme ohjelmoida Arduinon tekemään jotain tämän tiedon perusteella. Vastakohta tälle on perinteinen elektroniikka-askartelu jossa valovastus suoraan, ilman koodia ohjaisi esimerkiksi valoa.

Ohjelmoiminen

Graafinen ohjelmoiminen Snap4Arduinolla

  1.      Katso ensin että Arduinoon on ladattu firmata. Jos et ole varma, tai haluat ladata sen uudelleen katso ohje Led päälle ja pois-tehtävästä
  2.  Paina ensin Arduino-välilehdestä kohta Connect to arduino. Katso myös että usb-kaapeli on kiinni arduinossa ja koneessa.
  3. Valitse ohjaus-välilehdestä komento Kun klikataan” vihreä lippu”
  4. Valitse ohjaus-välilehdestä ikuisesti-komento ja yhdistä se kun klikataan vihreä lippu.
  5. Jotta voisimme Snap4Arduinossa tietää minkälaisia arvoja valovastus antaa, pitää meidän luoda sille muuttuja. Muuttuja on yksinkertaisesti muistipaikka jonne Snap4Arduino voi tallettaa valovastuksen arvon.
  6. Mene Muuttujat-välilehteen ja klikkaa painiketta Uusi muuttuja.
  7. Avautuvaan ikkunaan kirjoita muuttujan nimi. Esimerkissä sen nimeksi on annettu valovastus.
  8. Valitse tämän jälkeen Muuttujat-välilehdestä komento aseta muuttujan _ arvoksi _ ja vie se ikuisesti komennon sisälle.
  9. Valitse aseta muuttujan_ arvoksi_ painikkeesta muuttujaksi valovastus
  10. Valitse aseta muuttujan_ arvoksi_ painikkeesta arvoksi Arduino-välilehdestä analog reading-komento.
  11. Hae sen jälkeen Muuttujat-välilehdestä näytä muuttuja_-komento ja vie se aseta muuttujan_ arvoksi_ komennon alle.
  12. Klikkaa vihreää lippua. Nyt oikealla olevaan valkoiseen ikkunaan pitäisi tulla valovastus-muuttuja ja sen arvo. Katso kuva alta
  13.  Seuraavaksi laitamme valovastuksen säätämään ledin kirkkautta. Ledin kirkkaus toimii välillä 0-255, jossa 255 on täysin kirkas ja 0 pimeä. Tämä vastaa tietokoneen yleisesti käyttämiä RGB(red,green,blue) arvoja. (Tekemällä kolme lediä, punaisen, vihreän ja sinisen, voisit tehdä minkä tahansa värin ja katsoa sen koodin tietokoneen kuvankäsittely-ohjelmasta.)
  14. Valitse Arduino-välilehdestä set pin_ to value_-komento ja raahaa se näytä muuttuja_-komennon alle.
  15. Aseta set pinnin arvoksi 9, joka siis vastaa sitä pinniä missä led on.
  16. Raahaa Muuttujat-välilehdestä valovastus-muuttja  to value_ kohtaan.
  17. Kun nyt painat vihreää lippua, pitäisi ledin kirkkauden muuttua kirkkauden mukaan. Voit kokeilla vaikka peittää valovastuksen kädelläsi kokonaan ja ledin pitäisi sammua.
  18. Voi kuitenkin olla että valo ei sammu kokonaan, tai valo ei pala kirkkaasti. Tämä johtuu siitä millainen vastus sinulla on valovastukseen kytkettynä, sekä valovastuksesta itsestään: jokainen toimii hieman eri tavalla. Onneksi voit Snap4Arduinossa muokata tuota valovastuksen antamaa arvoa monella eri tavalla. Tässä esimerkkitapauksessa valovastus antoi hieman liian pieniä arvoja (Muista että ledin arvot ovat välillä 0-255).
  19. Valitse Laskenta-valikosta _X_ -kertolasku komento tai jos arvosi ovat liian suuria _/_-komento.
  20. Raahaa ensimmäiseen tyhjään laatikkoon Arduino-välilehdestä analog reading-komento
  21. Aseta toisen tyhjän valikon arvoksi jokin luku, mikä parhaiten siihen sopii. Tässä esimerkissä valovastuksen arvo on kerrottu kuudella.
  22.  Nyt valon pitäisi toimia paremmin. Mutta saatat ehkä huomata että et saa valoa täysin sammumaan. Voit halutessasi lisätä jos_muuten-painikkeen koodiin jolla saat valon sammumaan jos esimerkiksi on tarpeeksi pimeää.
  23. Poista set pin_to value_-painike koodista ja korvaa se jos_muuten-komennolla jonka löydät ohjaus-välilehdestä
  24. Vie Jos-komennon tyhjään laatiikkoon ensin laskenta-välilehdestä _>_-komento, eli pienempi kuin komento.
  25. Vie pienempi kuin-komennon ensimmäiseen tyhjään laatikkoon valovastus-muuttuja Muuttujat-välilehdestä
  26. Kirjoita toiseen tyhjään laatikkoon jokin arvo jota pienempien toivot kokonaan sammutavan ledin. Esimerkissä arvo on asetettu 35:een.
  27. Vie nyt jos_muuten -komennon ensimmäiseen tyhjään laatikkoon set pin_ to value_ -komento
  28. Aseta set pin_ to value_-komennon ensimmäiseksi arvoksi 9 (eli pin jossa led on) ja to value kohtaan valovastus muuttuja Muuttujat välilehdestä.
  29. Nyt vie jos_muuten-komennon toiseen tyhjään laatikkoon (muuten tekstin alla)set digital pin_ to_-komento Arduino-välilehdestä.
  30. Aseta set digital pin_ yhdeksäksi ja kytkin pois päältä. Nyt led sammuu aina kun valovastus antaa arvon 35 tai pienemmän. Alla oleva kuva näyttää koko koodin. 

Koodin rakentaminen Snap4ARduino ohjelmointiympäristössä

  1.     Valitse Control-välilehdestä ”when (green flag) clicked”
  2.     Valitse Arduino-välilehdestä ”set digita pin (  ) to < >”-komento ja raahaa se rakennettavan ohjelmakoodin jatkoksi (katso esimerkkikuva) – ROI HOITAA.
  3.     Valitse pinniksi pinni nro 13 avaamalla edellisen komennon alasvetovalikko, sekä klikkaa terävää valintalaatikkoa kaksi kertaa jolloin pinni 13 aktivoituu.

Onnea! Olet sytyttänyt ledin. Saat ledin sammumaan seuraavasti:

  1.     Valitse Control-välilehdestä “wait (1) secs”-komento ja raahaa se koodin jatkoksi.
  2.     Mene Arduino-välilehteen, valitse “set digital pin(13) to <off>” mukailemalla edellisiä kohtia 2. ja 3.

TÄMÄN VOISI SANOA SELVEMMIN TAI ONKO ESIMERKKI JOSSAIN, ALLA SIIS VAIN VILKUTUS: Voit rakentaa koodin myös siten, että eri komennot näppäimiä painamalla käynnistävät ja sammuttavat ledin. Tai voit myös luoda vilkkuvan ledin lisäämässä edellisen koodin ympärille toistorakenteen.

  1.     Aloita lisäämällä edellisen komennon jatkoksi odotus-komento, valitsemalla Control-välilehdestä wait(1)secs ja raahaa tämä koodin jatkoksi. Tätä vaihetta tarvitaan, jotta led pysyisi myös pois päältä tietyn aikaa.
  2.     Toistorakenne löytyy Control-välilehdestä.
  3.     Valitse toistokomento ”repeat (10)”-komento ja raahaa se edellisen koodin ympärille (ks.kuva)
  4.     Voit muokata toistojen määrää korvaamalla luvun 10 haluamallasi toistomäärällä sekä muuttaa vilkkumisen taajuutta (eli nopeutta) vaihtamalla odotettavaa aikaa ledien päällä olon välillä.

Tekstipohjainen ohjelmoiminen

  1.     Avaa Arduino IDE ohjelmointiympäristö
  2.     Kytke Arduino kiinni koneeseen USB A to B kaapelilla.
  3.     Kopioi seuraava koodi ohjelmointiympäristöösi.

void setup() {

 pinMode(13, OUTPUT);

}

void loop() {     

 digitalWrite(13, HIGH);  

 delay(1000);          

 digitalWrite(13, LOW);

 delay(1000);

}

  1.     Koodi rakentuu kahdesta funktiosta: setup-funktiosta ja loop-funktiosta. Ensimmäisen setup-funktion voi  ajatella käynnistävän Arduinon ja kaikki ne pinnit, joita tullaan käyttämään. Siinä määritellään, että pinni 13 valmistautuu antamaan ulos sähkövirtaa. Pinni 13:aan on liitetty ledin (+)-jalka ja (–)-jalka Arduinon GND pinniin.
  2.     Loop-funktio puolestaan toteuttaa varsinaisen toiminnan Arduino-kehitysalustalla. Tätä koodia luetaan ylhäältä alas. Esimerkkikoodissa pinni 13 aktivoidaan antamaan sähkövirtaa komennolla ”digitalWrite(13, HIGH); ” Puolipiste (;) päättää komennon ja on siksi erittäin tärkeä.
  3.     Seuraava komento on ”delay(1000);” joka määrittää, että edellinen komento pidetään toiminnassa 1000 millisekuntia, eli yhden sekunnin ajan. Tämän jälkeen siirrytään seuraavalle koodin riville.
  4.     Komento ” digitalWrite(13, LOW); ” määrittää ledin pois päältä.
  5.     Jälleen ”delay(1000)”-komennolla led pidetään sekunnin ajan pois päältä.
  6.     Lataa koodi Arduino kehitysalustaan painamalla ”Upload”. Mikäli lataamisessa ilmenee ongelmia, palaa lukuun Arduinon perusteisiin ja tarkista että oikea dataportti on valittu.

Kokeile rohkeasti muuttaa delay(1000)-komennon aikoja. Kokeile esimerkiksi kolmen sekunnin vilkutusta laittamalla delayn arvoksi 3000. Muistathan että muokattu koodi tulee aina ladata uudelleen Arduinoon!

Mitä seuraavaksi?

MITÄ TÄHÄN?