В этом уроке мы разработаем источник переменного напряжения 5 В от Arduino Uno. Для этого мы собираемся использовать функцию АЦП (аналого-цифровое преобразование) и ШИМ (широтно-импульсная модуляция).
Некоторые цифровые электронные модули, такие как акселерометр, работают от напряжения 3,3 В, а некоторые - от 2,2 В. Некоторые даже работают при более низком напряжении. При этом мы не можем получить регулятор для каждого из них. Итак, здесь мы создадим простую схему, которая обеспечит выходное напряжение от 0 до 5 вольт с разрешением 0,05 В. Таким образом, мы можем точно указать напряжения для других модулей.
Эта схема может обеспечивать токи до 100 мА, поэтому мы можем без проблем использовать этот блок питания для большинства сенсорных модулей. Этот выход схемы также можно использовать для зарядки аккумуляторных батарей AA или AAA. Установив дисплей, мы можем легко увидеть колебания мощности в системе. Этот регулируемый блок питания содержит кнопочный интерфейс для программирования напряжения. Работа и схема объяснены ниже.
Аппаратное обеспечение: Arduino Uno, блок питания (5 В), конденсатор 100 мкФ (2 штуки), кнопка (2 штуки), резистор 1 кОм (3 штуки), ЖК-дисплей 16 * 2 символа, транзистор 2N2222.
Программное обеспечение: Atmel studio 6.2 или AURDINO nightly.
Принципиальная схема и объяснение работы
Схема для блока переменного напряжения с использованием Arduino показано на диаграмме ниже.
Напряжение на выходе не является полностью линейным; это будет шумно. Чтобы отфильтровать шум, на выходные клеммы помещают конденсаторы, как показано на рисунке. Две кнопки здесь предназначены для увеличения и уменьшения напряжения. Блок дисплея показывает напряжение на ВЫХОДНЫХ клеммах.
Прежде чем приступить к работе, нам нужно изучить особенности АЦП и ШИМ Arduino UNO.
Здесь мы собираемся взять напряжение, подаваемое на выводе OUTPUT, и подать его в один из каналов АЦП Arduino. После преобразования мы возьмем это ЦИФРОВОЕ значение, свяжем его с напряжением и покажем результат на дисплее 16 * 2. Это значение на дисплее представляет собой значение переменного напряжения.
ARDUINO имеет шесть каналов АЦП, как показано на рисунке. В них любой из них или все они могут использоваться как входы для аналогового напряжения. АЦП UNO имеет разрешение 10 бит (целочисленные значения от (0- (2 ^ 10) 1023)). Это означает, что он будет отображать входные напряжения от 0 до 5 вольт в целые значения от 0 до 1023. Таким образом, для каждого (5/1024 = 4,9 мВ) на единицу.
Здесь мы собираемся использовать A0 из UNO.
|
В первую очередь каналы UNO АЦП имеет опорное значение по умолчанию 5V. Это означает, что мы можем дать максимальное входное напряжение 5 В для преобразования АЦП на любом входном канале. Поскольку некоторые датчики обеспечивают напряжение от 0-2.5V, со ссылкой 5V мы получаем меньшую точность, поэтому у нас есть инструкция, которая позволяет нам изменить это значение ссылки. Итак, для изменения ссылочного значения у нас есть («analogReference ();»). А пока мы оставим его как.
По умолчанию мы получаем максимальное разрешение АЦП платы, равное 10 битам, это разрешение можно изменить с помощью инструкции («analogReadResolution (бит);»). В некоторых случаях это изменение разрешения может пригодиться. А пока оставим это как.
Теперь, если вышеуказанные условия установлены по умолчанию, мы можем прочитать значение из АЦП канала «0», напрямую вызвав функцию «analogRead (pin);», здесь «pin» представляет контакт, к которому мы подключили аналоговый сигнал, в данном случае это будет «A0».
Значение из АЦП можно принять в виде целого числа как «float VOLTAGEVALUE = analogRead (A0); », По этой инструкции значение после АЦП сохраняется в виде целого числа« VOLTAGEVALUE ».
ШИМ UNO может быть реализован на любом из контактов, обозначенных символом «~» на печатной плате. В UNO шесть каналов ШИМ. Мы собираемся использовать PIN3 для наших целей.
analogWrite (3, ЗНАЧЕНИЕ); |
Из вышеуказанного условия мы можем напрямую получить сигнал ШИМ на соответствующем выводе. Первый параметр в скобках предназначен для выбора номера вывода сигнала ШИМ. Второй параметр предназначен для записи коэффициента заполнения.
Значение PWM UNO может быть изменено от 0 до 255. При минимальном значении «0» на «255». При 255 в качестве коэффициента заполнения мы получим 5В на контакте 3. Если коэффициент заполнения задан как 125, мы получим 2,5 В на контакте 3.
Как было сказано ранее, есть две кнопки, подключенные к PIN4 и PIN5 UNO. При нажатии значение продолжительности включения ШИМ увеличится. При нажатии другой кнопки значение коэффициента заполнения ШИМ уменьшается. Таким образом, мы меняем коэффициент заполнения сигнала ШИМ на контакте 3.
Этот сигнал ШИМ на PIN3 подается на базу транзистора NPN. Этот транзистор обеспечивает переменное напряжение на эмиттере, действуя при этом как переключающее устройство.
При переменной продолжительности включения PWM в базе будет изменяемое напряжение на выходе эмиттера. Благодаря этому у нас под рукой есть источник переменного напряжения.
Выходное напряжение подается на АЦП UNO, чтобы пользователь мог видеть выходное напряжение.