Оглавление:

Проверка батареи с температурой и выбором батареи: 23 шага (с изображениями)
Проверка батареи с температурой и выбором батареи: 23 шага (с изображениями)

Видео: Проверка батареи с температурой и выбором батареи: 23 шага (с изображениями)

Видео: Проверка батареи с температурой и выбором батареи: 23 шага (с изображениями)
Видео: НАТРИЙ - ИОННЫЙ АККУМУЛЯТОР Na-ion | ЗАМЕНИТ Li-ion? 2024, Ноябрь
Anonim
Image
Image
Изменить базовый проект
Изменить базовый проект

Тестер емкости аккумулятора.

С помощью этого устройства вы можете проверить емкость батареи 18650, кислоты и других (самая большая батарея, которую я тестировал, это 6v Acid battery 4, 2A). Результат теста выражается в миллиампер / час.

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

В целях безопасности я добавил, используя термистор, температуру силового сопротивления и батареи, чтобы предотвратить перегрев, с помощью этого трюка я могу проверить 6-вольтовую кислотную батарею, не загорая плату (в цикле разряда некоторое время перейдите на резистор горячего питания. и устройство подождите 20 секунд, чтобы снизить температуру).

Я выбираю маленький микроконтроллер atmega328, совместимый с nano (eBay).

Весь код здесь.

Шаг 1. Переход от базового проекта

Я позаимствовал идею из проекта OpenGreenEnergy и переделал доску, чтобы добавить функции, так что теперь перейдем к более общим.

v0.1

  • VCC Arduino теперь рассчитывается автоматически;
  • Добавлена переменная для более удобного изменения настроек.
  • Добавлен процент разгрузки
  • Добавлена температура батареи и силового резистора

v0.2

  • Добавлена возможность выбора батареи
  • Создан прототип платы (см. Схему) с экраном, кнопкой и динамиком вне платы, потому что в будущем я хотел бы создать пакет.
  • Добавлено управление температурным пределом для силового резистора, чтобы я мог блокировать процесс при повышении температуры выше 70 ° (выше этой температуры, снижение номинальных характеристик силового резистора).

v0.3

Скоро появится доска с этого сервиса

Шаг 2: V0.2 платы

V0.2 Правления
V0.2 Правления

В v0.2 для поддержки различных типов батарей я создал структуру, которая должна быть заполнена названием батареи, минимальным и максимальным напряжением (мне нужна помощь, чтобы заполнить ее: P).

// Структура типа батареи BatteryType {char name [10]; float maxVolt; float minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes [BATTERY_TYPE_NUMBER] = {{"18650", 4.3, 2.9}, {"17550", 4.3, 2.9}, {"14500", 4.3, 2.75}, {"6v Acid", 6.50, 5.91 }};

Теперь я использую набор резисторов 10 кОм для делителя напряжения, чтобы считывать двойную температуру аналогового входа. Если вы хотите изменить поддержку напряжения, вы должны изменить это значение (объясните лучше далее):

// Сопротивление напряжения батареи

#define BAT_RES_VALUE_GND 10.0 #define BAT_RES_VALUE_VCC 10.0 // Сопротивление напряжения силового резистора #define RES_RES_VALUE_GND 10.0 #define RES_RES_VALUE_VCC 10.0

Если вы не используете термистор, установите значение false:

#define USING_BATTERY_TERMISTOR true

#define USING_RESISTO_TERMISTOR true

Если вы используете другой дисплей i2c, вы должны переписать этот метод:

ничья недействительна (недействительна)

В проекте вы можете найти схемы фритзинга, фотографии и многое другое.

Шаг 3. Макетная плата: расширенный контроллер отображения символов I2c

Макетная плата: расширенный контроллер отображения символов I2c
Макетная плата: расширенный контроллер отображения символов I2c

Я использовал универсальный символьный дисплей, построил контроллер i2c и использовал его со своей собственной библиотекой.

Но при желании можно взять нормальный контроллер i2c (менее 1 €) со стандартной библиотекой, код останется прежним. Весь код отображения находится в функции рисования, поэтому вы можете изменить это, не меняя других вещей.

Лучше объясните здесь.

Шаг 4: Макетная плата: символьный дисплей со встроенным I2c

Макетная плата: символьный дисплей со встроенным I2c
Макетная плата: символьный дисплей со встроенным I2c

Та же схема без управления i2c расширена.

Шаг 5: реализация

Для измерения напряжения мы используем принцип делителя напряжения (подробнее в Википедии).

