четвртак, 25 априла, 2024
Хардвер

Ардуино контролер (5. део)

Аутор: Стефан Ножинић

У овом броју вам дајемо увид у то, како се користе тастери, колико је заправо њихова функционалност једноставна, шта је pull-up resistor и како то све да укомбинујете са претходним знањем да бисте направили још занимљивију ствар.

Мало о потенцијалу

Ако се добро сећате градива из Основне школе онда ћете се сетити и оне фамозне дефиниције напона. Заправо, напон је разлика потенцијала. Ми смо већ помињали напоне и Омов закон. Ако узмемо неко коло са две тачке, напон између те две тачке је разлика потенцијала на првој и другој тачки.

Сада покушајмо да теоријски опишемо шта у ствари представља онај 1 улазни pin за Arduino. Њега најбоље можемо замислити као тачку. Вредност на том улазном pin-у биће 1 (HIGH), ако је потенцијал у тој тачки већи од неке граничне вредности, а 0 (LOW) ако је потенцијал у тој тачки мањи од неке доње граничне вредности.

Напомена: Ако је потенцијал у тој тачки између горње и доње граничне вредности, онда се сматра да је вредност неодређена (може бити или 0 или 1 без икаквог правила).

Тастери

Сви ви сте сигурно чули за тастере и прекидаче. Разлика између тастера и прекидача је та, што је тастер активан само док је притиснут, а прекидач је активан док је у активном положају. Као што видимо, разлика је механичке природе а не толико електронске. Софтверски се може од тастера направити функционалност прекидача и, додуше мало теже, обрнуто. Како се тастер софтверски лако „претвара” у прекидач, ми ћемо се фокусирати стриктно на употребу тастера. Најблаже речено, тастер је жица која притискањем спаја две тачке у кратак спој. Дакле, тастер можете замислити као комад жице којом само повежете две тачке у колу (притиснут тастер) и прекинете две тачке у колу (тастер није притиснут).

Пројекат 1

Не бисмо више да досађујемо са теоријом те ћемо урадити мали пројекат. Ствар је врло једноставна па чак није потребно писање кôда. Ово је могуће одрадити и на други начин (делом софтверски) који ћемо описати касније и који ће бити основа за каснија унапређења. Желимо да направимо да нам LED диода засија када је тастер притиснут, а да у осталим случајевима не сија. Ово је прилично једноставно. Како тастер прекида струјно коло када није притиснут и поново га успоставља када је притиснут, све што треба да урадимо, јесте да вежемо редно извор – тастер – отпорник – LEDGND. Дакле, 5 [V] вежемо за тастер а други крај на отпорник. Требало би да отпорник буде онолике отпорности колико је потребно да LED диода не прегори (описано у претходним текстовима). Други крај отпорника треба везати на аноду LED диоде а катоду на GND (0 [V]) pin који се налази на Arduino-у. Када се Arduino напаја, рецимо са USB-а и када је тастер притиснут, протиче струја, у супротном нема струје. Сада ћемо показати и како ово може да се уради и на другачији начин уз мало програмирања.

За почетак је потребно направити овакво повезивање:

Када је тастер притиснут pin 7 ће се поставити на вредност 0, а када није притиснут, онда је вредност 1.

Аноду LED диоде повежите на pin 8 а катоду на GND.

Алгоритам: Када је вредност на pin-у 7 једнака 0, онда постави вредност на pin 8 на 1, у супротном постави на 0.

Кôд:

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

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

Напомена: Ово може да се додатно оптимизује, али ми то овде нећемо радити јер би оптимизација значила и кôд који је тешко разумети.

Пројекат 2

Сада ћемо да надоградимо претходни пројекат на побољшану верзију који ће укључити LED диоду када се тастер притисне, а следећи пут кад се притисне, искључити је.

Потребно је само изменити неколико ставки у кôду:

int state; // чува тренутно стање
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);
}
}
}

Сада компајлирајте програм и пребаците га на Arduino као и раније и експериментишите шта све можете да урадите са тастером и PWM-ом. У наредном броју ћемо комбиновати употребу тастера и PWM-а да постигнемо повећавање и смањивање интензитета светлости помоћу тастера на LED диоди. До тада експериментишите јер се тако најбоље учи!

Претходни део | Наставак