Измерительный прибор для авто на Atmega8
Представляю схему измерительного прибора для авто на Atmega8. Устройства предназначена для измерения температуры улицы и для просмотра напряжения в бортовой сети автомобиля. В качестве дисплея использован графический экран Nokia 5110, подойдет и Nokia 3310.
Принципиальная схема устройства:
Фьюзы нужно выставить ниже представленным образом на внутренний генератор на 8МГц.
Программа четко работает, все функции просты и понятны. Все отображается на дисплее Нокиа 5110.
По желанию можете добавить события гололед и повышенное напряжение в бортовой сети автомобиля.
Ниже фото режимов работы прибора:
Также представляю улучшенную схему до версии 1.1
В улучшенной версии добавлены следующие возможности:
1. Можно использовать схему в двух режимах. Первый режим это сведения о уличной температуре и о напряжение аккумулятора, а второй режим уже измеряет температуру двигателя и напряжение аккумулятора. Переключать режимы можно с кнопкой S-1(берите кнопку с фиксацией)
LCF-метр на ATMEGA8 и LCD1602
Я уже собирал несколько измерительных приборов, Частотомер, испытатель транзисторов.
Но, как говорится «наши руки, не для скуки» решил собрать Измеритель LCF. Схему и всю подноготную почерпнул с этой страницы LCF-метр на ATMEGA8 и LCD1602.
Данный прибор предназначен для измерения ёмкости конденсаторов, индуктивности и частоты.
Конденсаторы:
Диапазон измерений: 0,1 pF ÷ 10 000,0 uF.
Измерения проводятся в трех диапазонах, переключение диапазонов автоматическое.
В первом диапазоне измеряются емкости до 100 nF, во втором до 100 uF, в третьем выше 100 uF.
Индуктивность:
Диапазон измерений: 0,1 uH ÷ 100,0 H.
Частота:
Диапазон измерений: 1 Hz ÷ 4 MHz.
Выбор измеряемого параметра осуществляется кнопкой «Выбор» по кругу.
Если параметр выходи за пределы измерения на индикатор выводятся прочерки.
Схему и плату делал в ДипТрейс под свои компоненты.
Сначала собирал прибор в безкорнусном варианте на ATMega8(32). В моём архиве есть вариант этой платы.
Но побывав в магазине Чип и Дип обнаружил там много разных корпусов для РЭА
И сразу решил оформлять прибор в подходящий корпус.
Корпус G1204B 142.8×8, 5×38мм как нельзя лучше подходил для данного проекта. Тем более блок питания в корпусе я размещать не собирался. Место было много, я и не старался мельтешить.
Вот готовое устройство.
Что касаемо применяемых деталей, к точности номиналов никаких особых требований нет.
В прилагаемом архиве есть несколько прошивок, как на русском, так и на английской мове. Установите какую понравится, по функционалу разницы не заметил.
Фьюзы для ATMega8 будут
LOW= DE
HIGH= D9
После включения прибор начинает работать сразу, но прежде чем начать им пользоваться его следует его откалибровать. Привожу инструкцию автора по калибровке прибора.
Калибровка измерителя емкости.
1. Для калибровки следует выбрать режим измерения емкости и нажать на кнопку SET. В верхней строке дисплея появятся настроечные коэффициенты. Устанавливаемый параметр мигает. В нижней строке измеренная емкость.
2. К входным щупам не должно быть никаких подключений.
3. Нажать на кнопку PLUS или MINUS – произойдет настройка показаний емкости на 0. Коэффициент Z1 (Z2, Z3) установится автоматически. Если показания не стали нулевыми – операцию повторить.
4. Подключить к щупам образцовый конденсатор (для нижнего диапазона 1 nF ÷ 100 nF, для второго 100 nF ÷ 100 uF, для третьего 100 uF ÷ 10000 uF). Прибор автоматически выберет предел измерения.
5. Если показания емкости отличаются от номинала конденсатора – нажать на кнопку SET, начнет мигать параметр C1 (C2, C3).
6. Кнопками PLUS/MINUS установить требуемую емкость.
7. Повторить настройку, начиная с п.1.
8. Все диапазоны настраиваются аналогично. (В верхних диапазонах параметр Z2, Z2 как правило устанавливается в 0.)
9. Через 10 сек от последнего нажатия на кнопки прибор перейдет в основной режим, настройки запишутся в память.
10. Если из основного режима нажать на кнопки PLUS/MINUS, то произойдет установка коэффициентов Z1 (Z2, Z3).
Калибровка измерителя индуктивности.
1. Для калибровки следует выбрать режим измерения индуктивности и нажать на кнопку SET. В верхней строке дисплея появятся настроечные коэффициенты. Устанавливаемый параметр мигает. В нижней строке измеренная индуктивность.
2. Закоротить входные щупы.
3. Нажать на кнопку PLUS или MINUS – произойдет настройка показаний индуктивности на ноль. Параметр L0 устанавливается автоматически. Если показания не стали нулевыми – операцию повторить.
4. Подключить к щупам индуктивность известного номинала.
5. Если показания индуктивности отличаются от номинала – нажать на кнопку SET, начнет мигать параметр LC.
6. Кнопками PLUS/MINUS установить требуемую индуктивность.
7. Повторить настройку, начиная с п.1.
8. Через 10 сек от последнего нажатия на кнопки прибор перейдет в основной режим, настройки запишутся в память.
9. Если из основного режима нажать на кнопки PLUS/MINUS, то произойдет установка коэффициента L0 (настройка показаний на ноль, при этом щупы должны быть замкнуты).
Моя оценка работы прибора.
Начну с простого. Частоту прибор меряет достаточно точно и хорошая чувствительность, максимальное напряжение не мерил, щупы в розетку не совал.
Замер индуктивностей, на сколько точно он меряет не знаю эталонной индуктивности у меня не оказалось, но меряет.
Универсальный измерительный прибор на микроконтроллере ATMega8
Схема устройства
В основе схемы лежит микроконтроллер фирмы ATMEL — ATMega8, который работает на частоте 16 МГц. Информация выводится на стандартный двухстрочный символьный индикатор (16 символов в строке).
Принципиальная схема универсального измерительного прибора на микроконтроллере ATMega8
Сразу хочу сказать, что я не являюсь автором данной разработки, и не претендую на авторство этой схемы. Схему этого прибора я нашел в интернете, она встречается на многих сайтах. Поэтому невозможно определить первоисточник и имя автора проекта. Но все же, автору схемы выражаю большую благодарность за весьма интересную разработку!
Функциональные возможности устройства
Технические характеристики устройства
Порядок работы
Включить прибор на экране дисплея временно (1 Сек) появится сообщение «Измерение R» и прибор перейдет в режим измерения сопротивления. Переход из одного режима в другой осуществляется циклически при помощи кнопки переключения режимов «3» в порядке: «Измерение R», «Измерение С», «Осциллограф», «Генератор», «Частотомер». При переходе из режима в режим осуществляется кратковременная индикация названия режима. В режиме «Генератор» изменение частоты генерации происходит кнопками «1» — (увеличение частоты) и «2» (уменьшение частоты). В режиме «Осциллограф» кнопками «1» и «2» производится изменение времени развертки, измерение уровня сигнала происходит автоматически с индикацией его значения. В режимах «Измерение емкости» и «Измерение сопротивления» переключение диапазонов измерения происходит автоматически. Калибровка нуля в этих режимах происходит нажатием и удержанием кнопки «1»,с последующей записью в память кнопкой «2» и калибровка по номиналу 1000 ом или 1000пф нажатием и удержанием кнопки «2» с последующей записью в память кнопкой «1».
Изменение время измерения частоты осуществляется кнопкой «1», позволяющей измерять частоту с точностью до 0.1 Гц. Само время измерения (Сек) индицируется в крайнем правом знакоместе верхней строки.
Фото устройства моей сборки:
Бортовой компьютер для ВАЗ на ATmega8 с цветным дисплеем
С приходом в жизнь автолюбителей инжектора и его окончательной победе над карбюратором, появилась необходимость в «его» периодической диагностике. Поскольку стоимость диагностики отечественной машины варьируется от 300 до 500 руб., а квалификация диагноста порой вызывает сильные сомнения, то практически каждому автолюбителю зачастую приходится вникать в суть проблемы (неисправности) самостоятельно. И как минимум без специального адаптера и компьютера тут не обойтись. А если неисправность возникла где-то в пути и вдали от города? Поэтому порой просто необходимо иметь под рукой эдакий «миникомпьютер», который всегда будет в автомобиле и сможет помочь в пути.
Сам я являюсь обладателем автомобиля ВАЗ 11183 (Калина), поэтому далее повествование пойдет о бортовом компьютере для Калины. А в конце будет несколько слов про бортовой компьютер для ВАЗ 2115.
Цены на подобные устройства, мягко говоря, не очень радуют. Самый простой компьютер-кнопка для отображения каких-никаких кодов категорически не устраивает. Ввиду его убогости. Стоимость таких около 600-700 руб. Ну а что-то посерьёзней, с дисплеем, уже порядка 1800-2000 руб. Ну и самые дорогие модели приблизительно по 5000 руб. Поэтому было принято решение собрать бортовой компьютер для себя и с целью экономии денежных средств и с целью саморазвития.
Что я хотел видеть: параметры в режиме реального времени, текущие ошибки и возможность их сбросить. Замер времени разгона 0-100 км/ч (появилось позднее, так. побаловаться. )
Начался поиск информации. Поиск по интернету дал ответы на некоторые вопросы, но до остального пришлось доходить самому.
Итак: обмен информацией между Электронным Блоком Управления (ЭБУ) и Бортовым Компьютером (БК) происходит при помощи интерфейса K-Line. При этом используются различные протоколы. Вот с этим то как раз и возникает первая трудность. Где взять описание протокола? Мне повезло, я нашел в сети единственное описание протокола для ЭБУ Январь 5. На моей машине 2006 г.в. стоит ЭБУ Январь 7.2+. Подключившись к диагностической линии и запустив программу диагностики, я увидел, что запросы и расшифровка ответов ЭБУ полностью совпадают с найденным описанием. Дело сдвинулось.
Вариант №1. Калина. Кнопочное управление компьютером
Я использовал:
1. Микроконтроллер фирмы Atmel: Atmega8
2. Дисплей от сотового телефона Siemens S65
3. Обвязка. питание, резисторы, конденсаторы и другая мелочевка.
4. Преобразование уровней на сдвоенном компараторе LM293. Просто и доступно.
Питание. Тут всё просто. LM317 формирует стабилизированный ток 20 мА для светодиодов подсветки дисплея. LM7805 стабилизирует напряжение для питания микроконтроллера. Защитный диод 1N6281 рассчитанный на 27 вольт спасет от возможных всплесков напряжения.
При отладке можно использовать +12 вольт с 16-го пина колодки OBD2. А при постоянной работе напряжение на БК должно подаваться при каждом включении зажигания. Т.е. необходимо протянуть провод от замка зажигания к БК.
Ну и сама радиосхема:
Тут есть маленькая тонкость. Чтобы продлить срок службы дисплея необходимо перед отключением питания отправить в дисплей определенную последовательность команд. Транзистор на схеме в нормальном режиме работы придавливает вывод контроллера к нулю. Вывод настроен как вход с подтяжкой. Как только напряжение пропадет, на выводе появится логическая единица. Энергии накопленной конденсатором 470 мкФ хватит на то чтобы микроконтроллер успел отправить команду выключения в дисплей. Диод 1N5818 не даст разряжаться конденсатору в «сеть», а так же защищает от переплюсовки при подключении питания.
Прошивка для микроконтроллера написана в среде CodeVisionAVR 2.05 на языке Cи.
Описание протокола есть в приложенных к статье материалах. Кратко пробежимся по основным моментам. Чтобы начать диагностику, нам надо отправить в ЭБУ запрос startCommunication:
Запрос startCommunication:
81 10 F1 81 03
Ответ:
83 F1 10 C1 6B 8F 3F
В ответе C1 означает, что ЭБУ готов с нами работать (на связи).
После этого мы можем запросить у него параметры, отправив запрос:
82 10 F1 21 01 A5
ЭБУ моей машины отвечает:
80 F1 10 26 61 01 3B 90 41 04 00 00 00 00 47 80 00 00 00 52 52 80 18 00 8E 00 5C 00 00 00 00 00 00 00 00 00 FF FF DD A4 47 02 CE
У меня это значение 47. Берем windows калькулятор. Переводим 47 hex в dec. Получаем 71. Дальше 71-40=31°C. На момент снятия данных машина постояла на улице. До конца не остыла.
И так далее… со всеми остальными параметрами.
Запрос ошибок readDTCByStatus:
84 10 F1 18 00 00 00 9D
ЭБУ моей машины отвечает:
88 F1 10 58 02 04 43 E0 14 26 E0 24
Самое сладкое, сброс ошибок clearDiagnosticInformation:
83 10 f1 14 00 00 98
Запрос значений АЦП:
82 10 F1 21 03 A7
Из АЦП взял напряжение на датчике кислорода и на датчике массового расхода. Хотя необходимость этого пункта под сомнением. Думаю вообще убрать. Всё остальное есть в описании.
Плата разведена на одностороннем фольгированном текстолите. Дисплей приклеен при помощи клея «секунда». Защитное стекло для дисплея сделал из коробки от компакт диска. На самоклеящейся бумаге распечатал лицевую часть (черную), наклеил на пластик, совместил, приклеил к плате. Чтобы под стекло не набивалась пыль, промазал обычным герметиком. Доработал напильником посадочное место в ящике для мелочей и просто вставил туда БК. Подключил питание и диагностическую линию. Левая кнопка смена режимов отображения, правая сброс ошибок (в режиме сброса ошибок) и сброс времени разгона на ноль (в режиме замера времени). На плате имеется место для памяти 24LC512. Но она не использовалась (не хватило flash памяти МК на реализацию). Фьюзы МК выставлены на работу от внешнего кварца.
По себестоимости получилось порядка 450 руб
Вариант №2. ВАЗ 2115. Тачскрин
Печатная плата претерпела существенные изменения. Теперь используется микроконтроллер ATMega16A.
При помощи ножа, напильника и шпатлевки по пластику тачскрин был вмонтирован в панель, которую потом обтянул карбоновой пленкой.
По началу прикупил стилус, но потом оказалось что проще «тыкать» пальцем в экран. Залапывается он конечно. Но не более чем на телефонах с сенсорным экраном.
Для повторения рекомендую вариант с тачскрином. Его можно использовать как под Калину, так и под Пятнашку. На этом всё.
Бесконтактный тахометр-стробоскоп на Atmega8
Данное устройство предназначено для измерения частоты вращения электродвигателей и главным преимуществом является бесконтактный метод измерения, основанный на стробоскопическом эффекте, где яркие световые импульсы производит светодиод высокой мощности. Для измерения необходимо установить частоту вспышек в соответствии с частотой вращения (при освещении стробоскопом объект кажется неподвижным), используя энкодер. Измерение может быть сделано без остановки вращающегося механизма. Тахометр построен на микроконтроллере ATmega8, а результат измерения отображается на ЖК-дисплее. Кроме того, система также показывает ошибку, которая появляется в результате некоторых временных процессов в программе. Управление осуществляется с помощью поворотного энкодера и небольшой клавиатуры. Все устройство может питаться от батарей, так как из-за импульсного характера генерации потребление энергии является незначительным. Весь прибор успешно уместился в популярном корпусе KM35, где также есть место для 9В батареи.
Схема устройства
Сборка
Прибор может быть успешно построен на основе печатной платы, которая доступна в архиве внизу страницы. Также доступа плата в зеркальном отображении. Плата проста в сборке, но включает в себя компоненты для пайки SMD, которые могут вызвать проблемы для начинающих радиолюбителей. Сборка должна быть начата с пайки двух перемычек. Далее должны быть установлены SMD конденсаторы и резисторы, они используются в популярных корпусах 0805(2×1.2mm). Далее, припаивается на место микроконтроллер U1, обратите внимание на правильность установки ключа. Кнопки должны иметь длину 15 мм и слегка выступать над ЖК дисплеем, это будет важно при установке платы в корпус. Точно так же и в случае с энкодером. Потенциометр Р1 установлен таким образом, чтобы его можно было регулировать через отверстие в боковой стенке корпуса. Плата разработана таким образом, что она легко помещается в популярном корпусе KM35.
После того как был написан первоначальный вариант кода и произведен расчет таймера делителя, измерения показали отклонение частоты генерируемых вспышек по отношению к теоретическим расчетам. Эта погрешность появляется из-за работы делителя таймера, равного 1, времени, которое необходимо для обслуживания прерывания, а иногда из-за перезагрузки значения таймера в регистрах. В приведенной ниже таблице, включены измерения частот, генерируемых на выходе (F_p) по отношению к частоте, которая должна быть теоретически (f_i) и соответствующие значения оборотов (умножаются на 10, чтобы получить точность установки в 0,1 об/мин).
Данные из таблицы делятся на два диапазона, первый от 60 до 480 об/мин и второй диапазон 480-42000 об/мин. Это разделение результат программы, в которой работают два диапазона измерения. Графики ниже показывают зависимость измеренных и теоретических данных:
В качестве калибровочной кривой была принята квадратичная зависимость:
y = a \cdot x^2 + b \cdot x +c
После вставки параметров устройство становится измерителем, а не только индикатором оборотов. В таблице ниже приведены результаты измерений частот генерируемых прибором в зависимости от набора на дисплее. Частота генерируется с ошибкой, равной доли процента от желаемого:
Печатные платы и внешний вид прибора
Программирование fuse-битов микроконтроллера