Термостат-Вольтметр для авто / Хабр
Ganch36
DIY или Сделай сам Автомобильные гаджеты Электроника для начинающих
Привет! Сегодня я предоставляю вашему вниманию термостат+ вольтметр для авто. У меня на авто ЗАЗ 1102 вечно ломается кран и я решил сделать вот такой термостат который будет включать электроклапан, но чтоб задействовать ми контроллер как-то еще, я решил добавить вольтметр.
И так начнем. Так-как это моя первая самоделка на LCD, то я немного расскажу как я начинал учить язык программирования.
Начинал я изучать язык СИ так как и все, с самого простого, миганием светодиодов ну и различные простенькие схемы, но я все ровно не мог понять как написать что-то серьезное в итоге я решил начать с более менее сложного устройства и тем самым собрать себе термостат+вольтметр на автомобиль, после двух недель мучения я наконец-то понял как это все работает и что такое программирование.
Поэтому для меня, как оказалось, лучше начинать изучать с более менее сложных устройств, теперь я хоть начал понимать о чем идет речь, но еще по прежнему слабый в этом деле. Как показала практика (лично для меня), то лучше начинать с тяжелого, а легкое само прейдёт. Может кому-то из начинающих эта статья поможет.
Пишу я в программе Codevisionavr, в этой программе есть готовые библиотеки и начальные термины в общем начинать в ней легче.
Пожалуй хватит обо мне пора начать рассматривать моё устройство, вот принципиальная схема.
Вот такая получилась у меня простенькая схема и проще как мне кажется уже некуда, самый главный здесь ми контроллер ATmega8 к которому подключен LCD дисплей 1602, что означает 16 символов и 2 ряда.
Дальше все просто три тактовые кнопки S1 S2 S3 для установки и сохранения температуры, рядом у нас установлен температурный датчик Даллас DS18B20 с подтягивающим резистором R3 в 4,7k.
Теперь мы рассмотрим питание самой схемы, для нормальной работы нам нужно подать на схему 5 вольт и не в коем случае больше, а то наш ми контроллер с дисплеем и температурным датчиком выйдут из строя, а как нам известно, мы это устройство будем использовать в автомобиле, а там 12 вольт.
Дальше рассмотрим узел управления эл.клапаном. Наш ми контроллер подает 5 вольт на опто-транзистор, но через ограничивающий резистор R4 после чего наш оптрон открывается и питание идет на затвор полевого транзистора VT1, полевик открывается и на наш эл. клапан подается полноценные 12 вольт. Резистор R5 служит для разряда затвора VT1 в тот момент когда оптрон закрылся, а диод VD1 служит для защиты полевого транзистора от всплесков.
И вот что получилось. Передняя часть.
И задняя часть.
Небольшое видео по работе данного устройства
На этом буду заканчивать, если где-то ошибки, прошу прощения. Всем пока и удачи!!!
Теги:
- термостат+вольтметр для авто
- ATmega8 термостат+вольтметр
- ATmega8
- авто термостат
- вольтметр своими руками
Хабы:
- DIY или Сделай сам
- Автомобильные гаджеты
- Электроника для начинающих
Всего голосов 21: ↑11 и ↓10 +1
Просмотры8.9K
Комментарии 22
Владимир Кальченко @Ganch36
Пользователь
Комментарии Комментарии 22
Указатель топлива, температуры на ATMega8 + Часы | Радиолюбитель
Опубликовано автором Moldik
228 просмотров
После публикации статьи “Термометр+вольтметр с системой предупреждений для АВТО”, было много вопросов и обсуждения схемы, и было упоминание другой схемы, которая всех так заинтересовала, я ее нашел на просторах “незыблемого” интернета. Автор этой схемы Александр Богданов, автор прошивки «Soir». И эту схему с описанием автора я приведу ниже, на себя я взял труд только перевести текст с Украинского на Русский.
Прибор под названием «Измеритель температуры охлаждающей жидкости с термостатом + измеритель уровня топлива в баке» или «Термометр – бакометр». Два устройства на одном Микроконтроллере ATMega8. Автор прошивок исходных кодов никому не дает и не продает!!!
Все настройки устройства выведены в меню устройства – и это облегчает его настройку.
Для отключения зависимости показаний бакомера от плавающего напряжения бортовой сети, было решено подключить датчик через стабилизатор 5В (78M05).
Предупреждения:
Устройство не рассчитано на подключение паралельно со стандартным датчиком!
Для исключения влияния “плескания” топлива в баке на показания, введена функция усреднения показаний. Велечина усреднения доступна в настройках.
реклама
Что у нас есть:
1. Функции:
Термометр:
Диапазон измерения температур -55÷ 125°С. Дискретность измерения 1°С. При достижении заданной температуры подается команда на включение реле. Когда температура снижается на 3°С ниже заданной , реле отключается. Если температура достигает 100°С показания температуры начинают мигать с частотой 1Гц. В случае ошибки датчика индикатор выводит прочерки, реле отключается.
реклама
Измерение уровня топлива:
Диапазон измерений 0-90 литров. Дискретность 1 литр.
Настройка показаний уровня при заливке топлива и возможность ручной корректировки показаний. Точки калибровки пользователь расставляет на свое усмотрение в процессе калибровки.
Настройка яркости показаний: При включении габаритных огней яркость индикаторов уменьшается до заданной величины.
2. Настройка.
2.1. При включении питания устройства – устройство находится в основном режиме. После тестирования индикатора и заставки на индикатор выводится температура и уровень топлива.
– температура включения реле. В старшем разряде символ “t” Диапазон установки 50÷ 99°С. По умолчанию 90°С;
– величина усреднения показаний уровня топлива. В старшем разряде символ “r”. Диапазон установки 0÷ 99 (чем больше значение, тем больше усреднение) По умолчанию 10;
– яркость индикатора при включении габаритов. В старшем разряде символ “b”. Диапазон установки 1÷ 99. По умолчанию 50.
2.2.1. Настройки запишутся в память через 5 секунд после последнего нажатия кнопки.
Предусмотрено 2 режима калибровки.
3.1. Калибровка заливкой топлива.
– перед подачей питания нажать и удерживать кнопки SELECT и MINUS. После тестирования индикатор будет выводить символы “rSt” – все предыдущие настройки будут стерты. (в рошивке присутствуют настройки “От Фонаря”, для теста!). После отпускания кнопки устройство перейдет в режим калибровки. На индикаторе термометра отображается установленный уровень. На индикаторе бакомера, напряжение с датчика бака.
– залить известное количество топлива (дискретность 1 литр). Кнопками PLUS/MINUS установить на индикаторе уровень в литрах.
– коротко нажать на кнопку SELECT – подтверждение настроек.
– долить топлива, установить уровень, нажать SELECT… операцию повторить до полного бака.
– нажать и удерживать кнопку SELECT не менее 5 секунд, пока устройство не перейдет в основной режим. Настройки запишутся в память. Если какие-то точки настройки были пропущены – программа сделает расчет, исходя из допущний, что между 2 точками зависимость линейна.
3.2. ручная калибровка.
– в основном режиме нажать и удерживать кнопку SELECT не менее 5 сек, пока устройство не перейдет в режим калибровки уровня. Отображение как и во время предыдущей настройки. только теперь на индикаторе бакомера отобразится записанное напряжение для данного уровня.
– коротким нажатием на кнопку SELECT перейти на индикатор бакомера. Показания напряжения будут мигать.
– кнопками PLUS/MINUS отредактировать данные.
– короткое нажатие на кнопку SELECT переход на выбор уровня.
– выход из режима настройки длинным нажатием на кнопку SELECT (более 5 сек. ). измененные данные запишутся в память.
Что бы заполнить свободное пространство, добавлены часы. Собрав на макетке схему часов с термометром на ATTiny2313 и поэкспериментировав с прошивками с помощью уважаемого “Soir” был сделан вывод, что термометр не нужен. Были сделаны часы с чипом реального времени, автономным питанием сменой яркости при включении габаритов.
Описание работы часов.
Формат отображения 24 часа.
Незначащий 0 в часах не отображается.
Суточная коррекция ±25 с.
Управление яркостью, при подаче +12В (габариты включены), яркость индикатора уменьшается.
Настройка
Нажатие кнопки ENTER – вход в настройки.
Настраиваемый параметр мигает.
При удержании нажатыми кнопок PLUS/MINUS происходит экспресс настройка.
Параметры выбираются по кругу, нажатием на кнопку ENTER.
– минуты;
– часы;
– секунды. Кнопкой PLUS или MINUS секунды сбрасываются в 0;
– величина суточной коррекции времени. В старшем разряде символ ”c”. Диапазон установки ±25 с. По умолчанию 0 сек.
– яркость индикатора при замкнутом ключе LIGHT. В старшем разряде символ ” b”. Диапазон установки 0 ÷ 99%. По умолчанию 50%.
– основной режим отображение времени.
Через 10 сек после последнего нажатия на кнопки параметры записываются в память часы переходят в основной режим.
В архиве схема и прошивка для общего катода и общего анода, катоду, папка с платами от Владимира Зямзина для ВАЗ2109 та OPEL Vectra,
Несколько фотографий плат готового устройства (все есть в архиве с платами и прошивками) и видео автора как оно работает.
Поделится
В авто
авто
Простейший цифровой вольтметр с АРН
Простейший цифровой вольтметр с АРН Это, наверное, самый простой из возможных цифровых вольтметров с микроконтроллером Atmel AVR.
Схема управляется микропроцессором IO1 — Atmel AVR ATmega8 (ATmega8, ATmega8L), программа для загрузки и установки конфигурационных битов находится ниже. (ATmega8 может показаться слишком «большим», но был выбран потому, что это один из наиболее часто используемых AVR.
и его часто можно найти в ящике стола.)
Для отображения значения используется трехразрядный семисегментный светодиодный дисплей. Катоды подключены к порту D,
аноды к младшим 3 битам порта B. Использование сверхъяркого дисплея позволяет опустить текущий
усилительные транзисторы. Дисплей управляется мультиплексированием (матрично) и подключается обычным мультиплексным способом.
Я использовал трехразрядный желтый индикатор Т-5631БУЙ-11 со светимостью 150-200 мкд.
Резисторы с R1 по R8 определяют ток на дисплее и, следовательно, его яркость. Они выбраны не для
превышен максимальный выходной ток (40 мА) даже при одновременном горении всех 8 светодиодов.
В схеме используется несимметричный 10-разрядный АЦП (аналогово-цифровой преобразователь) в AVR. Выходные значения варьируются от 0 до 1023, а потому не стоит добавлять четвертую цифру
для узкого диапазона 1000 — 1023 диапазон ограничен 0 — 999. При более высоком значении появится символ «—«. Диапазон вольтметра соответствует входному напряжению 2,5 В.
Вход подключается через делитель 1/4, состоящий из R9, R10 и P1, обеспечивающий диапазон 10В с разрешением до 0,01В.
Входное сопротивление составляет примерно 1 МОм. (Если вам нужен диапазон 100 В, измените значение R10 на 9M1, а P1 на 2M2. Тогда у вас будет
Диапазон 100 В с разрешением 0,1 В и входным сопротивлением около 10 МОм.)
Калибровка вольтметра производится по известному напряжению установкой подстроечного резистора Р1.
Перемычки DP1 и DP2 могут использоваться для подсветки десятичных точек.
DP1 загорается десятичной точкой после первого числа (0,00), DP2 загорается точкой после второго числа (00,0).
Частота обновления вольтметра составляет около 4 Гц. IO1 использует внутренний RC-генератор с частотой 1 МГц.
Схема питается от источника около 5В.
Потребляемый ток около 25 мА (большую часть потребляет светодиодный дисплей).
Разместите C1 и C2 как можно ближе к АРН IO1. Измеритель может быть полезен в качестве усовершенствования лабораторного блока питания, указателя напряжения бортового напряжения автомобиля, напряжения питания ПК, напряжения аккумулятора в ИБП и т.д.
Напряжение питания 5 В можно получить с помощью простого источника питания, например, с помощью интегральной схемы 7805. Используйте соответствующий предохранитель на входе питания.
Программа для бесплатного скачивания:
исходный код на ассемблере (ASM)
скомпилированный HEX файл (298 байт)
Как записать программу в AVR описано здесь .
Я могу выслать вам запрограммированный микроконтроллер. Для дополнительной информации щелкните здесь.
Принципиальная схема простейшего цифрового вольтметра с AVR ATmega8.
Установка битов конфигурации.
Проверка вольтметра на ATmega8.
Добавлено: 27. 06.2012
дом
Вольтметр на базе Atmeag8/AVR | Embedded System Desgin
Учебное пособие для вольтметра на базе Atmeag8/AVR
I t измеряет напряжение переменного тока и показывает показания в среднеквадратичном значении.
Основы сигнала переменного тока
Сигнал переменного тока, амплитуда которого изменяется во времени. В Индии частота переменного тока составляет 50 Гц.
Затем период времени один полный цикл ,
T = 1/частота
T = 1/50 Гц = 0,002 секунды
= 20Milli. для полупериода
Существует множество методов цифрового измерения напряжения переменного тока
мы можем найти среднеквадратичное значение, умножив пиковое напряжение на 0,707.
Vrms = пиковое напряжение * 0,707 .
Приблизительно Indian Line AC Пиковое напряжение составляет 325 В.
Пример :
325 В *0,707 = 229,775 В .
Но микроконтроллер мог воспринимать только до 5 вольт, а также не мог воспринимать отрицательные значения
, поэтому мы не можем подать на него 230 вольт напрямую.
Это можно исправить с помощью понижающего трансформатора, преимуществом которого является безопасность.
Напряжение переменного тока можно уменьшить до комфортного диапазона с помощью трансформатора. (т.е. от 0 до 5 вольт постоянного тока)
сделайте расчет как ,
делитель напряжения даст 5 вольт, когда Vrms 230v. [ будет подробнее по пути ].
Выход двухполупериодного выпрямителя подается на АЦП микроконтроллера. Затем выполните соответствующее кодирование.
Микроконтроллер Секция
Я использую здесь Amega8.
нам нужно повторно измерить только один полупериод, потому что волны повторяютсяОсновы
Я выбрал , частота F_cpu — это внутренний RC-генератор 8 МГц.
АЦП Atmega8 использует Prescalar [редуктор частоты или делитель на 2, 4 и т. д.]
Предварительная шкала АЦП Atmega Предварительная шкала находится в диапазоне от 50 кГц до 200 кГц
Время преобразования АЦПсоставляет от 13 до 260 мкс.
Частота АЦП = F_cpu / Предделитель
= 800 000 Гц / 8
= 62,5 кГц
При высокой частоте преобразование АЦП будет быстрым, а при более низкой частоте преобразование будет более точным.
Расчет времени преобразования АЦП
Время преобразования = 1/частота АЦП
= 1/62500
= 0,000016 Секунда
= 0,016 миллисекунды
= 16 микросекунд. [При 62,500 кГц]
Таким образом, на один цикл преобразования потребуется 16 микросекунд при частоте 62,5 кГц.
Для одного преобразования требуется 13 циклов АЦП
т. е.
13 * 16 микросекунд = 230 микросекунд [приблизительно]
= 230 us.
Полуволна имеет продолжительность 10 миллисекунд [100000 микросекунд].
Доступное время преобразования:
= Общий период времени для полупериода/одно время преобразования АЦП
= 10000 микросекунд / 230 микросекунд
= 43,4 выборки [за один полупериод, т.е. 10 миллисекунд]
Изображение показывает только 7 выборок за полупериод. В нашем случае это 43
И снова уменьшил выборку до 40 .расчет Vpeak
Выбирает наибольшее значение Vpeak из 40 образцов.
Vrms = Vпик * .707
******************************************* ****************************************
Расчет размера шага АЦП Atmega8
Atmega8 использует последовательную аппроксимацию adc,
АЦП Atmega8 представляет собой 10-битный /[т.