Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Переменный источник питания с использованием Arduino UNO — схема и код

Как сделать регулируемый источник питания с помощью Arduino UNO?

Электропитание является основным и важным требованием для электронного и электрического оборудования и цепей. Существуют различные типы схем и оборудования, поэтому их потребность в источнике питания различна для разных схем электроники. Например, для модулей Wi-Fi, реле, двигателей и т. д. требуется разное напряжение. На рынке у нас нет разных источников питания для каждой электроники, поэтому мы генерируем свой собственный источник питания с помощью различных методов. Простое решение для этого — использование батареек.

Батарейки обычно используются для питания электронной схемы и проектов, поскольку они легко доступны и легко подключаются. Но они быстро разрядились, и тогда нам нужны новые батареи, также эти батареи не могут обеспечить большой ток для питания мощного двигателя. Таким образом, батареи разряжаются, а также делают схему громоздкой. Также батареи нагреваются, когда электроника используется дольше или чрезмерно, и со временем срок службы батарей уменьшается. Чтобы преодолеть эту проблему, мы предлагаем лучшее и эффективное решение, которое можно использовать в любой схеме. В этом проекте мы покажем вам, как мы можем создать переменный источник питания из Arduino UNO. .

Используя этот проект, вы сможете получить переменный источник питания в соответствии с вашим электронным оборудованием, не беспокоясь о зарядке, разрядке, проблемах с нагревом и т. д. Существует множество способов создания переменного блок питания, но это самый простой способ, так как он требует дешевых и легкодоступных компонентов. Итак, давайте рассмотрим компоненты, необходимые для этого проекта.

Необходимые компоненты

Программное обеспечение: AURDINO Nightly или Atmel Studio 6.2

Схема переменного источника питания

Прежде чем приступить к этому проекту, расскажите нам немного о нем.

Arduino UNO

Arduino UNO — это платформа с открытым исходным кодом, которая используется для разработки проектов в области электроники. Его можно легко запрограммировать, стереть и перепрограммировать в любой момент времени. На рынке доступно множество плат Arduino, таких как Arduino UNO, Arduino Nano, Arduino Mega, Arduino lily pad и т. д. с различными характеристиками в зависимости от их использования. В этом проекте мы собираемся использовать Arduino UNO для автоматического управления бытовой техникой. Он имеет микросхему микроконтроллера ATmega328, работающую на тактовой частоте 16 МГц. Это мощное устройство, которое может работать с протоколами связи USART, I2C и SPI.

Эта плата обычно программируется с помощью программного обеспечения Arduino IDE с использованием кабеля micro USB. ATmega328 поставляется с предварительно запрограммированным загрузчиком на плате, что упрощает загрузку кода без помощи внешнего оборудования. Он имеет широкое применение в создании проектов или продуктов электроники. Для программирования платы используются языки C и C++, которые очень просты в освоении и использовании. Arduino IDE значительно упрощает программирование. Он разделяет код на две части:void setup() и void loop(). Функция void setup() запускается только один раз и используется в основном для запуска какого-либо процесса, тогда как void loop() состоит из части кода, которая должна выполняться постоянно.

Эта модель состоит из 6 аналоговых входных контактов и 14 цифровых контактов GPIO, которые можно использовать в качестве входных выходов, 6 из которых обеспечивают выход ШИМ и аналоговый сигнал с использованием pinMode(), digitalWrite(), digitalRead() и AnalogRead(). 6 аналоговых входных каналов от контактов A0 до A5 обеспечивают 10-битное разрешение. Плата может получать питание от USB-кабеля, работающего от 5 В, или от разъема постоянного тока, работающего от 7 до 20 В.

На плате имеется стабилизатор напряжения для выработки 3,3 В для работы маломощных устройств. Поскольку ATmega328 работает с протоколами связи USART, SPI и I2C, имеет контакты 0 (Rx) и 1 (Tx) для связи USART, контакты SDA (A4) и SCL (A5) для I2C и SS (10), MOSI (11) , MISO (12) и SCK (13) для протокола связи SPI.

АЦП на Arduino UNO

Arduino UNO имеет на борту 6 каналов АЦП, которые можно использовать для обнаружения или считывания аналоговых сигналов в диапазоне от 0 до 5 вольт. Когда мы соединяем датчики с микроконтроллером, таким как Arduino UNO, датчик генерирует аналоговые выходные значения, а Arduino UNO воспринимает цифровые значения. Поэтому АЦП помогает преобразовывать значения датчиков в аналоговые значения и подает их в микроконтроллер. Существует множество приложений АЦП, таких как измерение температуры, измерение расстояния, измерение скорости и множество датчиков, которые генерируют аналоговые значения.

