Arduino Due е платка, базирана на ARM контролер, предназначена за електронни инженери и любители. ARM архитектурата е много въздействаща в съвременната електроника, ние ги използваме навсякъде, като нашите мобилни телефони, iPod и компютри и т.н. ARM контролерите са много важни поради тяхната гъвкавост.
Вече разгледахме основите на Arduino Due в Първи стъпки с Arduino Due. Сега в този урок ще настроим яркостта на светодиода, като използваме ШИМ сигнал, генериран от DUE. Сигналът DUE PWM (Pulse Width Modulation) осигурява променливо напрежение спрямо постоянно захранване.
Широчинно импулсна модулация:
На горната фигура, ако превключвателят е затворен непрекъснато за определен период от време, светодиодът непрекъснато ще бъде включен. Ако ключът е затворен за половин секунда и отворен за следващата половина секунда, тогава светодиодът ще свети само през първата половина секунда. Сега пропорцията, за която светодиодът е включен през цялото време, се нарича цикъл на задействане и може да се изчисли, както следва:
Работен цикъл = Време за включване / (Време за включване + Време за изключване)
Работен цикъл = (0,5 / (0,5 + 0,5)) = 50%
Така че средното изходно напрежение ще бъде 50% от напрежението на батерията.
Това е така за една секунда и можем да видим, че светодиодът е изключен за половин секунда, а светодиодът е включен през другата половина секунда. Ако честотата на включване и изключване пъти се увеличи от "1 в секунда" на "50 в секунда". Човешкото око не може да улови тази честота на включване и изключване. За нормално око светодиодът ще се вижда като светещ с половината от яркостта. Така че с по-нататъшно намаляване на времето за включване светодиодът изглежда много по-лек.
Ще програмираме DUE за получаване на ШИМ и ще свържем светодиод, за да покажем как работи.
В DUE има 12 ШИМ канала (ПИН 2 до ПИН 13) и ние можем да използваме всеки един или всички от тях. В този случай ще се придържаме към един ШИМ сигнал при PIN2.
Компоненти:
- Arduino Due
- Захранване (5v)
- LED
- Бутони (два броя),
- 1KΩ резистор (два броя), 220Ω резистор
И Arduino IDE - Arduino Nightly Software (https://www.arduino.cc/en/Main/Software).
Електрическа схема и работно обяснение:
Веригата е свързана на макет, съгласно схемата. Въпреки това трябва да се обърне внимание по време на свързването на LED клемите. Въпреки че бутоните могат да показват подскачащ ефект, но в този случай това не причинява значителни грешки, така че не е нужно да се притесняваме този път.
Получаването на ШИМ сигнал от DUE е лесно; Arduino IDE предоставя полезни функции, които облекчават трудността на програмиста. Ако се заемем с програмиране с чип чип, трябва да настроим контролер ATMEGA за ШИМ сигнал, което не е лесно; трябва да дефинираме много регистри и настройки за точен сигнал, но в Arduino не трябва да се справяме с всички тези неща. Вече покрихме импулсно-широчинната модулация с ATmega32, с Arduino Uno и с 555 IC таймер.
По подразбиране всички заглавни файлове и регистри са предварително дефинирани от Arduino IDE, просто трябва да ги извикаме и това е, ще имаме PWM изход на подходящ пин. Също така трябва да извикаме определени команди, за да получим ШИМ сигнал, те са обсъдени по-долу:
pinMode (2, OUTPUT) analogWrite (pin, стойност)
Първо трябва да изберем PWM изходния канал или да изберем пин от 12 пина DUE, след това трябва да зададем този пин като изход. Тъй като използваме PIN2 като изход, ще го зададем като OUTPUT, както е показано на първия ред.
След това трябва да активираме PWM функцията на DUE, като извикаме функцията „ analogWrite (пин, стойност) “. Тук 'pin' представлява номера на пина, където се нуждаем от PWM изход. Поставяме го като „2“, така че при PIN2 получаваме PWM изход. “Стойност” е стойността за включване, тя варира между 0 (винаги изключена) и 255 (винаги включена). В това пространство можем да напишем подходящата стойност за необходимата яркост на светодиода.
Прикачихме няколко бутона на дъската DUE за промяна на тази стойност. Единият бутон е за увеличаване на стойността на яркостта, а другият е за намаляване на стойността на яркостта. След като приключите с програмирането, ние можем да регулираме яркостта чрез натискане на тези бутони.