Главная » Микроконтроллеры
Призовой фонд
на ноябрь 2017 г.
1. Термометр Relsib WT51
Рэлсиб
2. 1000 руб
PCBWay
3. Тестер компонентов LCR-T4
Паяльник
4. 200 руб.
От пользователей

Похожие статьи:


Индикатор состояния заряда 12В аккумулятора

Аккумуляторы напряжением 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-бит
ATmega328P
1 Поиск в LCSCВ блокнот
IC2 Линейный регулятор
LP2950-33
1 Поиск в LCSCВ блокнот
Q1 Биполярный транзистор
MMBT2222A
1 Поиск в LCSCВ блокнот
LED1-LED3 СветодиодЗеленый3 Поиск в LCSCВ блокнот
LED4 СветодиодЖелтый1 Поиск в LCSCВ блокнот
LED5, LED6 СветодиодКрасный2 Поиск в LCSCВ блокнот
С1, С2 Конденсатор0.1 мкФ2 Поиск в LCSCВ блокнот
С3, С4 Конденсатор2 Поиск в LCSCВ блокнот
R1 Резистор
1 МОм
1 1%Поиск в LCSCВ блокнот
R2 Резистор
82 кОм
1 1%Поиск в LCSCВ блокнот
R3, R4 Резистор
10 кОм
2 Поиск в LCSCВ блокнот
R5, R7-R12 Резистор
2.2 кОм
7 Поиск в LCSCВ блокнот
R6 Резистор
1 кОм
1 Поиск в LCSCВ блокнот
S1 Кнопка1 Поиск в LCSCВ блокнот
SG1 Бузер1 Поиск в LCSCВ блокнот
Добавить все

Скачать список элементов (PDF)

Оригинал статьи

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (3) | Я собрал (0) | Подписаться

0
si4karuk #
А чем же вы программировали контроллер? Что это за файлы как открыть? Какая среда разработки? Или пятница... ардуино что ли?
Ответить
0
talibanich #
Среда разработки Arduino IDE (файл INO)
Для Eagle - файл BRD
Ответить
0
Денис #
Какой емкости конденсаторы C3 C4? И для чего лишние контакты на схеме?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Набор для сборки - LED лампа Raspberry Pi 2
вверх