Arduino UNO имеет 10-битный АЦП, что означает, что его значение изменяется от 0 до 1023 на каждом шаге. Это называется разрешением, которое указывает количество дискретных значений, которые он может произвести в диапазоне аналоговых значений.

Поскольку максимальное напряжение АЦП составляет 5 вольт, каждый шаг АЦП в диапазоне от 0 до 1023 имеет значение, эквивалентное примерно 5 мВ. На плате Arduino UNO есть 6 каналов АЦП, которые от A0 до A5 означают, что одновременно он может управлять или взаимодействовать с 6 устройствами, которые генерируют аналоговые значения.

IDE Arduino предоставляет встроенную функцию для чтения аналоговых значений:AnalogRead(pin).

Просто указывая номер контакта от A0 до A5, к которому подключены устройства, эта функция помогает нам считывать аналоговые значения.

ШИМ на Arduino UNO

Широтно-импульсная модуляция (ШИМ) — это метод, используемый для генерации аналоговых сигналов с использованием какого-либо цифрового источника путем изменения ширины импульса при сохранении постоянной частоты. Две основные важные вещи, которые определяют ШИМ, это:рабочий цикл и частота.

Рабочий цикл сигнала:

Доля, в течение которой сигнал включен в полном периоде, называется рабочим циклом.

Рабочий цикл =100*тонна / (тонна + груз)

Обычно используется для управления мощностью, подаваемой на нагрузку, путем включения и выключения сигнала. Например, его можно использовать для управления интенсивностью света или скоростью какого-либо двигателя. После вызова функции AnalogWrite() вывод будет генерировать устойчивую прямоугольную волну с указанным рабочим циклом до следующего вызова AnalogWrite() или вызова digitalRead() или digitalWrite() на том же выводе.

Частота сигнала:

Частота сигнала означает, насколько быстро сигнал завершает свой цикл, то есть за сколько времени он переключается из состояния ВКЛ в состояние ВЫКЛ или наоборот. Таким образом, при определенном рабочем цикле выход ведет себя как постоянное аналоговое напряжение. Частота ШИМ-сигнала на большинстве выводов составляет примерно 490 Гц. На Uno и подобных платах контакты 5 и 6 имеют частоту примерно 980 Гц. Контакты 3 и 11 на Leonardo также работают на частоте 980 Гц

Arduino UNO имеет 6 8-битных ШИМ-каналов с символом ~ на нем. Мы можем получить аналоговое напряжение, используя функцию AnalogWrite в Arduino IDE:

analogWrite (булавка, рабочий цикл)

Pin:принимает вывод на Arduino UNO, используемый для генерации аналогового вывода.

Рабочий цикл:в качестве входных данных для изменения рабочего цикла принимает значения в диапазоне от 0 (мин.) до 255 (макс.).

ЖК-дисплей 16 × 2

Создание пользовательских символов на ЖК-дисплее не очень сложно. Это требует знаний о специально сгенерированной памяти с произвольным доступом (CG-RAM) ЖК-дисплея и контроллере микросхемы ЖК-дисплея. Речь идет о подключении Arduino UNO к ЖК-модулю 16×2 JHD162A. JHD162A — это ЖК-модуль 16×2, основанный на драйвере HD44780 от Hitachi. JHD162A имеет 16 контактов и может работать в 4-битном режиме (используя только 4 линии данных) или 8-битном режиме (используя все 8 линий данных). В этом проекте мы собираемся использовать 4-битный режим, поскольку для этого требуется подключение проводов.

Описание контактов ЖК-модуля 16×2:

Закрепить на LCD Описание
VSS Заземление
VCC питание +5 В
VEE Закрепите, чтобы изменить контраст ЖК-дисплея
RS Регистрация выбора:режим данных или режим команд
RW Режим чтения или записи
E Включить LCD
DB0-DB7 Данные и команды передаются с помощью этих контактов
LED+ Анод светодиода подсветки
LED- Катод светодиода подсветки

У этого ЖК-дисплея нет собственной подсветки, поэтому за экраном находится светодиод, который служит подсветкой дисплея. Взаимодействие этого ЖК-дисплея с Arduino UNO довольно просто, поскольку Arduino IDE предоставляет библиотеку LiquidCrystal, которая имеет множество встроенных функций, упрощающих инициализацию и печать чего-либо на дисплее. Функции ЖК-дисплея, которые мы в основном будем использовать в этом проекте:

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
lcd.begin()
lcd.clear()
lcd.print()

Работа переменного источника питания с использованием Arduino

