В този урок ще разработим 5V източник на променливо напрежение от Arduino Uno. За целта ще използваме функцията ADC (аналогово към цифрово преобразуване) и PWM (Pulse Width Modulation).
Някои цифрови електронни модули като акселерометър работят на напрежение 3.3V, а други работят на 2.2V. Някои дори работят на по-ниски напрежения. С това не можем да получим регулатор за всеки един от тях. Така че тук ще направим проста схема, която ще осигури изходно напрежение от 0-5 волта при разделителна способност 0,05V. Така че с това можем да осигурим напрежение точно за останалите модули.
Тази схема може да осигури токове до 100 mA, така че можем да използваме този захранващ блок за повечето сензорни модули без никакви проблеми. Този изход на веригата може да се използва и за зареждане на AA или AAA акумулаторни батерии. С поставения дисплей можем лесно да видим колебанията на мощността в системата. Този променлив захранващ блок съдържа интерфейс на бутон за програмиране на напрежението. Работата и веригата са обяснени по-долу.
Хардуер: Arduino Uno, захранване (5v), кондензатор 100uF (2 броя), бутон (2 броя), 1KΩ резистор (3 броя), 16 * 2 символа LCD, транзистор 2N2222.
Софтуер: Atmel studio 6.2 или AURDINO всяка вечер.
Електрическа схема и работно обяснение
Схемата за единица с променливо напрежение, използваща arduino, е показана на долната диаграма.
Напрежението на изхода не е напълно линейно; ще бъде шумно. За филтриране на шумовите кондензатори се поставят през изходните клеми, както е показано на фигурата. Двата бутона тук са за увеличаване и намаляване на напрежението. Дисплеят показва напрежението на клемите OUTPUT.
Преди да започнем работа, трябва да разгледаме характеристиките на ADC и PWM на Arduino UNO.
Тук ще вземем напрежението, осигурено на изхода OUTPUT, и ще го подадем в един от ADC каналите на Arduino. След преобразуването ще вземем тази ЦИФРОВА стойност и ще я свържем с напрежението и ще покажем резултата в 16 * 2 дисплей. Тази показана стойност представлява стойността на променливото напрежение.
ARDUINO има шест ADC канала, както е показано на фигурата. В тях всеки един или всички от тях може да се използва като входове за аналогово напрежение. UNO ADC е с 10-битова разделителна способност (така че целочислените стойности от (0- (2 ^ 10) 1023)). Това означава, че ще преобразува входните напрежения между 0 и 5 волта в целочислени стойности между 0 и 1023. Така че за всеки (5/1024 = 4.9mV) за единица.
Тук ще използваме A0 на UNO.
|
На първо място UNO ADC каналите имат референтна стойност по подразбиране 5V. Това означава, че можем да дадем максимално входно напрежение от 5V за ADC преобразуване на всеки входен канал. Тъй като някои сензори осигуряват напрежение от 0-2,5V, с 5V референция получаваме по-малка точност, така че имаме инструкция, която ни позволява да променим тази референтна стойност. Така че за промяна на референтната стойност имаме (“analogReference ();”) Засега я оставяме като.
По подразбиране получаваме максималната разделителна способност на ADC на борда, която е 10 бита, тази разделителна способност може да бъде променена с помощта на инструкция („analogReadResolution (битове);“). Тази промяна на резолюцията може да бъде полезна за някои случаи. Засега го оставяме така.
Сега, ако горните условия са зададени по подразбиране, можем да прочетем стойност от ADC на канал '0', като директно извикаме функцията „analogRead (pin);“, тук „pin“ представлява щифт, където сме свързали аналогов сигнал, в този случай ще бъде „A0“.
Стойността от ADC може да бъде взета в цяло число като „float VOLTAGEVALUE = analogRead (A0); ”, Чрез тази инструкция стойността след ADC се съхранява в цялото число„ VOLTAGEVALUE ”.
PWM на UNO може да се постигне на всеки от щифтовете, символизирани като „~“ на платката на печатната платка. В UNO има шест ШИМ канала. Ще използваме PIN3 за нашата цел.
analogWrite (3, VALUE); |
От горното условие можем директно да получим ШИМ сигнала на съответния щифт. Първият параметър в скоби е за избор на пинов номер на ШИМ сигнал. Вторият параметър е за писане на коефициент на мито.
Стойността на ШИМ на UNO може да бъде променена от 0 на 255. С „0“ като най-ниска до „255“ като най-висока. С 255 като коефициент на мито ще получим 5V при PIN3. Ако коефициентът на мито е даден като 125, ще получим 2.5V при PIN3
Както казахме по-рано, има два бутона, свързани към PIN4 и PIN5 на UNO. При натискане стойността на коефициента на мито на ШИМ ще се увеличи. При натискане на друг бутон стойността на коефициента на мито на ШИМ намалява. Така че ние променяме коефициента на запълване на ШИМ сигнала при PIN3.
Този PWM сигнал при PIN3 се подава към основата на NPN транзистора. Този транзистор осигурява променливо напрежение на излъчвателя си, като същевременно действа като превключващо устройство.
С променливото съотношение на ШИМ в основата ще има променливо напрежение на изхода на емитер. С това имаме под ръка източник на променливо напрежение.
Изходното напрежение се подава към UNO ADC, за да може потребителят да види изходното напрежение.