- Необходимый материал
- Принципиальная электрическая схема
- Светодиодная гистограмма
- Программа Arduino для мониторинга напряжения батареи:
- Индикатор работы аккумулятора
Батареи поставляются с определенным пределом напряжения, и если напряжение выходит за установленные пределы во время зарядки или разрядки, срок службы батареи сокращается. Когда мы используем проект с батарейным питанием, иногда нам нужно проверить уровень напряжения батареи, нужно ли ее заряжать или заменять. Эта схема поможет вам контролировать напряжение вашей батареи. Этот индикатор напряжения батареи Arduino показывает состояние батареи горящими светодиодами на 10-сегментной светодиодной гистограмме в соответствии с напряжением батареи. Он также показывает напряжение вашей батареи на ЖК-дисплее, подключенном к Arduino.
Необходимый материал
- Arduino UNO
- 10-сегментная светодиодная линейка
- ЖК-дисплей (16 * 2)
- Потенциометр-10к
- Резистор (100 Ом-10; 330 Ом)
- Аккумулятор (подлежит проверке)
- Соединительные провода
- Адаптер 12v для Arduino
Принципиальная электрическая схема
Светодиодная гистограмма
Светодиодная гистограмма имеет промышленный стандартный размер с низким энергопотреблением. Полоса классифицируется по интенсивности света. Сам продукт остается в соответствии с версией RoHS. Он имеет прямое напряжение до 2,6 В. Рассеиваемая мощность на сегмент составляет 65 мВт. Рабочая температура светодиодной гистограммы составляет от -40 ℃ до 80 ℃. Светодиодная гистограмма имеет множество применений, таких как звуковое оборудование, приборные панели и цифровой дисплей.
Схема контактов
Конфигурация контактов
Программа Arduino для мониторинга напряжения батареи:
Полный Arduino код и демонстрация видео приводится в конце этой статьи. Здесь мы объяснили некоторые важные части кода.
Здесь мы определяем библиотеку ЖК-дисплея и указываем контакты ЖК-дисплея, которые будут использоваться с Arduino. Аналоговый вход берется с контакта A4 для проверки напряжения батареи. Мы установили значение Float, чтобы получить напряжение с точностью до двух знаков после запятой.
#включают
int ledPins = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // массив номеров контактов, к которым прикреплены светодиоды int pinCount = 10; // количество выводов (т.е. длина массива)
Настройка ЖК-дисплея и аналоговых контактов (A0, A1, A2, A3) в качестве выходных контактов.
void setup () {Serial.begin (9600); // открывает последовательный порт, устанавливает скорость передачи данных 9600 бит / с lcd.begin (16, 2); //// настраиваем количество столбцов и строк ЖК-дисплея: pinMode (A0, OUTPUT); pinMode (A1, ВЫХОД); pinMode (A2, ВЫХОД); pinMode (A3, ВЫХОД); pinMode (A4, ВХОД); lcd.print («Уровень напряжения»); }
Здесь мы создаем функцию для простого использования светодиодной гистограммы, вы даже можете зажечь светодиоды, запрограммировав их один за другим, но код получается длинным.
void LED_function (int stage) {for (int j = 2; j <= 11; j ++) {digitalWrite (j, LOW); } для (int i = 1, l = 2; i <= stage; i ++, l ++) {digitalWrite (l, HIGH); // задержка (30); }} В этой части мы считали значение напряжения с помощью аналогового вывода. Затем мы преобразуем аналоговое значение в цифровое значение напряжения, используя формулу аналого-цифрового преобразования, и отображаем его на ЖК-дисплее.
// Формула преобразования напряжения analogValue = analogRead (A4); Serial.println (analogValue); задержка (1000); input_voltage = (аналоговое значение * 5,0) / 1024,0; lcd.setCursor (0, 1); lcd.print ("Voltage ="); lcd.print (input_voltage); Serial.println (input_voltage); задержка (100);
В соответствии со значением входного напряжения мы задали некоторые условия для управления светодиодами светодиодной гистограммы. Состояние вы можете проверить в коде ниже:
если (input_voltage <0.50 && input_voltage> = 0.00) {digitalWrite (2, HIGH); задержка (30); digitalWrite (2, LOW); задержка (30); // когда напряжение равно нулю или низкое, первый светодиод будет мигать} else if (input_voltage <1.00 && input_voltage> = 0.50) {LED_function (2); } иначе if (input_voltage <1.50 && input_voltage> = 1.00) {LED_function (3); } else if (input_voltage <2.00 && input_voltage> = 1,50) {LED_function (4); } else if (input_voltage <2.50 && input_voltage> = 2.00) {LED_function (5); } else if (input_voltage <3.00 && input_voltage> = 2.50) {LED_function (6); } иначе if (input_voltage <3.50 && input_voltage> = 3.00) {LED_function (7); } иначе if (input_voltage <4.00 && input_voltage> = 3.50) {LED_function (8);} иначе if (input_voltage <4.50 && input_voltage> = 4.00) {LED_function (9); } иначе if (input_voltage <5.00 && input_voltage> = 4.50) {LED_function (10); }}
Индикатор работы аккумулятора
Индикатор напряжения батареи просто считывает значение с аналогового вывода Arduino и преобразует его в цифровое значение, используя формулу аналого-цифрового преобразования (АЦП). Arduino Uno АЦП является 10-битным разрешением (таким образом целые значения от 0 - 2 ^ 10 = 1024 значений). Это означает, что он преобразует входные напряжения от 0 до 5 вольт в целочисленные значения от 0 до 1023. Таким образом, если мы умножим входное anlogValue на (5/1024), мы получим цифровое значение входного напряжения. Узнайте здесь, как использовать ввод АЦП в Arduino. Затем цифровое значение используется для соответствующего свечения светодиодной шкалы Graph.
Также проверьте этот простой монитор уровня заряда батареи без микроконтроллера.