Всеки начинаещ трябва да започне от някъде, а повечето от нас са тръгнали точно от тук – Мигащ светодиод (LED) контролиран от Ардуино. Този пост има за цел да ви научи, как да програмирате Ардуино така, че то да управлява мигащ светодиод (LED), сиреч да накарате диода да премигва. За целта ще използваме примерен код, предоставен от хората разработили платформата Aрдуино – всички овации отиват при тях!
Ще реализираме този малък проект по два начина – със и без допълнителни резистори:
За робо-рецептата без резистор ще са ни нужни:
- Син светодиод 5мм, 4 000 mcd, 3.4V – 1 бр;
- Ардуино уно – 1 бр;
За робо-рецептата с резистор ще са ни нужни:
- Диод с цвят по избор – 1 бр;
- Ардуино уно – 1 бр;
- Резистор 82 ohm- 1 бр;
Допълнително може да добавим и бредборд за по-лесно свързване на компонентите, но не е задължително:
- Бредборд (Breadboard) – не е задължително.
Нужни инструменти за работа (възможно е да постигнете резултати и без тях, но е хубаво да ги имате):
- Поялник
- Мултиметър (Мултицед, волтметър)
- Припой
I. ДА СГЛОБИМ СИСТЕМАТА без резистор:
Преди да сглобим нашата система трябва да се уверим, че нашето ардуино „позволява“ да свържем светодиод директно към пин 13. За целта ще ни е нужен мултиметър. Измерването става по следния начин:
1) Програмираме нашето ардуино със следния код:
int led = 13; // Дефинираме си променлива led която е равна на номера на нашия пин 13. От тук нататък пин 13 ще наричаме led void setup() { pinMode(led, OUTPUT); // тук казваме, че led ще подава ток! } void loop() { digitalWrite(led, HIGH); // тук казваме че led ще е включен! }
Чрез този код ще накараме нашето ардуино да подава постоянно ток през пин 13.
2) Измерваме с мултиметъра напрежението което пин 13 (led) подава. Ако не знаете как се измерва прочетете тази статия: „Как да работим с мултиметър (мултицет)„.
Ако мултиметърът показва число по-голямо от 3.4 не можем да свържем светодиода с ардуиното без резистор. Ако показанията са под 3.4 волта значи можем да свържем светодиода директно към пин 13. За целта вземете светодиода и сложете по-дългото му краче в пин 13, а по-късото сложете в пин GND (пин 14 непосредствено след пин 13). Така нашата система е готова за употреба 🙂
ВАЖНО! – светодиодът, който използваме, е подходящ за нашите цели! Ако използвате други светодиоди (с други характеристики) е възможно да повредите или платката или самия диод ако не използвате резистори! Ако нямате точно такъв диод, по-добре се пробвайте с резистор!
Ако не знаете, какъв е вашият светодиод, можете да прочетете тази статия: Светодиоди.
II. ДА СГЛОБИМ СИСТЕМАТА с резистор:
За целта вземете диода и запоете по-дългото му краче към едното от крачетата на резистора. Другото краче на резистора свържете с пин 12 (1 до 12 по избор) на Ардуиното, а по-късото сложете в пин GND (пин 14 непосредствено след пин 13). Така нашата система е готова за употреба 🙂
ВАЖНО! – резисторът, който сме избрали за нашите цели, е точно такъв заради светодиода, който използваме! Ако имате друг диод, с други характеристики е необходимо да изчислите точно колко ома са ви нужни и да изберете подходящ резистор за целта.
Ако не знаете как да изчислите какъв резистор ви е нужен използвайте тази страница за да се научите или просто го сметете с този калкулатор !
Ако не знаете, какъв е вашият диод, можете да прочетете тази статия: Светодиоди.
Ако не можете да запоявате, използвайте бредборд! Ако пък не искате да си купувате бредборд, можете да използвате и тънки жички увити около крачетата. Така обаче рискувате да създадете разни бели ако някоя от жичките даде на късо! Не правете това удома си!
III. ДА НАПИШЕМ КОДА:
Има много начини за реализацията на точно тази композиция за Мигащ светодиод, но целта ни днес е, да използваме примерния код предоставен от Ардуино. Кода можем да заредим по следните начини:
- Като отворим примера през: File –> Examples –> 01.Basic –> Blink, или
- Като просто копираме следния код в нашия редактор (Arduino IDE):
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
Да разгледаме горното по-подробно:
int led = 13; // Това е дефиниция на променлива лед
Така задаваме име на пин 13. Ако измерването от I показва под 3.4 волта е хубаво да използвате друг пин (1-12)
pinMode(led, OUTPUT); // Тук казваме че нашият пин ще е изходящ, т.е че ще подава ток
digitalWrite(led, HIGH); // Тази функция "включва" нашия пин delay(1000); // тук казваме на ардуиното да изчака 1 секунда digitalWrite(led, LOW); // Тази функция "изключва" нашия пин delay(1000); // тук казваме на ардуиното отново да изчака 1 секунда
Комбинацията от digitalWrite(led, HIGH) и delay(1000) всъщност означава, че казваме на ардуиното, да включи диода и да го държи включен за 1 секунда. След това комбинацията digitalWrite(led, LOW) и delay(1000) му казва, да изключи диода за една секунда.
Горните две комбинации се намират в тялото на функцията void loop(), което означава че те ще се повтарят добезкрайност или поне докато не програмираме ардуиното по друг начин 🙂
Надявам се тази рецепта Ви е била полезна!
No Comments Yet