Вольтметр, термометр и часы на ATMega8 — Меандр — занимательная электроника
Устройство (назову его «VTC»), представленное в этом проекте, содержит в себе функции 3-х устройств: вольтметр, термометр и часы. Выполнено оно на микроконтроллере семейства AVR ATMega8.
Фунционально VTC работает в одном из режимов, который выбирается нажатием кнопки:
Цифровой вольтметр позволяет измерять постоянное напряжение от 0 до 25 вольт. В качестве контроллера используется ATMEGA8, которая тактуется внутренним RC-генератором 8мГц. Измерения постоянного напряжения производятся при помощи встроенного в контроллер 10-и разрядного АЦП. Измеряемое напряжение, через делитель R9, R10 поступает на вход ADC0 (PortC.0 выв.23). После соответствующих преобразований, результат измерения отображается на 4-х разрядном индикаторе с общим анодом (в моём случае RL-C5620). Обращайте внимание что они есть разного размера, могут отличаться цоколевкой, ну и включением (ОА и ОК).
Термометр
Датчиком термометра служит микросхемка 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
Возможно, вам это будет интересно:
ЧАСЫ-ТЕРМОМЕТР НА МИКРОКОНТРОЛЛЕРЕ ATMEGA8
Привет всем читателям и почитателям сайта Радиосхемы! Сегодня хочу поделиться с вами очередной простенькой конструкцией «Часы-термометр». Немного предыстории: вечером очень плохо видно показания уличного термометра, чтобы разглядеть положение стрелки, необходимо довольно долго вглядываться и иной раз пользоваться фонариком. Спустя определённое время мне это надоело и решил заменить прибор на электронный, который бы отображал информацию на светодиодных семи сегментных индикаторах. После чего бы не пришлось даже подходить к окну, чтоб узнать уличную температуру. Так как индикацию хорошо видно более чем с трёх метров. Схем данного устройства в сети полно, но я, как человек относящийся к семейству Радиолюбителей, решил собрать свою. Так как с недавних пор пытаюсь осваивать микроконтроллеры, то выбор пал на широко распространённый и дешёвый МК Atmega8. Далее была изготовлена плата по технологии ЛУТ, после чего уже приступил к программной части. Программа написана на языке Си с помощью среды разработки CodeVisionAVR.
Схема принципиальная электрическая
В одном устройстве объединено две функции: собственно измерение температуры и времени (часы). Индикация производится попеременно, сменяясь через десять секунд. Для настройки часов используется две кнопки, аналогично простым китайским электронным часам: одна отвечает за выбор параметра, вторая за его изменение. Питается устройство от сети с помощью постоянного стабилизированного источника тока напряжением пять вольт (плата от зарядного устройства телефона).
Датчиком температуры является микросхема DS18B20. Так как в устройстве «Часы-термометр» нет своей батареи, при пропадании питания естественно показания будут сбиваться. И что бы это не явилось причиной какого-нибудь опоздания человека на жизненно важные дела, имеется интересная «фишка» — при подаче питания вместо времени на дисплее будут отображаться прочерки, пока не нажмёшь одну из двух кнопок настройки.
Корпусом самодельного измерителя температуры послужила подходящая коробочка от запонок. В неё была помещена сама плата часов-термометра и плата вытащенная из телефонного зарядника. Датчик DS18B20 сделан выносным и подсоединяется через разъём.
Список необходимых деталей
- Микроконтроллер Atmega8 – 1шт.
- Кварц 32768 Гц – 1 шт.
- Датчик температуры DS18B20 – 1шт.
- Семи сегментный индикатор(4 – разряда) – 1 шт.
- Резисторы SMD типоразмера 0805:
- 620 Ом – 8шт.
- 0 Ом (перемычка) – 1шт.
- 4,7 кОм – 1шт.
- Тактовые кнопки – 2 шт.
Видео работы устройства на Ютуб-канале
Все файлы проекта (схема, прошивка и исходник) прилагаются. По всем вопросам относительно проекта можно обращаться на форум. До новых встреч на страницах сайта Радиосхемы! С вами был Темыч (Артём Богатырь).
Форум
Обсудить статью ЧАСЫ-ТЕРМОМЕТР НА МИКРОКОНТРОЛЛЕРЕ ATMEGA8
РадиоКот :: Термометр-вольтметр на ATMega8a
РадиоКот >Схемы >Цифровые устройства >Измерительная техника >Термометр-вольтметр на ATMega8a
Это моё первое устройство собранное на МК самим — прошивку писал сам, схему придумал сам, собрал в железо. До этого игрался пару месяцев в симуляторах, так как не было программатора и МК. Возможно, есть какие-то недостатки схемы, ПО. Хотелось бы критику, пожелания к данному устройству. ПО не очень оптимизированное, поэтому в памяти МК нет места для новых функций. (в дальнейшем планируется переход на atmega328 и добавление кнопок, меню, новых функций)
Возможности устройства:
Одновременный вывод информации с двух цифровых датчиков температуры DS18B20 (-55.0 — 127.9*С, у каждого своя линия 1-wire) и одного вольтметра (0.0 — 30.6V).
Вывод сообщений о ошибке датчика(OFF) и ошибки линии(CRC).
Сдвиг всех измерений так, чтобы точки, десятичные значения, градус цельсия, вольты всегда оставались на одном и том же месте, независимо от количества цифр перед ними.
Схема:
Экран:
Fuses:
Файлы:
hex
Все вопросы в Форум.
Как вам эта статья? | Заработало ли это устройство у вас? |
Эти статьи вам тоже могут пригодиться:
В часах есть возможность последовательно показывать 4 режима, для которых выбирается один из десяти форматов отображения и время его показа.
Кнопка F — выход из режима. Выбор 3 основных режимов.
Все режимы, кроме нулевого и режима таймера, имеют завершение по времени. Если не было нажатий более 30 секунд, устанавливается режим ноль.
Режим CALLS
Режим SETUP.
Режим PORT.
Режим часы.
Режим Уст SEE.
Режим УSt Буd. Установки будильника.
Режим DS18B20.
Режим DEFAULT.
Действия в нулевом режиме. F — выбор режима.
Схема clock.spl (7 Kb)
lay.rar (12 Kb) Программа написана на си в WinAvr. При прошивке мк установите биты CKSEL3..0 в 0011 (внутренний RC генератор 4 Meg ).
Запрограммировать бит CKOPT (подключение внутренних конденсаторов).
посмотреть для PonyProg.
Затем прошить EEPROM, или сбросить основные переменные в программе таким образом -
SETUP -> DEFAULT -> SET. |
РадиоКот :: Вольтметр-амперметр-ваттметр, с дисплеем Nokia5110.
РадиоКот >Схемы >Цифровые устройства >Измерительная техника >Вольтметр-амперметр-ваттметр, с дисплеем Nokia5110.
Данный проект, это по сути ремейк предыдущего проекта «ДЖИН V1».Теперь это — «Вольтметр-амперметр-ваттметр, V3.0 с дисплеем Nokia5110″.
Программа рассчитана для измерений постоянного тока, в лабораторном БП.
Свойства программы и характеристики:
- двухдиапазонный вольтметр, общий диапазон измерения от 0 до 100V.
①от 0.00 до 9.99V. дискретность измерения напряжения 0.01V,②от 10.0 до 100.0V дискретность измерения напряжения 0.1V.
- амперметр от 0.00 до 10.00А дискретность измерения тока 0.01А.
- Тригерная защита по превышению потребляемых ампер
- вольтметр №2 и №3 с диапазоном измерения от 0 до 30V.
- ваттметр,
- диапазон от 0.00 до 999.99Watt, шаг отображения измерения 0.01 ватт.
- отображение внутреннего сопротивления подключенной нагрузки в оМ
- термометр точность 0.1°C
- аппаратный ШИМ (PWM) МК, частота 62.5 kHz ,
коэффициент заполнения импульсами – ШИМа, отображается в основном экране в % исчислении, от 0 до 100% ,
Схема:
Детали: дисплей Nokia 5110 на базе контроллера PCD8544, МК ATmega8 с любой буквой, в DIP или TQFP исполнении. А также ОУ Lm328 или Lm2904 .
Управление кнопками:
Во время работы, управление кнопками Кн1, Кн2, Кн3 ;
Кн2 производит выбор (устанавливается курсор) на регулировку ШИМ или установку порога сработки защиты амперметра,
кнопки Кн1, Кн3 выполняют функцию уменьшения или увеличения, порога защиты ампер или значения ШИМ.
(сброс сработавшей защиты амперметра, производится по нажатию любой кнопки Кн1, Кн2, Кн3)
Настройка схемы после сборки (первый пуск).
Настройка вольтметра: начинаем с первого поддиапазона, подаем на вход «0-100V» любое постоянное напряжение до 9.98V,
и сравнивая с тестовым вольтметром, настраиваем подстроечным резистором R-1 одинаково видимые показания приборов,
аналогично поступаем и со вторым поддиапазоном,
подаем на вход «0-100V» напряжение от 10.1V и, сравнивая с тестовым вольтметром,
настраиваем подстроечным резистором R-2 одинаковые показания напряжения.
Вольтметры №2 и №3 подстраиваются резистором R-4, R-5.
Изменить диапазон амперметра (до 20А и 30А, по умолчанию устанавливается до 10А) можно так, установить перемычку на общий питания, 19 нога (порт РВ5), включить схему, проверить визуально установкой защиты полученный диапазон, если диапазон тот что требуется перемычку снять , если нет, повторить действие.
(ВНИМАНИЕ!!! выбор нового диапазона амперметра, в рабочей схеме повлечет за собой необходимость подстройки, резисторов обратной связи цепей амперметра и последующей регулировки резистора R-3 )
R-3 подстройка показаний амперметра.
Пример возможного подключения, схемы и реле защиты вольтамперваттметра, в состав лабораторного блока питания.
FUSE. МК тактируется от внутреннего RS осциллятора, на частоте 8MHz.
Фото, отображение информации на дисплее.
Пару слов по поводу работы выхода ШИМ в этой схеме…
На вопрос, зачем он вообще нужен? у меня сейчас ответа нет….)))В этой схеме он подключен к подсветке индикатора, небольшое видео как это работает (продолжительность 2мин.12сек.)
В основном экране когда курсор стоит на символе % скважность регулируется кнопками Кн1 , Кн3.
P.S. Напряжение питания этой схемы.
В моем варианте , питание 5 вольт. Вот и на дисплейчике который тут Nokia5110 написано 3 — 5 вольт.
Практически это нормально, но :)) вспоминаются мне некоторые давнишние ассоциации, про 1 китайский ватт … 1 китайский ампер….
В общем проверил работу этой схемы, с помощью своего ЛБП.
Результат ; в пределах от 2.6 до 5 вольт, схема производит измерения и работает нормально. Так что тут, товарищи пользователи, выбор оставлен вам, зарекомендованные 3.3 вольта, или не сомневаемся ни в чем, и используем привычные 5 вольт….
Файлы:
Архив файлов проекта схема, прошивка, протеус.
Все вопросы в Форум.
Как вам эта статья? | Заработало ли это устройство у вас? |
Ага 🙂 опять часы.
В часах есть возможность последовательно показывать 8 режимов, для которых выбирается один из десяти форматов отображения и время его показа.
Кнопка F — выход из режима. Выбор 3 основных режимов. Все режимы, кроме нулевого и режима таймера, имеют завершение по времени. Если не было нажатий более 30 секунд, устанавливается режим ноль.
Режим CALLS
Режим быстрой настройки термостата.
Режим SETUP.
Режим часы.
Режим PORT.
Режим настроек термостата. Режим Уст SEE.
Режим УSt Буd. Установки будильника.
Режим DS18B20.
Режим Light.
Режим Сигнал.
Режим Сброс настроек.
Действия в нулевом режиме. F — выбор режима. Каждый час, на одну секунду, устанавливается вывод PB2(16). Для экономии, в режиме питания от батарей запрещается отсрочка сигнала. Схема. Из схемы можно исключить конденсаторы к кварцу, если запрограммировать fuse бит CKOPT.
При прошивке мк установите биты CKSEL3..0 в 0011 (внутренний RC генератор 4 Meg ).
посмотреть для PonyProg.
Cбросить основные переменные в программе —
SETUP -> СБРОС НАС. -> SET. |
ЧАСЫ — ТЕРМОМЕТР — ВОЛЬТМЕТР
Измеритель, представленный в этом проекте, содержит в себе функции сразу 3-х устройств: вольтметр, термометр и часы. Выполнено оно на микроконтроллере семейства AVR ATMega8 и датчике DS18B20. Управление осуществляется тремя кнопками. Две для настройки часов, третья SB1 для выбора режима работы. Также присутствует кнопка SB3 которая нужна для вкл/выкл индикатора.
Часы. Подсчет времени происходит, постоянно, независимо от того какой режим выбран. Настройка осуществляется кнопками «SB2» и «SB4«.
Термометр. Он позволяет измерять тепературу от -50 до +85 гадусов. Датчиком термометра служит микросхемка DS18B20, считав из нее данные о текущей температуре и сделав необходимые преобразования выводим результат измерения на индикатор.
Вольтметр. Цифровой вольтметр позволяет измерять постоянное напряжение от 0 до 25 вольт. В качестве контроллера используется ATMEGA8, которая тактуется внутренним RC-генератором 8 МГц. Измерения постоянного напряжения производятся при помощи встроенного в контроллер 10-и разрядного АЦП. Измеряемое напряжение, через делитель поступает на вход ADC0 (PortC.0 выв.23). После соответствующих преобразований, результат измерения отображается на 4-х разрядном индикаторе с общим катодом. Обращайте внимание что они есть разного размера, могут отличаться цоколевкой, ну и включением (ОА и ОК).
Переключение между режимами вольтметра и термометра производится кнопкой SВ1: один раз нажали — термометр, ещё раз — вольтметр, ещё раз — часы и так по кругу. Схема проста в изготовлении и содержит минимум элементов. Прошивку на контроллер скачайте тут.
Принципиальная схема часов с термометром и вольтметром
Перечень элементов часов:
- Микроконтроллер AtMega8
- Индикатор любой (с небольшим током потребления и с общим катодом)
- Часовой кварц 32768 Гц
- Датчик температуры DS18B20
- Конденсатор 100 нФ
- Резистор 4,7 кОм
- Резисторы 1 кОм 4 шт
- Резистор 11,1 кОм
- Резистор 100 кОм
Отдельно внимание следует уделить FuseBits. В нашем случае (для CodeVision AVR) они выставляются так как на картинке:
После окончательной сборки и настройки, часы — термометр — вольтметр вместе с источником их питания (батарейки либо сетевой адаптер) размещаем в небольшом пластиковом корпусе. При необходимости, подбираем резисторами яркость свечения светодиодного индикатора.
Сборка и испытания устройства: Шимко С.Н.
Форум по измерительным устройствам на микроконтроллерах
Схемы на микроконтроллерах