Проход по ссылкам навигацииГлавная : Статьи :

Вольтметр + термометр в одной AtMega8

Вольтметр + термометр в одной AtMega8

Вольтметр позволяет измерять постоянное напряжение от 0 до 25 вольт.

В качестве контроллера используется ATMEGA8 в QFP (планарном) корпусе, которая тактуется внутренним генератором 8мГц. Измерения производятся при помощи встроенного в контроллер АЦП. Измеряемое напряжение, через делитель R9, R10 поступает на вход ADC0 (PortC.0 выв.23). После соответствующих преобразований, результат измерения отображается через порт D на 4-х разрядном индикаторе с общим анодом
Вольтметр + термометр в одной AtMega8


Термометр позволяет измерять температуру от -50 до +85 градусов. Хочу заметить что на индикацию температуры отведено 3 разряда, то десятые доли индицируются только в диапазоне ?9.9…+85°С, а другие температуры отображаются уже без десятых долей. При температуре от -10 и ниже, десятая доля больше 0,5 градусов отображается включением точки (изображено на четвертой картинке).
Вольтметр + термометр в одной AtMega8

Комнатная температура


Вольтметр + термометр в одной AtMega8

"плюсовая" температура, погашен незначащий ноль


Вольтметр + термометр в одной AtMega8

температура ниже нуля


Вольтметр + термометр в одной AtMega8

Температура -12,5 градусов


Вольтметр + термометр в одной AtMega8

Максимально низкая температура которую удалось замерять (в морозилке холодильника)


Датчиком термометра служит микросхемка DS18B20, считав из нее данные о текущей температуре и сделав необходимые преобразования выводим результат измерения на индикатор.
Переключение между режимами вольтметра и термометра производится кнопкой SW1: один раз нажали - термометр, ещё раз - вольтметр, вот так всё просто.
Описание принципиальной схемы:
Кнопка переключения режимов подключена к казалось бы у же занятому индикатором порту, но так и есть, ошибки нет. Поясню: после того как произойдет последовательный выход информации на всех разрядах, порт переключает направление, т.е. становится входом и сканирует наличие нажатой кнопки, а потом опять меняет направление порта и становится выходом.

Прошивка в архиве ниже. Отдельно внимание следует уделить FuseBits. Для CodeVision AVR они выставляются так:
Вольтметр + термометр в одной AtMega8


Схема, печатка, прошивка

Автор: Виталий Малеванный
Источник: www.avrlife.pp.ua