Aina silloin tällöin saatetaan tarvita ohjata jotakin ulkopuolista laitetta, minkä käyttöjännitettä ja virtaa ei voida suoraan Arduinolta ottaa. Laite voi esimerkiksi olla 12/24 voltin tuuletin tai moottori tai jopa verkkovirtaan (230 V) liitettävä laite, esimerkiksi yö- tai jouluvalo.
Tässä osassa on käytetty alla olevan kuvan mukaista relekorttia, jolla ulkopuolista laitetta voidaan ohjata. Ohjauksen hoitaa Songlen SRD-05VDC-SL-C tyyppinen rele Arduinosta syötetään vain ohjaussignaali sekä käyttöjännitteet (+5V ja GND) relekortille. Kuorma kytketään ruuviliittimiin.
Releen päällä lukee merkinnät, jotka kertovat millaisia kuormia siihen voidaan kytkeä ja millaisia jännitteitä rele kestää. Näitä arvoja ei saisi koskaan ylittää, joten jos releesi ei kestä esimerkiksi enempää kuin 30 volttia, niin älä missään tapauksessa kytke siihen verkkosähköä. Merkintä VAC tarkoittaa vaihtojännitettä ja VDC tasajännitettä.
Relekortin kytkentä ja releen toiminta
Arduinon relekortti kytketään alla olevan kuvan mukaisesti. Kuvaan on piirretty relekortin komponentit (oletin että kortilla on käytössä NPN-tyyppinen transistori), joten jos sinulla on vain rele, voit kytkeä sen kuvan osoittamalla tavalla.
Kytkennästä huomataan, että kun ohjaustransistori aktivoidaan, niin releen käämin läpi alkaa kulkemaan virta. Tämä saa aikaan releen sisällä magneettikentän. Magneettikenttä puolestaan vetää releen kosketinta kohti toista kontaktia (LOAD-), jolloin virta alkaa kulkemaan ledin ja vastuksen läpi näin ollen sytyttäen ledin.
Ohjaustransistorin kanta on kytketty Arduinon nastaan numero 7. Kuvasta puuttuu virranrajoitusvastus, joten se on hyvä lisätä transistorin kannan ja 7 nastan väliin, jos käytetään ns. "tavallista" BJT-transistoria eikä esimerkiksi FET-transistoria.
Kuvia klikkaamalla ne aukeavat suuremmiksi välilehteen.
Kun kytkentä rakennetaan koekytkentälevylle, se voi näyttää jotenkin tällaiselta, tai sitten ei lähimainkaan... 🙂
Releohjauksen koodi
Koska ohjaukseen tarvitaan vain yksi IO-nasta, on ohjaus varsin helppo. Aluksi pinni asetetaan lähdöksi ja nollaan. Kun rele halutaan ohjata päälle, niin kyseinen IO-nasta ohjataan "HIGH" -tilaan eli "ykköseksi". Alla oleva ohjelma naksuttelee relettä kahden sekunnin välein päälle ja pois. Voit kopioida koodin omaan ohjelmaasi ja naksutella omaa relettäsi.
void setup() { pinMode(7, OUTPUT); digitalWrite(7,LOW); } int toggle = 0; void loop() { delay(1000); toggle = ~toggle; digitalWrite(7,toggle); }
Koodista huomaat, että tässä on käytetty toggle-nimistä muuttujaa. Kyseisen muuttujan arvo käännetään päälaelleen ~ (tilde) -merkillä, jolloin selvitään ainoastaan kolmella rivillä koodia (muutoin pitäisi rakentaa if-else-rakenne). Päälaelleen tarkoittaa tässä sitä, että jos toggle-muuttujan arvo on 1, niin tilde ( ~ ) merkin jälkeen sen arvo on 0. Sijoitusoperaattori ( = ) sijoittaa käännetyn muuttujan toggle:n uudeksi arvoksi.
Näin ollen jokaisella ohjelman kierroksella toggle-muuttuja saa arvokseen 1 ja joka toisella arvon 0. digitalWrite(...) -funktio puolestaan kirjoittaa Arduinon nastaan 7 uuden arvon.
Alla olevassa valokuvassa nähdään kun led ohjautuu releen vaikutuksesta päälle (ja pois):
Seuraavassa osassa ohjataankin askelmoottoria, joten se tulee olemaan hieman monimutkaisempi, mutta ei liian vaikea sekään.
Seuraava osa: askelmoottorin ohjaus.