Ошибка базы данных WordPress: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

Вольтметр, термометр и часы на ATMega8 — Меандр — занимательная электроника
Site icon Меандр — занимательная электроника

Вольтметр, термометр и часы на ATMega8

Устройство (назову его «VTC»), представленное в этом проекте, содержит в себе функции 3-х устройств: вольтметр, термометр и часы. Выполнено оно на микроконтроллере семейства AVR  ATMega8.
Фунционально VTC работает в одном из режимов, который выбирается нажатием кнопки:

  Цифровой вольтметр позволяет измерять постоянное напряжение от 0 до 25 вольт. В качестве контроллера используется ATMEGA8, которая тактуется внутренним RC-генератором 8мГц. Измерения постоянного напряжения производятся при помощи встроенного в контроллер 10-и разрядного АЦП. Измеряемое напряжение, через делитель R9, R10 поступает на  вход ADC0 (PortC.0 выв.23). После соответствующих преобразований, результат измерения отображается на  4-х разрядном индикаторе  с общим анодом (в моём случае RL-C5620). Обращайте внимание что они есть разного размера, могут отличаться цоколевкой, ну и включением (ОА и ОК).

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

  Комнатная температура
  «плюсовая» температура, погашен незначащий ноль
  температура ниже нуля
  Температура -12,5 градусов
  Такую максимально низкую температуру мне удалось  померять (в морозилке холодильника)

 

Датчиком термометра служит микросхемка DS18B20, считав из нее данные о текущей   температуре и сделав необходимые преобразования выводим результат измерения на индикатор.

  Часы. Подсчет времени происходит, постоянно, независимо от того какой режим выбран. Кроме того, в случае отключения основного питания, VTC перейдем в эноргосберегающий режим, отключив индикацию и перейдя в режим сна. В этом режиме VTC потребляет 10мкА.

 

Переключение между режимами вольтметра и термометра производится кнопкой S1: один раз нажали — вольтметр, ещё раз —  термометр, ещё раз -часы и так по кругу.

     Кнопка S2 необходима для перехода из режима часов в режим установки времени. При переходе в этот режим, начинают  моргать разряды, отображающие часы, еще раз нажимаем — моргают минуты. Кнопками S3 («+») и S4 («-» ) выставляем нужное время. Кнопка S5 резервная и в этом проекте пока не исспользуется, поэтому ее устанавливать не нужно.

Наблюдательный радиолюбитель может заметить несоответствие подключения разрядов индикатора. Дело в том что 3-й разряд индикатора это две точки, которые нужны для часов и они здесь исспользуются только в режиме часов. Поэтому я в программе сделал вывод информации сначала на первый разряд, потом на 2-й, 4-й, 5-й и только потом 3-й (только если это режим часов).
Кнопки управления подключены к казалось бы у же занятым индикатором порту, но так и есть, ошибки нет. Поясню: после того как произойдет последовательный выход информации на всех разрядах, порт переключает направление, т.е. становится входом и сканирует наличие нажатых кнопок, а потом опять меняет направление порта и становится выходом. Этот процесс повторяется снова и снова.

    Для подпитки спящего режима можно применить любые элементы питания от 3 до 4,5 вольт. Наличие основного питающего напряжения контролируется процессором на входе порта PB.5 (вывод 17) через цепочку VD3 и R22.
    Транзисторы p-n-p малой мощности, можно применить BC558, подойдут также 2SA733 или наши КТ361. Диод VD4 необходимо применить с низким сопротивлением перехода, я исспользовал 1N5817, остальные можно поставить 1N4001 (1N4002-1N4007).
Отдельно внимание следует уделить FuseBits. В нашем случае (для CodeVision AVR) они выставляются так:
       
vtc.rar [185,23 Kb] (cкачиваний: 713)  Прошивка контроллера.
vtc_n.rar [176,61 Kb] (cкачиваний: 501) Прошивка контроллера с сигнализацией гололеда: при температуре от +1 до -3 градуса, моргает значек «градус», привлекая тем самым дополнительное внимание.
vtc-1_v2.2b.rar [28,58 Kb] (cкачиваний: 519) Версия прошивки v2.2b
В этой версии измерение напряжения до 40 вольт
vtc-1-v2.2p.rar [18,38 Kb] (cкачиваний: 151) Версия прошивки v2.2p
По многочисленным просьбам, прошивка у которой в режиме часов моргает разделительная запятая (для тех кому не удалось найти часовой индикатор)
 pcb_vtc-1.rar [161,87 Kb] (cкачиваний: 614) Печатная плата в формате P-CAD.
pcb_igumich.rar [13,28 Kb] (cкачиваний: 271) Печатная плата в формате Layout для МК в DIP корпусе
pcb_boba.rar [31,9 Kb] (cкачиваний: 264) Печатная плата в формате Layout для МК в DIP корпусе

Я это устройство поставил в блок питания. Очень удобно. Вот видео:

Уважаемые посетители собравшие этот проект с МК в DIP корпусе, если Вы желаете поделиться своим вариантом печатной платы, выкладывайте в комментариях ссылки, файлы или фото.

Все вопросы задаем на форуме

первоисточник avrlife.pp.ua

Exit mobile version