Аккумуляторы напряжением 12 В очень популярны (обычно это герметичный свинцово-кислотный аккумулятор емкостью 7 Ач). Я несколько раз пытался создать современный измеритель уровня заряда (SOC) на заказ, который бы отображал уровень напряжения с помощью светодиодов. Но каждому клиенту требуется своя функциональность от подобного устройства, причем отличия зачастую заключаются в требовании к отображению минимального и максимального значения напряжения.
Если нужно обеспечить подачу звукового предупреждения при достижении низкого уровня напряжения, тогда необходимо проконтролировать три уровня напряжения. При стандартном методе используются потенциометры для регулировки, однако если существует необходимость подачи второго и третьего звукового предупреждения, тогда этот метод становится неприемлемым.
В процессе тестирования выяснилось, что диапазон тока в цепях составляет от 45 мА до 150 мА. Стандартное устройство контроля аккумуляторов на базе LM3914 выполняет разряд батареи емкостью 7 Ач в течение 46 часов.
Цель данного проекта – создать индикатор аккумулятора со следующими компонентами и характеристиками:
- Светодиодный индикатор
- Регулируемый максимальный уровень напряжения
- Регулируемый минимальный уровень напряжения
- 3 регулируемых уровня порога срабатывания сигнализации (обычно 50%, 30%, 20%)
- Звуковая сигнализация не должна раздражать и иметь функцию отключения звука
- Минимальное количество кнопок
- Низкое энергопотребление.
Для этого проекта я применил микроконтроллер ATmega328P micro.
Шаг 1: Светодиодный индикатор
В проекте используется простой и удобный светодиодный индикатор. Шкальный индикатор имеет 6 светодиодов, которые указывают различный уровень напряжения:
- Светодиод 6 — 100%
- Светодиод 5 — 80%
- Светодиод 4 — 60%
- Светодиод 3 — 40%
- Светодиод 2 — 20%
- Светодиод 1 — 0%
Светодиод 0% программно связан с минимальным уровнем напряжения.
Светодиод 100% программно связан с максимальным уровнем напряжения.
Шкала отображения между 0% и 100% — линейная. При уровне 0% будет светиться лишь Светодиод 1, и при 100% будут светиться все светодиоды.
Для сохранения энергии светодиодный индикатор не включен постоянно. Для включения индикатора нужно нажать кнопку, причем через 30 секунд произойдет автоматическое отключение индикатора.
Шаг 2: Напряжение и уровни сигнализации
Для точного измерения напряжения необходимо понизить напряжение аккумулятора. Для этой цели используется делитель напряжения, который понижает напряжение до величины 1.1 В с помощью резисторов номиналом 1 мОм и 82 кОм. Поскольку внутренний источник опорного напряжения АЦП настроен на напряжение 1.1 В, то это позволит сравнивать и измерять максимальное напряжение до 14.45 В.
Необходимо проконтролировать 5 уровней напряжения:
- Максимальный уровень напряжения
- Минимальный уровень напряжения
- 1 уровень сигнализации пониженного напряжения
- 2 уровень сигнализации пониженного напряжения
- 3 уровень сигнализации пониженного напряжения
Вместо использования потенциометров я решил применить необычный метод. С помощью программной процедуры я занес данные об уровнях напряжения и сохранил различные результаты аналогово-цифрового преобразования в память EEPROM.
Светодиоды индикатора отображают программную последовательность. Для включения светодиодов и входа в режим программирования используется лишь одна кнопка.
Шаг 3: Звуковая сигнализация
Для подачи звукового сигнала используется стандартная пьезопищалка. Система предусматривает три уровня подачи аварийного звукового сигнала:
- Сигнализация 1, подает сигнал один раз в течение нескольких секунд. Данный тип звуковой сигнализации может быть отключен.
- Сигнализация 2, подает сигнал два раза в течение нескольких секунд. Данный тип звуковой сигнализации может быть отключен.
- Сигнализация 3, подает сигнал три раза в течение нескольких секунд. Данный тип звуковой сигнализации не может быть отключен.
Если звуковая сигнализация выключена, то можно активировать функцию автоматического сброса для повторного включения сигнализации, когда батарея полностью заряжена. Я использовал функцию сброса, которая повторно активирует звуковую сигнализацию, если уровень напряжения аккумулятора превышает 60%.
Шаг 4: Минимальное количество кнопок
Все функции выполняются с помощью одной кнопки.
Индикатор
Нажмите кнопку для включения индикатора. Светодиодный индикатор включится и автоматически отключится через 30 секунд.
Сигнализация
Кнопка позволяет отключить звук в режиме Сигнализация 1 и 2.
Программирование
Для входа в режим программирования нажмите и удерживайте кнопку в течение 5 секунд при подаче питания на устройство.
Шаг 5: Низкое энергопотребление
Существует несколько способов снизить энергопотребление устройства:
Индикатор
Светодиодный индикатор не включен постоянно (его можно включить с помощью кнопки, после чего через 30 секунд произойдет автоматическое отключение). В результате этого можно сэкономить 120 мА.
Напряжение питания микроконтроллера
Микроконтроллер ATmega328P работает от напряжения 5 В и потребляет значительно больше, чем от напряжения 3.3 В. Потому я оптимизировал напряжение до уровня 3.3 В с помощью понижающего стабилизатора.
Стабилизатор напряжения
Стандартный стабилизатор 7805 потребляет ток около 20 мА. При использовании ИС 78L05, потребляемый ток составляет 3.5 мА. Но при использовании LP2950 3.3 В потребляемый ток падает до 0.1 мА.
Подбор тактовой частоты
Судя из даташита ATmega328P ток потребления можно снизить с 10 мА до 1 мА, выбрав внутренний тактовый генератор на 8 МГц, по сравнению со стандартной частотой 16 МГц.
Я выбрал для проекта тактовую частоту 8 МГц для наилучшего соотношения скорость/производительность. Но для этого необходимо перепрограммировать регистры конфигурации ATmega328P , используя AVRDude.
Примечание:
Если вы не хотите менять фьюзы, тогда микроконтроллер будет работать на частоте 16 МГц. Пожалуйста, измените значения delay() и Millis() на фактические значения в мс.
Режим сна
Переводя микроконтроллер AtMega328P в режим сна, вы также сможете сэкономить энергию. В этом режиме большинство микроконтроллеров отключает интерфейсные блоки, что позволяет уменьшить ток потребления до 0.001 мА. Но в данном режиме микроконтроллер уже не работает, а в нашем случае, не измеряет напряжение.
Сторожевой таймер используется для пробуждения микроконтроллера из режима сна. Настройка таймера на пробуждение микроконтроллера каждый 8 секунд приведет к значительному снижению потребления энергии.
Результаты энергосбережения
При использовании вышеуказанных методик энергопотребление схемы удалось снизить с 80 мА до 0.12 мА, когда устройство находилось в режиме сна. В среднем, схема потребляет 0.28 мА.
Без использования энергосберегающих функций схема разряжает аккумулятор емкостью 7 Ач за, приблизительно, 2.8 дня. При использовании энергосберегающих функций тот же аккумулятор разрядится через 3.5 года.
Шаг 6: Схема
Для разработки печатной платы я использовал бесплатную версию Eagle. Все компоненты, за исключением нажимной кнопки, устанавливаются на печатную плату. Сборка устройства не вызывает проблем, за исключением светодиодов. Их необходимо точно расположить на одинаковом расстоянии.
Поскольку для питания схемы выбрано напряжение 3.3 В, некоторые пьезо пищалки, рассчитанные на напряжение 5 В, не работают. Потому пищалку нужно подключить к источнику напряжения 12 В и управлять включением через транзистор. Подберите номинал резистора R6 для получения хорошего звука.
Шаг 7: Калибровка устройства
Для калибровки устройства необходимо использовать источник регулируемого напряжения и мультиметр.
Вход в режим калибровки
— Нажмите и удерживайте кнопку
— Подключите устройство к источнику электропитания
— Через 5 секунд устройство издаст непрерывный звуковой сигнал
— Отпустите кнопку
— Устройство издаст 6 звуковых сигналов (устанавливается максимальное напряжение)
— При этом загорится самый верхний светодиод
— Устройство перешло в режим калибровки. Для выхода из режима отключите питание без нажатия кнопки.
— Отрегулируйте выход источника питания на максимальное выходное напряжение, отображаемое на светодиодном индикаторе (обычно 12.7 В)
— Нажмите кнопку
— Устройство издаст 5 звуковых сигналов (устанавливается минимальное напряжение)
— При этом загорится самый нижний светодиод
— Отрегулируйте выход источника питания на минимальное выходное напряжение, отображаемое на светодиодном индикаторе (обычно 11.8 В)
— Нажмите кнопку
— Устройство издаст 4 звуковых сигнала (установка сигнала аварии Alarm 1)
— При этом будут гореть 4 нижних светодиода
— Отрегулируйте выход источника питания на уровень напряжения Alarm 1 (обычно 12.4 В)
— Нажмите кнопку
— Устройство издаст 3 звуковых сигнала (установка сигнала аварии Alarm 2)
— При этом будут гореть 3 нижних светодиода
— Отрегулируйте выход источника питания на уровень напряжения Alarm 2 (обычно 12.2 В)
— Нажмите кнопку
— Устройство издаст 2 звуковых сигнала (установка сигнала аварии Alarm 3)
— При этом будут гореть 2 нижних светодиода
— Отрегулируйте выход источника питания на уровень напряжения Alarm 3 (обычно 12.0 В)
— Нажмите кнопку
— Далее устройство издаст 1 звуковой сигнал, который означает конец процедуры калибровки. При этом светодиодный индикатор загорится на 30 секунд.
Все запрограммированные значения хранятся в памяти EEPROM, поэтому калибровка проводится лишь один раз.
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
IC1
МК AVR 8-битATmega328P1
IC2
Линейный регуляторLP2950-331
Q1
Биполярный транзисторMMBT2222A1
LED1-LED3
СветодиодЗеленый3
LED4
СветодиодЖелтый1
LED5, LED6
СветодиодКрасный2
С1, С2
Конденсатор0.1 мкФ2
С3, С4
Конденсатор2
R1
Резистор1 МОм1
1%R2
Резистор82 кОм1
1%R3, R4
Резистор10 кОм2
R5, R7-R12
Резистор2.2 кОм7
R6
Резистор1 кОм1
S1
Кнопка1
SG1
Бузер1
Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- LEDVoltageMonitor01.ino (17 Кб)
- Trailer Batt Monitor.brd (97 Кб)