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

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

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

Као што смо већ и до сада радили, израду пројекта ћемо поделити у 2 фазе: хардверски и софтверски део. Прво ћемо повезати све што је потребно од електронике, па ћемо онда прећи на програмирање.

Хардверски део

Прво ћемо повезати тастер на Arduino као што смо то радили прошли пут. За почетак повежите 5 [V] pin са тастером који повезујете на pin 7 и pull-up отпорником. Такође је потребно други крај отпорника да вежете на GND.

Када повежете тастер, то би требало да изгледа као на слици.

Следећи део јесте везивање LED диоде на Arduino. На pin 7 прво вежите отпорник од 200 [Ω] а затим на други крај вежите аноду; катоду вежите на GND.

То би било то што се тиче хардверског дела, сада је време да пређемо на софтверски део, односно програмирање.

Софтверски део

Пре него што почнемо са програмирањем, потребно је да објаснимо алгоритам који желимо да имплементирамо.

Дакле, циљ нам је да се на сваки притисак дугмета осветљеност диоде повећа. Када диода достигне свој максимум осветљености, на следећи притисак осветљеност треба да се смањи.

Ово можемо урадити тако што ћемо направити једну глобалну променљиву која ће чувати тренутну вредност осветљености диоде (0 – 255), и још једну променљиву која ће сигнализирати да ли се осветљеност при следећем притиску смањује или повећава.

Напомена: Пре него што почнемо, Arduino не сме да буде повезан са електроником, па ћемо извући жице које су повезане на GND и на 5 [V].

Сада је време да имплементирамо нашу идеју. Покрените Arduino радно окружење и почните нови пројекат.

Кôд програма:

const int ledPin = 3;
const int buttonPin = 7;

char brightness; // Променљива која показује осветљеност диоде
char increment;

void setup()
{
// Иницијализација свих pin-ова
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);

// Иницијализација потребних променљивих
brightness = 0;
increment = 0;
}

void loop()
{
// Провера да ли је тастер притиснут
if (digitalRead(buttonPin) == HIGH)
{
if (increment == 0) brightness++;
else brightness--;
}
if (brightness >= 255) increment = 1;
if (brightness <= 0) increment = 0;

analogWrite(ledPin, brightness);
}

Сада је само потребно да поново повежете електронику на protoboard-у са Arduino-ом, и да програм пребаците на Arduino.

Требало би да при сваком притиску тастера LED диода буде што светлија, а кад дође до свог максимума, полако постаје тамнија.

У овом броју смо урадили један занимљив пројекат коришћењем релативно доступне опреме и знања које смо стекли. У наредном броју ћемо вас увести у серијску комуникацију између Arduino-а и рачунара.

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

Оставите одговор

Ваша адреса е-поште неће бити објављена. Неопходна поља су означена *

Time limit is exhausted. Please reload CAPTCHA.