Проект. Тестер батареек на плате Ардуино Уно

Тестер батареек и аккумуляторов на Arduino Uno — один из самых простых проектов для которого потребуется минимум деталей. Представим два варианта данного устройства — на светодиодах для индикации заряда батарей, а также с использованием LCD дисплея для вывода информации. Подробная схема сборки проекта и программа для тестера на микроконтроллере Ардуино представлена далее на странице.

Первым делом необходимо предупредить, что на аналоговые порты плат Ардуино не следует подавать напряжение более 5 Вольт. Согласно описанию Arduino Uno, данного производителем, при большем напряжении микроконтроллер может выйти из строя. Если вам необходимо будет проверить заряд аккумулятора с напряжением более 5 Вольт, то можно использовать делитель напряжения на резисторах.

Тестер батареек и аккумуляторов на Ардуино

Для этого проекта потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • три светодиода и три резистора;
  • диод;
  • LCD дисплей;
  • макетная плата;
  • провода «папа-папа», «папа-мама».
Тестер батареек Ардуино со светодиодами
Схема. Тестер батареек на Ардуино Уно со светодиодами

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

Скетч. Тестер батареек Ардуино своими руками

#define RED    2        // красный светодиод
#define YELLOW 4    // желтый светодиод
#define GREEN  6     // зеленый светодиод
#define TESTER A1   // порт для подключения батарейки

int data;
float voltage;

void setup() {
   Serial.begin(9600);    // запускаем серийный монитор порта

   pinMode(RED, OUTPUT);
   pinMode(YELLOW, OUTPUT);
   pinMode(GREEN, OUTPUT);

   pinMode(TESTER, INPUT);
   analogWrite(TESTER, LOW);
}

void loop() {
   data = analogRead(A1);     // считываем данные с порта A1
   voltage = data * 0.0048;   // переводим значения в вольты

   Serial.print(voltage);         // выводим напряжение на монитор
   Serial.println(" Volts");

   if ( voltage >= 1.5 ) {
      digitalWrite(GREEN, HIGH);
      digitalWrite(YELLOW, LOW);
      digitalWrite(RED, LOW);
   }

   else if ( voltage < 1.5 && voltage > 1.3 ) {
      digitalWrite(GREEN, LOW);
      digitalWrite(YELLOW, HIGH);
      digitalWrite(RED, LOW);
   }

   else if ( voltage <= 1.3 ) {
      digitalWrite(GREEN, LOW);
      digitalWrite(YELLOW, LOW);
      digitalWrite(RED, HIGH);
  }

   delay(500);
}

Пояснения к коду:

  1. заряд батареи дополнительно выводится на монитор порта Arduino IDE;
  2. в зависимости от заряда одноэлементной батарейки (аккумулятора), на макетной плате включается красный, желтый или зеленый светодиод.



Тестер батареек на Arduino с LCD дисплеем

Тестер батареек на Arduino с LCD
Схема. Тестер батареек на Arduino Uno с LCD дисплеем

Если у вас есть в наличии дисплей с I2C модулем, то можно собрать более сложный проект на Arduino Nano или Uno. Также для индикации заряда одноэлементных батарей можно использовать светодиодную шкалу, собрав тестер батареек на Arduino Uno и светодиодной шкале. Соберите схему, как на картинке выше и загрузите следующий скетч. Скачать две представленных программы можно по ссылке здесь.

Скетч. Тестер заряда батареи с дисплеем

#include "Wire.h"                                // библиотека для протокола I2C
#include "LiquidCrystal_I2C.h"          // библиотека для LCD 1602 
LiquidCrystal_I2C LCD(0x27,20,2);    // присваиваем имя дисплею

int data;
float voltage;

void setup() {
   pinMode(A1, INPUT);
   analogWrite(A1, LOW);

   Serial.begin(9600);     // запускаем монитор порта
   LCD.init();                     // инициализация дисплея
   LCD.backlight();           // включение подсветки
 }

void loop() {
   data = analogRead(A1);   // считываем данные с порта A1
   voltage = data * 0.0048;  // переводим значения в вольты

   Serial.print(voltage);         // выводим напряжение на монитор
   Serial.println(" Volts");

   LCD.setCursor(0,0);   // ставим курсор на 1 символ первой строки
   LCD.print(voltage);    // выводим напряжение на дисплей
   LCD.print(" Volts");

   delay(500);
   LCD.clear();                // очищаем экран дисплея
}

Пояснения к коду:

  1. с помощью функции #define заданы имена для цифровых портов к которым подключены светодиоды и для аналогового входа A1;
  2. скетч считывает значение с входа A1 и преобразует его в напряжение.
  3. два представленных скетча можно объединить, чтобы заряд батареи отображался на дисплее и мониторе порта, а также включались светодиоды.


6 Replies to “Тестер батареек на Ардуино с LCD 1602”

  1. В сетапе надо добавить analogWrite(TESTER, LOW);
    иначе когда проверка не осуществляется там постоянно ~1,5 вольта

  2. Для первого варианта сборки отсутствует схема. Понимаю, что странице уже три года, но всё же хотел бы её увидеть

  3. LCD.init(); // инициализация дисплея тут ошибка ‘class LiquidCrystal_I2C’ has no member named ‘init’

  4. Я всё таки не понимаю зачем в списке компонентов диод? Его же нигде нет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.