Arduino Buton Tutorial

Arduino: Comandarea unui LED cu un buton fara rezistenta

Arduino: Comandarea unui LED cu un buton fara rezistenta

In acest tutorial va voi arata un truc si acela de a folosi rezistenta interna a placii Arduino cu o linie de cod.
Fiecare placa originala Arduino contine o rezistenta pe fiecare pin si aceasta se poate folosi daca stim cum sa o utilizam.
In loc sa conectam un buton la placa printr-o rezistenta, putem conecta acelasi buton, fara rezistenta, daca scriem o anumita linie de cod.


Schema de conectat LED-ul este aceasi: conectam un LED la pinul 13 (sau altul dar trebuie schimbat si codul programului) printr-o rezistenta.

ard_LED

Si vom conecta si un buton, dar fara a lega si o rezistenta, adica asa:

ard_button

Nu uitati: daca conectati LED-ul la alt pin (pin: 13) si butonul la alt pin (pin: 12) sa schimbati acest lucru si in cod.


Acum ca am facut conectariile corect va trebuii sa incarcam si programul:

Programul / Codul:

// Declaram pinul unde vom conecta un led;
int LED = 13;
int buttonPin = 12;

void setup() {
   //Definim pinul 12 ca input si activam rezistenta interna a placii
   pinMode(buttonPin, INPUT_PULLUP);
   //Definim pinul 12 ca si pin pentru iesire (pentru LED)
   pinMode(LED, OUTPUT);
}

void loop(){
   // Citim valoare input-ului. Valoarea aceasta poate fi 1 sau 0
   int buttonValue = digitalRead(LED);
   if (buttonValue == LOW){
      // Daca apasam butonul se va aprinde ledul
      digitalWrite(LED,HIGH);
   } else {
      // Altfel, stingem LED-ul
      digitalWrite(LED, LOW);
   }
}

Inainte sa incarcam programul trebuie sa ne asiguram ca am selectat placa Arduino buna.
Pentru a selecta placa va trebui sa mergem in meniul de sus:
TOOLS -> BOARD
Dupa ce am ales placa potrivita va trebui sa alegem si portul utilizat din meniul:
TOOLS -> PORT

Pentru a incarca programul trebuie sa apasam pe sageata de sub meniuri:

ss_ard2

Acum daca am facut totul ca si in tutorial cand apasam butonul conectat va trebui sa se aprinda LED-ul.

Daca ati folosti alti prini schimbati mai sus in cod:

int LED = numarul pinului unde ati conectat LED-ul
int BbuttonPin = numarul pinului unde ati conectat butonul

Singurul lucru ce l-am schimbat in cod, pentru a nu folosi o rezistenta, este linia unde am declarat butonul ca fiind de tipul „iesire”:

pinMode(buttonPin, INPUT_PULLUP);

Comanda INPUT_PULLUP activeaza rezistanta pe pinul buttonPin (sau pe ce pin o folositi!).
Daca am fi folosit o rezistenta pe pinul butonului puteam sa fi scris :

pinMode(buttonPin, INPUT);