Ошибка базы данных 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

2

Вольтметр, термометр и часы на 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 градусов отображается включением точки (как на четвертой картинке ниже).

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

 

Датчиком термометра служит микросхемка 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

admin

2 комментария

  1. Ошибка базы данных 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 (1973) ORDER BY umeta_id ASC

class="comment byuser comment-author-tyomanik even thread-even depth-1">

Сейчас разрабатываю печатку. сделаю обезательно поделюсь

  • Ошибка базы данных 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 (11011) ORDER BY umeta_id ASC