Определение емкости батарей с помощью микроконтроллера HT46R63
В статье рассмотрено применение микроконтроллера HT46R63 в устройстве определенияемкости батарей. Идея заключается, во-первых, в преобразовании емкости батареи в аналоговый сигнал, затем — в преобразовании этого сигнала посредством встроенного в HT46R63 аналого-цифрового преобразователя в цифровой. Этот цифровой сигнал и будет индицировать емкость батареи с помощью восьми светодиодов: если емкость батареи выше самого высокого уровня, все светодиоды будут гореть; если емкость батареи ниже минимально допустимой величины, светодиоды будут отключены.
Микроконтроллер HT46R63 представляет собой 8-разрядный однократнопрограммируемый (ОТР) прибор фирмы Holtek нового поколения со встроенным АЦП и драйвером ЖКИ. Его структура и параметры были приведены в предыдущем номере нашего журнала («Цифровой вольтметр на базе микроконтроллера HT46R63», с. 98–100).
Принцип работы
Измерение емкости батареи — это не просто измерение ее напряжения. Параллельно с батареей до начала измерения должен быть установлен соответствующий резистор. Если резистор не используется, то полностью заряженная и практически разряженная батарея будут иметь одно и то же напряжение. В качестве примера возьмем батарею с напряжением 1,5 В.
Если батарея полностью заряжена и параллельно к ней подключен резистор сопротивлением 100 Ом, ток через резистор составит 15 мА, а измеренное напряжение на выводах батареи — 1,5 В. При разряженной батарее напряжение, измеренное при таких условиях, будет значительно меньше 1,5 В. Это происходит потому, что разряженная батарея может отдать меньшую мощность, нежели заряженная. Таким образом, если разряженная батарея должна обеспечить ток 15 мА, сохранить при этом напряжение 1,5 В она не способна. При таком способе измерения обеспечивается четкое разграничение между заряженной и разряженной батарей. Надо отметить, что нагрузочный резистор должен быть определенного сопротивления.
При слишком большом сопротивлении ток через резистор мал и напряжение практически любой батареи будет около 1,5 В. Если же сопротивление слишком мало (то есть ток велик), напряжение любой батареи будет низким.
Для эксперимента автор использовал сильно разряженную батарею с номинальным напряжением 1,5 В. Без резистора напряжение батареи составляло 1,0 В, которое снижалось до 0,1 В при подключении резистора 100 Ом. Таким образом, сопротивление нагрузочного резистора было выбрано 100 Ом. После подключения резистора измерялось напряжение батареи, которое потом поступало на АЦП микроконтроллера HT46R63 для преобразования в соответствующее цифровое значение. После программной обработки результат измерения отображался восемью светодиодами, которые подключались к выходам микроконтроллера. Так как разрядность микроконтроллера HT46R63 составляет 8 бит, емкость батареи может быть определена 256 уровнями. Однако для удобства будут использоваться только восемь уровней. Когда напряжение батареи равно 1,5 В, то гореть будут все восемь светодиодов, что означает полную емкость. Если же напряжение батареи около нуля, то все светодиоды будут погашены.
|
Аппаратная реализация
Разработанная схема измерителя емкости батареи представлена на рис. 1 и содержит микроконтроллер и несколько внешних элементов. RC-фильтр, установленный между плюсом питания и аналоговым входом, предназначен для устранения помех. При разработке схемы использовались средства разработки TICE46SER0000A и HT-IDE3000.
Аналого-цифровое преобразование
Чтобы использовать аналого-цифровой преобразователь микроконтроллера HT46, необходимо выполнить следующее:
- Сконфигурировать каналы порта В установкой PCR2, PCR1 и PRC0.
- Выбрать канал для АЦ-преобразования установкой ACS2, ACS1 и ACS0. Выбранный канал должен быть сконфигурирован (шаг 1).
- Установить бит ADCR.7 = 0->1->0 для запуска АЦ-преобразования, ЕОС будет находиться в 1, пока будет идти процесс АЦ-преобразования.
- Ожидание 76 тактов АЦП для завершения АЦ-преобразования, после чего ЕОС устанавливается в 0 (завершение процесса). Если разрешено прерывание от АЦП, то устанавливается флаг запроса на прерываниеот АЦП.
- Чтение результата АЦ-преобразования в регистре ADR.
Определение частоты АЦ-преобразования
Каждое аналого-цифровое преобразование занимает 76 тактов, которые задаются ADCS1 и ADCS0 (см. таблицу).
ADCS1 | ADCS0 | Частота АЦП |
0 | 0 | F SYS/2 |
0 | 1 | F SYS/8 |
1 | 0 | F SYS/32 |
1 | 1 | Не определено |
Блок-схема алгоритма программы показана на рис. 2, а исходный код программы — на предыдущей странице.