Prekidači


U ovom dijelu govorit ćemo prekidačima ili sklopkama. Iako dolaze u različitim veličinama, oblicima i bojama njihova svrha je jednaka, pritiskom na prekidač želimo pokrenuti neku akciju u našem mikrokontroleru.

preuzeto s stranice
primjer 1

Tema ovog primjera je korištenje tipki mikroprekidača u našim projektima. U primjerima dostupnima na  https://www.arduino.cc/en/Tutorial/HomePage možemo razlikovati nekoliko načina rukovanja njima. Pokušat ćemo ukratko opisati neke od njih.
U prvom slučaju, kada se tipka drži pritisnutom, LED će biti uključen ( HIGH ), a odmah nakon otpuštanja će biti isključen (LOW).

     Dijagram rasporeda prikazan je na donjoj slici.

Spajanje:

  • Jedna nožica tipke je spojena na napajanje (5V)
  • Druga nožica tipke, preko otpornika, spojen je na masu (0V) i također na Arduino digitalni pin, npr. 3

Prvi način rada s gumbima

     Na početku definiramo pinove na koje spajamo gumb i diodu. (linija 1-2 )
     Zatim postavljamo stanje koje prevladava na izlazu pina 10 bez pritiskanja tipke. U našem slučaju dioda će biti ugašena, ako postavimo 1, dioda bi bila uključena i pritiskom na tipku bi se ugasila. (linija 4)
     Također trebamo postaviti pin gumba kao ulaz, a pin diode kao izlaz. (redovi 7-8)
     Zatim kreiramo uvjetnu funkciju koja uključuje diodu kada detektira pritisak na gumb. (redci 13-18)

const int gumb = 3;  // Definicija pina na kojeg smo spojili prekidač
const int dioda =  10;   // Definicija pina na kojem je spojena LED dioda

void setup() {
  pinMode(dioda, OUTPUT);        // Ustawienie pinu 10 jako wyjście
  pinMode(gumb, INPUT);      // Ustawienie pinu 3 jako wejście
}

void loop() {
  
  if (digitalRead(gumb) == HIGH) {  //provjerava je li gumb  pritisnut
    digitalWrite(dioda, HIGH);  // ako je pritisnut - LED uključen
  }
  else {                        // ako nije
    digitalWrite(dioda, LOW);   // LED isključen
  }
}
primjer 2

Kada pritiskom na tipku želimo dobiti stanje LOW a otpuštanjem tipke stanje HIGH onda spajanje vršimo prema sljedećoj shemi.

Primjetimo da nam u ovakvom načinu nije potreban otpornik na pločici za eksperimentiranje ali ga je potrebno uključiti unutar programa naredbom INPUT_PULLUP.

void setup() {
  Serial.begin(9600);
  pinMode(2, INPUT_PULLUP);
  pinMode(13, OUTPUT);
}

void loop() {
  int vr_gumba = digitalRead(2);
  //print out the value of the pushbutton
  Serial.println(vr_gumba);
  if (vr_gumba == HIGH) {
    digitalWrite(13, LOW);  //ako je gumb pritisnut onda LED svijetli
  } else {
    digitalWrite(13, HIGH); //ako je gumb nije pritisnut onda LED  ne svijetli
  }
}