Правильно подключите провода, как показано на принципиальной схеме. В этом проекте мы получаем напряжение, полученное на выходной клемме, и подаем его на вход одного из каналов АЦП. Далее канал АЦП выдает цифровое значение, которое затем отображается на ЖК-дисплее 16×2. Кнопки, используемые в проекте, предназначены для увеличения и уменьшения напряжения и подключены к контактам 4 и 5 Arduino UNO. Поскольку Arduino UNO имеет 10-битное разрешение, что означает, что оно варьируется от 0 до 1023, а максимальное напряжение АЦП составляет 5 вольт, поэтому один бит равен 5/1024 =4,9 милливольта (приблизительно). Таким образом, при увеличении и уменьшении мы перемещаем цифровое значение в диапазоне от 0 до 1023.

Теперь мы считываем значение АЦП на канале A0. Arduino IDE предоставляет встроенную функцию AnalogRead(pin) для чтения значений АЦП, здесь вывод A0, так как канал A0 на Arduino UNO. Далее мы используем контакт 3 для Pwm Arduino UNO. Arduino IDE предоставляет функцию AnalogWrite(pin,Duty Cycle) для генерации желаемого выходного напряжения с заданным рабочим циклом на выводе 3.

Теперь нажатием двух кнопок мы изменяем коэффициент заполнения ШИМ-сигнала, в результате чего изменяется выходное напряжение. Одна кнопка предназначена для увеличения рабочего цикла, а другая — для уменьшения рабочего цикла. Значение ШИМ Arduino Uno изменяется от 0 до 255, где 0 как минимум для достижения 0 вольт и 255 как максимум для достижения 5 вольт. Вывод 3 дополнительно подключен к транзистору NPN, который обеспечивает переменное напряжение на своем эмиттере и действует как переключающее устройство.

База транзистора будет иметь переменный коэффициент заполнения pwm, и, следовательно, мы можем получить переменное выходное напряжение на клемме. Поскольку напряжение не является линейным, мы подключаем конденсаторы, чтобы отфильтровать шум в переменном выходном напряжении.

Объяснение кода

Включая библиотеки:

#include <LiquidCrystal.h>

Это встроенная библиотека для использования ЖК-дисплея. Он предоставляет функции, которые можно легко использовать для отображения символов на ЖК-дисплее.

LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
int ref_volt =125;
float flag =0;

жидкокристаллический ЖК-дисплей принимает номер контакта, к которому подключены контакты данных и контакты RS, RW и E ЖК-дисплея. Поскольку мы устанавливаем опорное напряжение на 2,5 вольта, мы устанавливаем рабочий цикл на 50%, устанавливая ref_volt на 125.

pinMode (3, OUTPUT);
pinMode (4, INPUT);
pinMode (5, INPUT);

Контакт 3 Arduino UNO настроен как выход ШИМ, контакты 4 и 5 настроены на вход для увеличения и уменьшения напряжения.

lcd.begin(16, 2);
delay(100);
lcd.setCursor(1, 0);
lcd.print("Variable Voltage");
lcd.clear();
delay(1000);
Функция

lcd.begin устанавливает количество символов на ЖК-дисплее. В начале мы отображаем на экране «Переменное напряжение».

float value = (analogRead(A0));
value = (value*5)/1024;
analogWrite(3,ref_volt);

Переменная Value считывает цифровое значение, полученное из канала АЦП A0, и преобразует это цифровое значение в значение напряжения. AnalogWrite обеспечивает ШИМ на выводе 3 Arduino UNO.

if (digitalRead(4)==LOW)
  {
    if (ref_volt<250)
    {
      ref_volt=ref_volt+1;
      delay(100);
    }
  }

Это проверяет, нажата ли кнопка увеличения или нет. Если кто-то нажимает кнопку увеличения, это увеличивает ref_volt.

  if (digitalRead(5)==LOW)
   {
     if (ref_volt>0)
      {
        ref_volt=ref_volt-1;
        delay(100);
      }
    }

Это проверяет, нажата ли кнопка уменьшения или нет. Если кто-то нажмет кнопку уменьшения, то ref_volt уменьшится.

Таким образом вы можете сгенерировать переменный источник питания 5 В с помощью Arduino UNO. не беспокоясь о батареях и не делая схему громоздкой.


Промышленные технологии

  1. Использование ИИ для выявления дикой природы и торговли людьми в цепочке поставок
  2. Декодер DTMF с использованием только Arduino
  3. Вольтметр своими руками с использованием Arduino и смартфона
  4. WebServerBlink с использованием Arduino Uno WiFi
  5. Связь Python3 и Arduino
  6. FM-радио с использованием Arduino и RDA8057M
  7. Робот-машина, управляемая с помощью смартфона с G-сенсором
  8. Ток, мощность и крутящий момент в приводах с регулируемой скоростью
  9. Схема двойного источника питания — от 230 В переменного тока до ±12 В постоянного тока
  10. Бестрансформаторный блок питания:проверенный способ сократить расходы и занимать меньше места