Arduino – Ziua 4 – Input / Output Butoane şi leduri

Created at: februarie 26, 2017; Last update: februarie 26, 2017

Încă o zi frumoasă pentru a ne juca cu Arduino. Aşadar, ce vom face astăzi?

Dacă până acum ne-am jucat cu leduri care reprezintă partea de OUTPUT a micro-controllerului nostru, acum a sosit momentul să încercăm şi partea de INPUT. Aşadar hai să vedem ce putem face pentru a exemplifica partea de INPUT.

Pentru început să facem o chestie simplă. Să ne jucăm cu un buton. În kitul pentru începători am primit şi un buton.

Şi dacă avem un buton şi avem şi un led, atunci hai să facem în aşa fel încât, în momentul în care butonul este apăsat, ledul să se aprindă. Bineînţeles se va găsi cineva care o să spună că am putea să legăm totul într-un circuit şi nu am avea nevoie de un întreg micro-controller pentru asta. Dar noi ne vom juca aşa, doar ca să arătăm ca putem. Aşadar, hai să conectăm butonul şi ledul la micro-controller. Cum facem asta?

Butonul

Pentru a conecta butonul la Arduino vom avea nevoie de trei fire. Unul (VCC) va fi conectat la pinul de 5 volţi, un altul va fi împământarea (GND), iar al treilea va fi conectat la unul dintre pinii INPUT/OUTPUT. Eu l-am conectat la pinul 7.

Ledul

Ledul îl vom conecta cu două fire. Unul (IN) va fi conectat la pinul 13 şi celălalt (GND) la împământare (Arduino are disponibili 3 pini de împământare).

Etapa de setup()

Acum hai să trecem la programare. Deschidem IDE-ul pornind de la un sketch gol. În partea de setup() pur şi simplu îi spunem micro-controllerului că va avea de monitorizat/controlat doi pini: pinul 7 – al butonului – şi pinul 13 – al ledului.

Etapa de loop()

În etapa de loop() trebuie să cerem micro-controllerului să monitorizeze pinul 7 astfel încât, când de la acesta primeşte voltaj (când butonul este apăsat – ON), să trimită voltaj către led. Dacă pentru a trimite voltaj ne-am folosit de digitalWrite(), pentru citit ne vom folosi de digitalRead(). În acest fel vom citi starea pinului 7 şi îl vom transfera unei variabile.

După ce am transferat variabilei “stareButon” starea pinului, vom întreba: Este “stareButon” egal cu 1 (ON)? Dacă răspunsul este da, atunci trimite voltaj către pinul 13. Dacă răspunsul este nu, atunci nu trimite voltaj către pinul 13.

Super. Dar hai să explicăm mai pe îndelete codul din loop().

După cum vedem, am definit o variabilă de tip integer (număr întreg), numită stareButon, care variabilă a preluat de la pinul şapte informaţie cu privire la voltaj. La fel de bine puteam să păstrăm valoarea pinului într-o variabilă booleană (valoare adevărat/fals):

Grozav. Acum, când apăsăm pe buton, ledul se aprinde, iar când dăm drumul butonului, ledul se stinge.

Lasă un răspuns

Your email address will not be published. Required fields are marked *

No spam? * Time limit is exhausted. Please reload CAPTCHA.