Проще говоря, этот код является множителем для измерения напряжения батареи.

batResValueGnd / (batResValueVolt + batResValueGnd)

Я вставил 2 сопротивления значений batResValueVolt и batResValueGnd после и перед проводом аналогового считывания.

batVolt = (sample1 / (1023.0 - ((BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)) * 1023.0))) * vcc;

sample1 - средние аналоговые показания;

опорное напряжение vcc Arduino;

1023.0 - это опорное максимальное значение аналогового чтения (аналоговое чтение Arduino изменяется от 0 до 1023).

Чтобы получить силу тока, вам нужно напряжение после силового резистора и до него.

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

МОП-транзистор используется для запуска и остановки разряда батареи из силового резистора.

В целях безопасности я вставил 2 термистора для контроля температуры батареи и силового резистора.

Шаг 6: расширяемость

Расширяемость
Расширяемость
Расширяемость
Расширяемость

Я пытаюсь создать прототип платы, который можно расширять, но пока я использую только минимальный набор контактов (в будущем я добавлю светодиоды и другие кнопки).

Если вы хотите, чтобы поддерживаемое напряжение превышало 10 В, вы должны изменить номинал резистора батареи и сопротивление в соответствии с формулой

(BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)

в схеме Напряжение питания резистора

Напряжение питания резистора GND 1/2 / (Напряжение питания резистора 2/2 + напряжение питания резистора GND 1/2)

Розовый идет пайкой

Шаг 7: Список деталей

Свойства типа части количества

  • 2 Винтовые клеммы 5 мм Клеммная колодка для монтажа на печатной плате 8A 250V LW SZUS (eBay)
  • 1 клон Arduino Pro Mini (совместимый Nano) (eBay)
  • 1 базовый полевой транзистор P-Channel IRF744N или IRLZ44N (eBay)
  • 11 Резистор 10 кОм резистор 10 кОм (eBay)
  • 2 Температурный датчик (термистор) 10кОм; (eBay)
  • * Родовая мужская форма заголовка ♂ (мужская); (eBay)
  • * Общая форма женского заголовка ♀ (женский); (eBay)
  • 1 плата PerfBoard Доска для прототипа 24x18 (eBay)
  • 10R, 10Вт

    силовой резистор (eBay) я нахожу свой в старом ЭЛТ-телевизоре.

Шаг 8: Плата: сброс, кнопка Gnd E для выбора батареи

Плата: сброс, кнопка Gnd E для выбора батареи
Плата: сброс, кнопка Gnd E для выбора батареи

В левой части контактов находится кнопка и зуммер.

Использую 3 кнопки:

  1. один для смены типа батареи;
  2. один для начала разряда выбранной батареи;
  3. Затем я использую контакт сброса, чтобы перезапустить все и активировать новую операцию.

Все контакты уже опущены, поэтому вы должны активировать их с помощью VCC

Сброс активируется с помощью GND

Розовый идет пайкой вниз

Шаг 9: Плата: I2c и контакты источника питания

Плата: I2c и контакты источника питания
Плата: I2c и контакты источника питания

На базе вы можете увидеть VCC, GND и SDA, SCL для отображения (и другие в будущем).

Розовый идет пайкой вниз

Шаг 10: Плата: термистор и измерение напряжения

Плата: термистор и измерение напряжения
Плата: термистор и измерение напряжения

Справа находятся контакты для считывания значения термистора, один для термистора силового резистора, а другой для термистора батареи (штырьки / розетки для подключения).

Затем есть аналоговые выводы, которые измеряют дифференциальное напряжение после силового резистора и перед ним.

Розовый идет пайкой вниз

Шаг 11: Плата: резистор для измерения напряжения

Плата: резистор для измерения напряжения
Плата: резистор для измерения напряжения
Плата: резистор для измерения напряжения
Плата: резистор для измерения напряжения

Здесь вы можете увидеть резистор, который позволяет поддерживать напряжение вдвое больше, чем вывод Arduino (10 В), вы должны изменить его, чтобы поддерживать большее напряжение.

Розовый идет пайкой

Шаг 12: Шаг пайки: все контакты

Шаг пайки: все контакты
Шаг пайки: все контакты
Шаг пайки: все контакты
Шаг пайки: все контакты

Для начала добавляю все пины и паяю.

Шаг 13: Этапы пайки: понижающий резистор и термистор

