Първа стъпка в IT
Блог

Основи на Arduino: платката, програмата и първата мигаща светлина

Какво е Arduino, какво има на платката Uno, как е устроена една програма със setup() и loop() и как се сглобява първата схема със светодиод и резистор.

От Редакция на Първа стъпка в IT Публикувано: 4 мин. четене
Съвместима с Arduino Uno платка с изводи за захранване, цифрови и аналогови сигнали
Снимка: JrawX · CC0, източник

Arduino е отворена платформа за електроника, която събира на едно място евтина платка с микроконтролер и безплатна среда за програмиране. Платката чете входове (натиснат бутон, светлина върху сензор, температура) и ги превръща в изходи: светва светодиод, завърта мотор, пуска звук. Затова с нея започват много хора, които искат да видят как кодът променя нещо във физическия свят, а не само на екрана.

Откъде идва и защо е толкова разпространена

Според официалната документация Arduino се ражда в Института за дизайн на взаимодействието в Ивреа, Италия, като бърз инструмент за прототипи за студенти без опит в електрониката и програмирането. По-късно семейството от платки се разраства към интернет на нещата, носими устройства, 3D печат и вградени системи.

Документацията изтъква няколко причини за популярността:

  • платките са сравнително евтини, а готовите модули струват под 50 долара;
  • средата за програмиране (Arduino IDE) работи на Windows, macOS и Linux;
  • софтуерът и схемите на платките са отворени, така че всеки може да ги изучава и надгражда;
  • около платформата има голяма общност от ученици, любители и професионалисти, която публикува проекти и уроци.

Езикът на Arduino е изграден върху Wiring, а средата е по Processing. На практика пишете C++ с готови функции, които скриват сложните подробности на микроконтролера.

Какво има на платката Uno

Arduino Uno R3 е най-често препоръчваната първа платка. По официалната спецификация тя има:

Елемент Стойност
Микроконтролер ATmega328P
Цифрови входове/изходи 14 (6 от тях с ШИМ)
Аналогови входове 6
Тактова честота 16 MHz
EEPROM 1 KB

Цифровият извод има само две състояния: включен или изключен. Аналоговият вход мери напрежение и връща число, затова на него се закачат сензори като фоторезистор или потенциометър. ШИМ (широчинно-импулсна модулация) позволява на цифровия извод да „имитира“ междинни стойности, например за плавно затъмняване на светодиод или за скоростта на малък мотор.

Платката се свързва с компютъра през USB. По този кабел се качва програмата и се захранва платката, докато експериментирате; за самостоятелна работа има отделен вход за адаптер или батерия.

Как изглежда една програма

Програмата за Arduino се нарича скица (sketch) и има две задължителни функции. setup() се изпълнява веднъж при включване: там казвате кой извод е вход и кой е изход. loop() се повтаря безкрайно, докато платката има захранване: там е самата логика.

Класическият първи пример в документацията е Blink, който включва и изключва вградения светодиод всяка секунда:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}

pinMode настройва извода като изход. digitalWrite(..., HIGH) подава 5 V и светодиодът светва, а LOW връща извода на 0 V. delay(1000) спира програмата за 1000 милисекунди. Документацията предупреждава, че по време на delay() платката не прави нищо друго; когато ви потрябва да следите бутон, докато нещо мига, следващата стъпка е примерът BlinkWithoutDelay, който мери времето с millis().

LED_BUILTIN е константа, която сочи вградения светодиод. На Uno това е извод 13, а на други платки номерът е различен, затова константата е по-сигурна от твърдо зададено число.

Първата схема с външен светодиод

Когато вграденият светодиод ви омръзне, следващата стъпка е външен светодиод на макетна платка. По примера в документацията единият край на резистор се свързва към извода, другият към дългия крак (анода) на светодиода, а късият крак (катодът) отива към GND. Документацията посочва резистор 220 ома; на платки с 5 V светодиодът се вижда и с резистор до 1 килоом. Резисторът ограничава тока и пази и светодиода, и извода на платката. Без него и двата могат да изгорят.

Няколко навика пестят много време:

  • изключвайте USB кабела, преди да местите проводници;
  • проверявайте полярността на светодиода и електролитните кондензатори;
  • щом нещо не работи, отворете серийния монитор и изписвайте стойности с Serial.println(), за да видите какво „мисли“ платката.

Какво да научите след мигащата светлина

Добра последователност за първите седмици е: бутон като цифров вход, потенциометър като аналогов вход, плавно затъмняване с ШИМ, звук от пиезо зумер, после сензор за температура или разстояние и малък серво мотор. Всеки от тези примери е в менюто File → Examples на средата, с коментари и схема.

Arduino е добър мост между програмирането и електрониката. Ако ви харесва повече частта с кода, логичното продължение е общ език като Python или пътят към професията на софтуерния разработчик. Ако ви влече системната страна (мрежи, сървъри, устройства), вижте какво работи мрежовият инженер. А за деца, които тепърва се запознават с логиката на програмирането, по-лесен старт дават безплатните визуални платформи.

Източници и справки

  1. Arduino docs-content (GitHub): What is Arduino?
  2. Arduino Documentation: UNO R3
  3. Arduino docs-content (GitHub): Blink, built-in example

Прочетете още

Редакция на Първа стъпка в IT

Първа стъпка в IT е малък екип, който работи от София, България. Пишем за професиите, обучението и кариерата в информационните технологии и посочваме източника на всеки факт.

За нас · Как работим · Всички материали

Фактите са по източниците, посочени под материала. Текстът е на Редакцията на Първа стъпка в IT. Редакционна политика · Забелязахте грешка? Пишете ни на kontakt@itstep.bg.