četvrtak, 18 aprila, 2024
Hardver

Arduino kontroler (5. deo)

Autor: Stefan Nožinić

U ovom broju vam dajemo uvid u to, kako se koriste tasteri, koliko je zapravo njihova funkcionalnost jednostavna, šta je pull-up resistor i kako to sve da ukombinujete sa prethodnim znanjem da biste napravili još zanimljiviju stvar.

Malo o potencijalu

Ako se dobro sećate gradiva iz Osnovne škole onda ćete se setiti i one famozne definicije napona. Zapravo, napon je razlika potencijala. Mi smo već pominjali napone i Omov zakon. Ako uzmemo neko kolo sa dve tačke, napon između te dve tačke je razlika potencijala na prvoj i drugoj tački.

Sada pokušajmo da teorijski opišemo šta u stvari predstavlja onaj 1 ulazni pin za Arduino. Njega najbolje možemo zamisliti kao tačku. Vrednost na tom ulaznom pin-u biće 1 (HIGH), ako je potencijal u toj tački veći od neke granične vrednosti, a 0 (LOW) ako je potencijal u toj tački manji od neke donje granične vrednosti.

Napomena: Ako je potencijal u toj tački između gornje i donje granične vrednosti, onda se smatra da je vrednost neodređena (može biti ili 0 ili 1 bez ikakvog pravila).

Tasteri

Svi vi ste sigurno čuli za tastere i prekidače. Razlika između tastera i prekidača je ta, što je taster aktivan samo dok je pritisnut, a prekidač je aktivan dok je u aktivnom položaju. Kao što vidimo, razlika je mehaničke prirode a ne toliko elektronske. Softverski se može od tastera napraviti funkcionalnost prekidača i, doduše malo teže, obrnuto. Kako se taster softverski lako „pretvara” u prekidač, mi ćemo se fokusirati striktno na upotrebu tastera. Najblaže rečeno, taster je žica koja pritiskanjem spaja dve tačke u kratak spoj. Dakle, taster možete zamisliti kao komad žice kojom samo povežete dve tačke u kolu (pritisnut taster) i prekinete dve tačke u kolu (taster nije pritisnut).

Projekat 1

Ne bismo više da dosađujemo sa teorijom te ćemo uraditi mali projekat. Stvar je vrlo jednostavna pa čak nije potrebno pisanje kôda. Ovo je moguće odraditi i na drugi način (delom softverski) koji ćemo opisati kasnije i koji će biti osnova za kasnija unapređenja. Želimo da napravimo da nam LED dioda zasija kada je taster pritisnut, a da u ostalim slučajevima ne sija. Ovo je prilično jednostavno. Kako taster prekida strujno kolo kada nije pritisnut i ponovo ga uspostavlja kada je pritisnut, sve što treba da uradimo, jeste da vežemo redno izvor – taster – otpornik – LEDGND. Dakle, 5 [V] vežemo za taster a drugi kraj na otpornik. Trebalo bi da otpornik bude onolike otpornosti koliko je potrebno da LED dioda ne pregori (opisano u prethodnim tekstovima). Drugi kraj otpornika treba vezati na anodu LED diode a katodu na GND (0 [V]) pin koji se nalazi na Arduino-u. Kada se Arduino napaja, recimo sa USB-a i kada je taster pritisnut, protiče struja, u suprotnom nema struje. Sada ćemo pokazati i kako ovo može da se uradi i na drugačiji način uz malo programiranja.

Za početak je potrebno napraviti ovakvo povezivanje:

Kada je taster pritisnut pin 7 će se postaviti na vrednost 0, a kada nije pritisnut, onda je vrednost 1.

Anodu LED diode povežite na pin 8 a katodu na GND.

Algoritam: Kada je vrednost na pin-u 7 jednaka 0, onda postavi vrednost na pin 8 na 1, u suprotnom postavi na 0.

Kôd:

void setup()
{
pinMode(7, INPUT);
pinMode(8, OUTPUT);
}

void loop()
{
if (digitalRead(7) == LOW)
{
digitalWrite(8, HIGH);
}
else
{
digitalWrite(8, LOW);
}
}

Napomena: Ovo može da se dodatno optimizuje, ali mi to ovde nećemo raditi jer bi optimizacija značila i kôd koji je teško razumeti.

Projekat 2

Sada ćemo da nadogradimo prethodni projekat na poboljšanu verziju koji će uključiti LED diodu kada se taster pritisne, a sledeći put kad se pritisne, isključiti je.

Potrebno je samo izmeniti nekoliko stavki u kôdu:

int state; // čuva trenutno stanje
int timer;
void setup()
{
state = 0;
timer = 0;
pinMode(7, INPUT);
pinMode(8, OUTPUT);
}

void loop()
{
if (digitalRead(7) == LOW)
{
timer++;
if (timer >= 10)
{
timer = 0;
state = (state + 1) % 2;
digitalWrite(8, state);
}
}
}

Sada kompajlirajte program i prebacite ga na Arduino kao i ranije i eksperimentišite šta sve možete da uradite sa tasterom i PWM-om. U narednom broju ćemo kombinovati upotrebu tastera i PWM-a da postignemo povećavanje i smanjivanje intenziteta svetlosti pomoću tastera na LED diodi. Do tada eksperimentišite jer se tako najbolje uči!

Prethodni deo | Nastavak