Care sunt componentele necesare?
Un switch (un buton cu revenire, adica un buton care are o lamela elastica ce il aduce la pozitia initiala dupa ce a fost apasat).
Un rezistor de 10kOhm (verifica valoarea cu un multimetru).
Evident, avem nevoie si de un Arduino. Nu este obligatoriu sa fie Arduino Uno.
Cum construim circuitul?
Hai sa folosim pinul digital 2 pentru a cit switch-ul (puteam, la fel de bine, sa folosim si alti pini digitali in afara de 0 si 1).
La pinul 2 se leaga rezistorul si un terminal al switchului, iar rezistorul se leaga la 5V. Celalalt terminal al switcului se leaga la GND.
Observatie: ca sa fim siguri ca selectam terminalele corecte la switch, atunci alegeti terminalele din doua colturi opuse (in diagonala).
Cum scriem codul?
In Arduino IDE, scriem urmatorul program care va aprinde LED-ul daca buton este apasat si il stinge daca nu este apasat:
void setup() { pinMode(2, INPUT); pinMode(13, OUTPUT); } void loop() { if(digitalRead(2) == LOW) { digitalWrite(13, HIGH); } else { digitalWrite(13, LOW); } } Desi este simplu, invatam o multime de lucruri:
- cum citim starea unui pin: digitalRead(numar_pin). Aceasta functie returneaza doua valori: HIGH (adica 5V) sau LOW (adica 0V).
- desi nu este obligatoriu la acest program sa folosim acoladele “{ }” pentru instructiunile dupa if si else (deoarece este vorba de cate o singura instructiune), totusi va recomand sa le folositi mereu cand aveti if, else, for, while.
- daca butonul nu este apasat, la pinul 2 se citeste valoarea HIGH (adica 5V). Daca butonul este apasat, atunci va citi valoarea LOW (adica 0V). Daca vrem sa fie invers (adica la apasare sa citim HIGH, altfel LOW), trebuie sa inversam conexiunile de 5V si GND.
Cum modificam programul/circuitul?
- Adauga inca un LED. Controleaza ambele LED-uri cu butonul.
- Adauga inca un buton. Stinge LED-ul cu un buton si aprinde-l cu celalalt buton.
Tutorial
No comments