Данное устройство представляет собой универсальный двухканальный измерительный прибор, ориентированный на применение резистивных датчиков. Каждый датчик управляет соответствующим каналом нагрузки с задаваемым порогом срабатывания. Практическое применение – измерение давления, освещенности, температуры, тока, напряжения и т.д. и их сочетаний в одном устройстве.
Описание:
* 2 независимые канала АЦП, управляющие соответствующим каналом нагрузки;
* 2 светодиодных дисплея, каждый отвечает за свой канал;
* программное переключение типа индикаторов (ОА или ОК);
* диапазон значений уставок от 0 до 100, от 0 до 999 (в отдельных файлах прошивок);
* при неверном вводе уставок, появляется сообщение ошибки на дисплее соответствующего канала;
* осуществлен автоматический выход из меню через ~5 сек;
* автоматическое определение рабочего режима (нагреватель/охладитель) - при ton<t<toff - режим нагревателя, при ton>t>toff - режим охладителя (для варианта термостат);
* возможность изменения положения точки на обоих индикаторах (разделительная запятая);
* все настройки сохраняются в энергонезависимой памяти EEPROM.
Принципиальная схема.
Принципиальная схема состоит из базового блока (МК, кнопки, светодиодные индикаторы) и аналоговой части измерения. Порты МК PC5 и PC4 задействованы как аналоговые входы для датчиков. Можно подключать как отдельные резистивные датчики, так и схему с операционными усилителями.
Базовый блок:
Варианты исполнения для измерения различных величин:

Управление:
В основном режиме осуществляется индикация показаний датчиков на соответствующем индикаторе. Нажатием кнопки "Выбор” происходит выбор уставок порога срабатывания каждого канала нагрузки. Кнопками "+” и "-” изменение значения уставок. Каждый пункт меню поясняется подсказкой (On1, Of1, On2, Of2). Для удобства настройки на каждом индикаторе отображаются уставки только своего канала, причем, второй индикатор продолжает показывать измеряемую величину. Переход в основной режим поясняется подсказкой "---”.
В случае неверного ввода уставок (On1 = Of1, либо On2 = Of2), появляется сообщение ошибки "Err” на дисплее соответствующего канала;
* В схеме можно применять однотипные семисегментные светодиодные индикаторы как с ОА, так и с ОК. Переключение типа индикаторов программное. Удерживая кнопку "Выбор”, подаем питание на устройство, переключение подтверждается зажиганием всех сегментов индикаторов. По умолчанию установлен тип индикаторов с ОА.
* Для индикации дробной части показаний предусмотрена возможность изменения положения точки на обоих индикаторах. Переключение по кругу для каждого индикатора. Для первого индикатора: в основном режиме удерживая кнопку "+”, нажать на кнопку "Выбор”. Для второго индикатора: в основном режиме удерживая кнопку "-”, нажать на кнопку "Выбор”.
Рассмотрим практическое использования устройства на примере.
Вольтметр-амперметр.

Показания каналов вольтметра от 0 до 500 (положение точки для разрядности задается пользователем), амперметра от 0 до 999 (положение точки задается пользователем).
* В качестве нагрузок применены красный и зеленый светодиоды.
Плата для корпуса DIP:
Плата для корпуса TQFP:
Отдельно остановимся на вопросе установки Fuse. Прошивка написана для работы МК на тактовой частоте 8 МГц. МК тактируется от внутреннего RS осциллятора.
Однако на моделях МК Atmega8A (с индексом А) были замечены сбои работы с памятью EEPROM, что выражалось в нарушении значений данных EEPROM при коммутации напряжения питания устройства. Были приняты меры по повышению помехоустойчивости схемы: установка дросселя в цепи питания и конденсатора повышенной емкости. На крайний случай помогала установка Fuse на тактовую частоту 4 МГц.
PS: В случае обнаружения ошибок в схеме, просьба сообщить мне (MACTEPok).
100_OA+OK.hex – максимальные показания 100.
999_OA+OK.hex – максимальные показания 999.
VA_OA+OK.hex – вольтметр-амперметр (показания тока до 999, напряжения до 500).
Автор идеи и аналоговой измерительной части (Coviraylhik), за что ему огромное спасибо!
Практическая реализация цифровой части (MACTEPok).