Arduino напряжение на выходе с точностью до 0,01 В.

Делал недавно один небольшой заказ на Arduino. По заданию нужно регулировать напряжение в диапазоне от 0 В до 4,5 В с точностью 0,01 В. Задача несложная, но есть одна проблема. ШИМ Ardiono всего 8 bit, что позволяет нам получить 256 шагов изменения выходного сигнала. Как выйти из данной ситуации рассмотрим в данной статье.


Регулирование выходного напряжения с помощью ESP32.

Самое простое решение данной задачи — это использовать отладочную плату на базе ESP32, которая имеет ШИМ сигнал 16 bit. Но заказчик сказал, что у него в наличии только Arduino UNO. И использовать ESP32 нет возможности. Пришлось искать варианты решения с использованием Arduino.

Регулирование выходного напряжения с помощью ESP32.

16 бит ШИМ Arduino вместо стандартных 8.

Поискал я в интернете с помощью чего же можно увеличить рабочий диапазон ШИМ. И в этом мне помогла статья AlexGyver «Увеличение частоты ШИМ». Также у него есть библиотека, которая позволяет управлять частотой и PWM, что упрощает работу. Скачать библиотеку «GyverPWM» можно тут.

Библиотека достаточно хорошо описана и разобраться как ей пользоваться несложно. На странице описания библиотеки есть таблица «Таблица №1 частот для расширенной генерации ШИМ (PWM_resolution)», которая позволит настроить нужную разрядность.

Таблица №1 частот для расширенной генерации ШИМ (PWM_resolution)

Я использовал 12 бит для регулирования напряжения 5 В и 16 бит для регулирования напряжения 12 В.

Я использовал 12 бит для регулирования напряжения 5 В и 16 бит для регулирования напряжения 12 В.

Для работы нужно выставить разрядность pin Arduino.

// запустить ШИМ на D10, разрядность 12 бит (0-4095), частота 3.9 кГц, режим FAST_PWM
  PWM_resolution(10, 12, FAST_PWM);

Затем установить выходное значение с помощью следующей функции.

PWM_set(10, 2048);

Как данные значений перевести в напряжения, я думаю, понятно.

Описание работы регулятора напряжения на Arduino.

Давайте рассмотрим, что же получилось. Для этого нужно все подключить по схеме, приведенной ниже.

Схема работы регулятора напряжения на Arduino.

Первым делом нужно замерить опорное напряжение, так как источники питания имеют погрешность, а на выходе нужно получить достаточно точное значение. Провел эксперимент и замерил напряжения различных источников питания 5 В, которые были у меня. Напряжение варьирует от 5,12 В до 4,7 В. Вот почему важно использовать опорное напряжение.

Чтобы получить на выходе напряжения не забудьте использовать RC фильтр, на частоту среза в 100 раз меньше чем частота ШИМ.

Сохраняем данное значение. Для этого у меня сделана отдельная страница настроек.

Сейчас можно приступить к регулированию напряжения.

Сейчас можно приступить к регулированию напряжения. Но нужно помнить, что регулировать можно от 0 В до опорного напряжения. Если оно составляет 4,7 В, то больше значения выставлять нельзя.

Регулирование 12 В с помощью Arduino.

Так как я понимаю, что будут вопросы о регулировании напряжения больше опорного напряжения Arduino. Рассмотрим пример регулирования 12 В. Для этого в схему добавил IRF520N MOSFET модуль 140C07.

ассмотрим пример регулирования 12 В. Для этого в схему добавил IRF520N MOSFET модуль 140C07.

По аналогии с предыдущим примером нужно замерить опорное напряжение и указать его в настройках. Затем можно приступать к регулированию. В данном примере я уже использовал 16 bit PWM.

 Затем можно приступать к регулированию. В данном примере я уже использовал 16 bit PWM.

Как видим при изменении, напряжения больше на 0,43 – 0,45 В установленного на дисплее управления. Это скорее всего связанно с тем, что у меня не очень точный мультиметр, и при измерении опорного напряжения показания получены не совсем верные. Для таких работ нужны более точные приборы, но в целом результат неплохой. И при необходимости можно получить нужный диапазон регулирования. Но так как 12 В я протестировал только ради эксперимента, искать в чем погрешность не стал.

Подведём итоги.

Как видим, регулировать напряжение с высокой точностью можно и с помощью 8 -битной Arduino. При этом результат получился горазда лучше, чем я ожидал.

Понравился проект Arduino напряжение на выходе с точностью до 0,01 В? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Комментарии

Ваше Имя*


Бесплатный образец