Yleistä
Kirjasinnäyttö eli seven segment display koostuu seitsemästä ledistä, jotka muodostavat yhdessä kirjaimen, sekä kahdeksannesta ledistä, joka toimii pisteenä kirjaimen alalaidassa.
Kirjasinnäytön toiminta perustuu ledien toimintaan. Kirjaimia luodaan sytyttämällä aina ne ledit, jotka halutaan kirjasinnäytöstä esiin. Jokainen kirjasinnäytön kirjaimen osa on kuin yksi ledi. Huomaa kuitenkin, että jokaisella ledillä on yhteinen katodi eli ledin miinusjalka.
Tässä ohjeessa siis sovelletaan ledin vilkuttamista. Yhden ledin sijaan sytytetään aina niin monta haluttua lediä, kuin kirjaimen muodostaminen vaatii.
Tarvitset tehtävän tekemiseen tietokoneen.
Voit tehdä kytkennän alla mainituilla osilla tai hyödyntää valmista permaproto-kytkentää, jonka löydät Meta-boxi tarvikkeista. Permaproto-kytkennän kanssa tarvitset Arduino-mikrokontrollerin, tietokoneen ja USB-johdon.
Osat
Hyppylankoja 9 kpl
Tarvitset jokaiselle kirjasinnäytön kirjaimen ledille oman hyppylangan. Hyppylankojen värillä ei ole väliä.
Kytkennät
330 ohmin vastuksen voi sijoittaa Gnd-jalan ja Arduinon Gnd-pinnin väliin, jolloin vastus rajoittaa aina kaikkien käytössä olevien ledien sähkövirtaa.
Tee alla oleva kytkentä ennen siirtymistä ohjelmointi osioon. Voit tehdä kytkennän joko edellä mainituista irto-osista tai kokeilla ensin valmiilla perma-proto kytkennällä. Tällöin riittää että kytket hyppylangat kuvan mukaisesti oikesiin kohtiin Arduinossa.
Lista pinnien ja näytön kytkennöistä:
- 13 ohjaa alalaidan vasenta lediä
- 12 ohjaa alalaidan keskimmäistä lediä
- 11 ohjaa alalaidan oikeata lediä
- 10 ohjaa pistettä
- 9 ohjaa keskimmäistä lediä
- 8 ohjaa yläreunan vasenta lediä
- 7 ohjaa yläreunan keskimmäistä lediä
- 6 ohjaa yläreunan oikeata lediä
Ohjelmoiminen
Graafinen ohjelmoiminen
- Avaa Arduino IDE.
- Kytke Arduino UNO koneeseen USB kaapelilla.
- Avaa Arduino IDE ja lataa Arduinoon Firmata-koodi (Tiedosto->Esimerkit->Firmata->StandardFirmata).
- Kun Arduino IDE on ladannut Firmatan, sulje Arduino IDE.
Avaa Snap4Arduino-ohjelmointiympäristö ja yhdistä Arduino-mikrokontrolleri ohjelmointiympäristöön painamalla ”Connect Arduino” Arduino-valikosta.
Rakenna koodi esimerkin mukaan.
Koodin rakentaminen Snap4Arduino ohjelmointiympäristössä
- Valitse Ohjaus-välilehdestä ”kun klikataan (vihreä lippu)”
- Valitse Arduino-välilehdestä ”set digital pin ( ) to < >”-komento ja raahaa se rakennettavan ohjelmakoodin jatkoksi
- Valitse pinniksi pinni nro 13 avaamalla edellisen komennon alasvetovalikko.
- Klikkaa vihreää lippua ja saat syttymään ensimmäisen ledin kirjaimesta.
- Lisää skriptiin myös aktivoitumaan pinnit 13, 11, 9, 8, 7, 6. Näin muodostat kirjaimen “A”.
- Klikkaa vihreää lippua käynnistääksesi uuden ohjelman Arduinossa.
Voit seuraavaksi kokeilla muodostaa sanan “HEI” vilkuttamalla ledejä.
Tekstipohjainen ohjelmoiminen
- Avaa Arduino IDE ohjelmointiympäristö
- Kytke Arduino kiinni koneeseen USB A to B kaapelilla.
- Kopioi seuraava koodi ohjelmointiympäristöösi
void setup() { pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); pinMode(10, OUTPUT); pinMode(9, OUTPUT); pinMode(8, OUTPUT); pinMode(7, OUTPUT); pinMode(6, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }
- 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.
- 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ä.
- 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.
- Komento ” digitalWrite(13, LOW); ” määrittää ledin pois päältä.
- jälleen ”delay(1000)”-komennolla led pidetään sekunnin ajan pois päältä.
- Lataa koodi Arduino kehitysalustaan painamalla ”Upload”. Vasemman alalaidan led syttyy ja sammuu sekunnin sykleissä. Mikäli lataamisessa ilmenee ongelmia, palaa lukuun Arduinon perusteisiin ja tarkista että oikea dataportti on valittu.
- Kun led syttyy, luo vilkkumaan “A” kirjain seuraavalla koodilla.
void setup() { pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); pinMode(10, OUTPUT); pinMode(9, OUTPUT); pinMode(8, OUTPUT); pinMode(7, OUTPUT); pinMode(6, OUTPUT); } void loop() { digitalWrite(13, HIGH); digitalWrite(11, HIGH); digitalWrite(9, HIGH); digitalWrite(8, HIGH); digitalWrite(7, HIGH); digitalWrite(6, HIGH); delay(1000); digitalWrite(13, LOW); digitalWrite(11, LOW); digitalWrite(9, LOW); digitalWrite(8, LOW); digitalWrite(7, LOW); digitalWrite(6, LOW); delay(1000); }
- Kirjoita ”HEI” hyödyntämällä funktioita, jotka määritellään koodin lopussa komennoilla ”void”. Tällöin sinun on mahdollisuus kirjoittaa tiiviimpää loop-funktiota (ohjelma jota Arduino pyörittää) viittaamalla aina funktioihin, joita on kirjoitettu koodin ”ulkopuolelle”. Tämä on hyvä keino käyttää esimerkiksi jos useamman kerran täytyy kutsua samaa toimintoa, kuten vaikkapa muodostamalla lause aakkosista.
void setup() { pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); pinMode(10, OUTPUT); pinMode(9, OUTPUT); pinMode(8, OUTPUT); pinMode(7, OUTPUT); pinMode(6, OUTPUT); } void loop() { H(); delay(1000); E(); delay(1000); I(); delay(1000); } void H(){ digitalWrite(13, HIGH); digitalWrite(11, HIGH); digitalWrite(9, HIGH); digitalWrite(8, HIGH); digitalWrite(6, HIGH); } void E(){ digitalWrite(13, HIGH); digitalWrite(11, HIGH); digitalWrite(9, HIGH); digitalWrite(8, HIGH); digitalWrite(7, HIGH); } void I(){ digitalWrite(13, HIGH); digitalWrite(9, HIGH); }
Mitä seuraavaksi?
Millaisen viestin haluat kertoa? Ohjelmoi oma viestisi? Voisitko liittää kirjainnäytön kertomaan viestin, kun jokin sensori havainnoi muutoksen ympäristössä?