Этапы пайки: понижающий резистор и термистор
Этапы пайки: понижающий резистор и термистор
Этапы пайки: понижающий резистор и термистор
Этапы пайки: понижающий резистор и термистор

Затем я добавляю весь выпадающий резистор (для кнопок) и разъем i2c (дисплей).

Затем термистор силового резистора. Это очень важно, так как кислотная батарея перегревается.

Шаг 14: Этапы пайки: МОП-транзистор, сопротивление для проверки напряжения

Этапы пайки: MOSFET, сопротивление для проверки напряжения
Этапы пайки: MOSFET, сопротивление для проверки напряжения
Этапы пайки: MOSFET, сопротивление для проверки напряжения
Этапы пайки: MOSFET, сопротивление для проверки напряжения

Теперь мы должны вставить МОП-транзистор, чтобы активировать разрядку, и сопротивление, чтобы проверить напряжение.

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

Шаг 15: Код

Микроконтроллер совместим с nano, поэтому вы должны настроить свою IDE для загрузки Arduino Nano.

Для работы вам необходимо скачать код из моего репозитория на github.

Затем вы должны добавить 3 библиотеки:

  1. Wire: стандартная библиотека arduino для протокола i2c;
  2. Termistor Library отсюда не библиотека, которую вы можете найти в Arduino IDE, а моя версия;
  3. LiquidCrystal_i2c: если вы используете расширенную / настраиваемую версию адаптера i2c (моя версия), вы должны загрузить библиотеку отсюда, если вы используете стандартный компонент, вы можете взять библиотеку из Arduino IDE, но здесь все лучше объяснено.

Я не тестирую ЖК-дисплей со стандартной библиотекой, мне кажется, что они взаимозаменяемы, но если есть какие-то проблемы, не стесняйтесь обращаться ко мне.

Шаг 16: Результат после сборки

Image
Image
Результат после сборки
Результат после сборки
Результат после сборки
Результат после сборки

Базовая плата есть на фото, потом мы можем ее протестировать.

Шаг 17: Сначала выберите тип батареи

Сначала выберите тип батареи
Сначала выберите тип батареи

Как описано, у нас есть карта значений с конфигурацией батареи.

// Структура типа батареи BatteryType {char name [10]; float maxVolt; float minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes [BATTERY_TYPE_NUMBER] = {{"18650", 4.3, 2.9}, {"17550", 4.3, 2.9}, {"14500", 4.3, 2.75}, {"6v Acid", 6.50, 5.91 }};

Шаг 18: начните разрядку

Начать разрядку
Начать разрядку
Начать разрядку
Начать разрядку

Нажатие второй кнопки начало разряда.

На дисплее вы можете видеть ток в миллиампер, миллиампер / час, процент разряда, напряжение батареи и температуру силового резистора и батареи.

Шаг 19: Исключения: Батарея удалена

Image
Image
Исключения: предупреждение о температуре
Исключения: предупреждение о температуре

Если убрать разрядку аккумулятора, процесс будет приостановлен, при повторной вставке он перезапустится с последнего значения.

Шаг 20: Исключения: предупреждение о температуре

Исключения: предупреждение о температуре
Исключения: предупреждение о температуре
Исключения: предупреждение о температуре
Исключения: предупреждение о температуре
Исключения: предупреждение о температуре
Исключения: предупреждение о температуре

Если температура (аккумулятор или силовой резистор) становится слишком высокой, процесс разрядки приостанавливается.

#define BATTERY_MAX_TEMP 50

#define RESISTANCE_MAX_TEMP 69 // 70 ° в техническом описании (резисторы для снижения номинальных характеристик) #define TEMP_TO_REMOVE_ON_MAX_TEMP 20

Значение по умолчанию для максимальной температуры составляет 50 ° для батареи и 69 для силового резистора.

Как вы можете видеть в комментарии, мощность резистора снижается при превышении 70 °.

При появлении предупреждения начните TEMP_TO_REMOVE_ON_MAX_TEMP секунд паузы, чтобы установить низкую температуру.

Шаг 21: проверка силы тока

Испытательная сила тока
Испытательная сила тока

Результат проверки силы тока хороший.

Шаг 22: упаковка

С разделенными компонентами простой для реализации результат.

В коробке необходимо сделать прямоугольник для ЖК-дисплея, отверстия для кнопок и внешнюю розетку для подачи напряжения от блока питания.

Кнопка не требует понижающего резистора, потому что я добавляю его уже на плате.

Когда у меня есть время, я создаю и выкладываю его.

Рекомендуемые: