Спидометр-одометр + вольтметр. Спидометр одометр на pic16f873a


Спидометр-одометр + вольтметр

  КОНКУРС

 В данной статье представлено устройство, которое установлено в приборную панель автомобиля и отчасти заменяет бортовой компьютер.

Начну с  предыстории.Поставил я как-то в машину торпедо от иномарки и понял, что спидометр ужасно не совпадает с реальными показателями скорости. Решено было поставить бортовой компьютер. Сказано – сделано. Множество функций, и т.п., со временем он отказал, и пришлось делать самому.

Из всех функций я понял, что мне реально нужны всего несколько основных, так я и сделал.

На просторах интернета я подсмотрел кое-что по отдельности и свёл это всё в законченное устройство представленное ниже.Из необходимых показаний  я выбрал: вольтметр бортовой сети, спидометр и одометр (общий пробег  не сбрасываемый, и суточный, сбрасываемый).Так же, в моей панели не показывал штатный показатель уровня топлива в баке, я поставил переключатель показаний вольтметра, там показывает либо напряжение бортовой сети, либо падение напряжения на датчике бака. Показания конечно не в литрах, а в каких-то цифрах,  по этому я запомнил показания пустого бака, четверти, половины, 0,75 бака, и полного. И по показаниям я могу ориентироваться о количестве топлива в баке.

 

 

Теперь о схеме.

 

Вольтметр собран на микроконтроллере pic16f676 , транзисторы я применил PNPИндикатор с общим анодом , с динамической индикацией на три разряда.В спидометре-одометре применён микропроцессор  pic16f873a,  транзисторы работающие на аноды, обратной проводимости, индикатор на спидометр на три разряда с динамической индикацией с общим анодом, на одометр я взял два индикатора с ОА с динамикой.

 

Описание датчика:

 

Алгоритм работы таков:Напряжение 12 вольт с аккумулятора на схему подаётся всегда, а вот с ножки замка зажигания 15/1  подаётся и на схему, как питание, и на ножку 21 МК , и при выключении зажигания, схема не сразу обесточивается, а идёт запись данных о пробеге  в  EEPROM контроллера, когда запись прошла удачно, микроконтроллер даёт команду на ключи, которые снимают напряжение питания всей схемы. Во время записи на индикаторе одометра загорается надпись «запись»В  печатной плате предусмотрен переключатель, который питание на аноды спидометра либо подаёт напрямую, либо пускает через резистор, что в свою очередь, в ночное время, «приглушает» яркость свечении, чтобы не ослепляло, но кому не надо, можно на плате поставить перемычку. (что я у себя и сделал)При повороте ключа зажигания , загораются показания вольтметра, спидометра и общего показания пробега, чтобы перейти в суточный пробег, надо кратковременно нажать кнопку ресет, А чтобы сбросить показания суточного пробега, эту же кнопку надо удержать долго,  и на индикаторе появится   слово «сброс» Схема работает на моей машине,  и уже на машине друга. Так что схема полностью  работоспособна и отработана  в полевых условияхИ еще, в вольтметре, вместо подстроечного резистора, я поставил постоянный 13 кОм (в моём случае) , чтобы показания под воздействием вибрации не сбивалось.И ещё, на фото приведена плата из первого опыта, там не дорисованы дорожки, но вам представлена полностью готовая плата, со всеми изменениями.

 

Фото готового устройства

 

Скачать прошивки с исходниками + файл ПП.

Автор: Ярынич Эдуард Евгеньевич (ad_tv)Связь с автором: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. ICQ#: 378987394

chipmk.ru

Квазианалоговый тахометр на pic16f873a CAVR.ru

Рассказать в:        Известно, что быстро меняющиеся величины лучше измерять не цифровым способом, а аналоговым, так как человеку свойственно оценивать не точно, а по принципу больше-меньше. Данный тахометр как раз использует квазианалоговую индикацию оборотов с шагом до первой тысячи 100 оборотов в минуту, начиная с 200 об/мин., далее 7 светодиодов на 1000 об/мин. Примерно 140об/мин., используется метод - "растущая полоска". Диапазон измерения от 200 до 7000 оборотов в минуту. (И того 51 светодиод). В середине встроеный вольметр, но можно встроить часы, в архиве есть схемы и прошивки обеих!        За основу была взята схема из сайта MAMED Electronics. В отличии от авторской схема немного проще и прошивка совершенно БЕЗПЛАТНО! Я не жадный.   Квазианалоговый тахометр на PIC16F873A        Схема работает следующим образом. Микроконтроллер измеряет период импульсов сигналов тахометра и преобразует их в данные для индикации. Индикация у прибора динамическая, что снижает потребляемый ток. При включении зажигания на 2 секунды зажигаются все светодиоды, чтобы сразу было видно если вдруг присутствует неисправный. Конструкция тахометра такая - сверху платы лицевой панели на стойках прикручивается верхняя часть из пластика от коробки компакт-диска, а сверху на пластик 2-х сторонним тонким белым скотчем приклеивается шаблон лицевой стороны, распечатанный на тонкой матовой фотобумаге или пленке.   Далее соединяем плату контроллера и плату индикации перемычками или шлейфовым проводом. Так как я не признаю шлейфы я стараюсь делать все на разъемах так практичней! Устанавливаем тахометр в панель. Делаем все необходимые подключения, ездим и наслаждаемся! Квазианалоговый тахометр на PIC16F873A
Квазианалоговый тахометр на PIC16F873AКвазианалоговый тахометр на PIC16F873AКвазианалоговый тахометр на PIC16F873AКвазианалоговый тахометр на PIC16F873A Прямоугольные диоды Квазианалоговый тахометр на PIC16F873A Квазианалоговый тахометр на PIC16F873A Приборы в щитке. Зажигание выключено Квазианалоговый тахометр на PIC16F873A Зажигание включено. Двигатеель работает 900 об/мин Квазианалоговый тахометр на PIC16F873A Есть маленькое видео: Внимание! Полное название микроконтроллера PIC16F873A-I/SP или PIC16F873A-E/SP /PIC16F876A-I/SP или PIC16F876A-E/SP/, они работают от -40 °С. Также можно использовать PIC16F876A-I/SP или PIC16F876A-E/SP у них просто больше памяти. Возможно, так же потребуется уточнения номинала резистора R1 для различных систем зажигания. Тахометр подключается к штатному проводу, идущему к тахометру. Более полная информация и новые печатки под прямоугольные светодиоды, а так-же прошивки для тех у кого стандартная занижает показания в 2; 4; и 8 раз, находятся на первоисточнике по ссылке ниже! Там-же есть цифровой спидометр-одометр и светодиодный указатель температуры и уровня топлива. (Полный набор для приборной панели). Файлы к статье Квазианалоговый тахометр на PIC16F873A       Раздел: [Схемы] Сохрани статью в: Оставь свой комментарий или вопрос:

www.cavr.ru

Цифровой спидометр. - Устройства на микроконтроллерах - Схемы устройств на микроконтроллерах

Глава 1. Немного предистории, или как я люблю отечественный Автопром.

После того, как на моей машине, а машина прямо скажем почти эксклюзивная (в смысле запчасти фиг найдешь), благополучно скончался очередной спидометр, то ли седьмой, то ли восьмой, я решил замутить электронный девайс, чтоб и скорость показывал и километры щелкал. Как обычно, начал поиск того, что уже натворили собратья по разум и коллеги по несчастью обладания данным типа авто. Пролистав не одну страницу и посетив не один форум, обнаружил что ничего подходящего для моего авто нет, либо девайс собран на PICе, у меня даже программатора нет и приходится просить друзей-знакомых, да и AVRки мне как-то роднее, либо состоит из 2х отдельных блоков, и у всех значения пробега пишутся во внутреннюю EEPROM, что не есть гут. Пораскинув мозгами, не широко так, чтобы потом можно было собрать в кучу, решился на отчаянный шаг - лепить самому. Что из этого получилось - решать вам, многоуважаемые коты.

Фото 1. Общий вид:

Фото 2. Основной блок:

Фото 3. Датчик ДСА-9 + "двигло":

Глава 2. О выборе компонентов, или "я его слепила из того, что было".

Итак, за источник сигнала о продвижении авто по тернистому пути наших автодорог был выбран ДСА-9, имеющий: 6 импульсов на 1 метр пути, выход ОК и резьбовое соединение М22 х не помню на сколько, как раз по размеру, НО можно использовать любой датчик скорости с 6имп/метр, в зависимости от авто. С проциком было труднее. Любимой меге48 не хватало пары ног, но тут на глаза попалась старая макетка с мегой16, что ж так тому и быть. Итого: МП=ATmega16-16PI С выбором тактовой частоты долго мучаться не пришлось, после не больших подсчетов выяснилось, что период повторения импульсов при скорости 250 км/ч составляет 2,4 мс, или 2400 тиков при тактовой частоте в 1 МГц, маловато будет, было решено использовать кварц на 8 МГц, это уже 19200 тиков процессора, а для удобства подсчета, с помощью таймера Т1, использовать "предделитель на 8". Для отображения всего, что будет измерятся и подсчитыватся предназначены: KingDright BA56-12GWA (можно любые с ОА) - для отображения текущей прыткости МЭЛТ MT-08S2A-2YLG (опять же можно любой 8х2 LCD с аналогичным контроллером и тактовой не ниже 250 кГц) - для подсчета того, что будет пройдено по тем направлениям, что в России гордо именуется дорогами. Ну и AT24C04B (наследство от той самой макетки, но можно любую из серии 24Схх), чтобы "помнить" от тех незабываемых километрах пути.

Глава 3. О самом главном, или без теории ни туды, и ни сюды.

Переходим, собственно, к методике определения скорости. Как всем известно, если автомобиль движется, то с датчика скорости поступают импульсы, если никуда не движется - то и импульсов тоже не дождетесь! И что самое поразительное - частота (или кому удобнее - период повторения) прямо пропорциональна (обратно пропорциональна, для периода повторения) скорости движения, вот тут-то, не при котах будь она упомянута, собака и порылась. Что такое частота - это количество импульсов в секунду (просто гениально, спасибо Герцу) N(в секунду)=Fп, поэтому получаем:

V=Fп/6 (м/сек) (мы же помним, что на 1 метр приходится 6 импульсов)

Но минуточку, где вы видели спидометры со шкалой "М/СЕК"? Да и ГАИшники, (ДАИшники - это чтобы для тех, кто в Украине проживает, было понятно) штрафуют за лишние км/час. Отсюда вывод - надо пересчитать, а как? Все гениальное просто: умножаем на 3600 (это столько секунд в 1 часе) и делим на 1000 (столько метров в 1 км) после сложнейших математических преобразований получаем волшебную формулу:

V=0,6*Fп (км/час) - то что доктор прописал.

Из это формулы следует гениальное (жаль, что не я первый додумался) умозаключение - если организовать "временные ворота" длительностью 0,6 сек, в которые проталкивать импульсы от датчика, на выходе получим скорость! 1 импульс - 0,6 км/час, 10 импульсов - 6 км/час, 100 импульсов - 60 км/час и т.д. Но, опять это "НО", как сказал один из главных героев любимого фильма из детства "Айболит-66" - "Нормальные герои всегда идут в обход", вот этим путем пойдем и мы, т.е. заменим в формуле Fп на Тп (оно же 1/Fп), в результате получим:

V=0,6/Тп (км/час)

Возникает законный вопрос - "ЗАЧЕМ?". Напрашивается еще одна цитата: "А я объясню!" ("Ирония судьбы, или с легким паром"). Дело в том, что как любой цифровой прибор, нашему спидометру присущи те же недостатки - погрешность. Может кто помнит, обычно пишут: "+/- 2 знака мл.разряда" (например). Так вот, чтобы уменьшить, всякие там, погрешности умные люди придумали "складывать и умножать" (шучу), накапливать и усреднять. Теперь посмотрим, сколько нужно времени, чтобы усреднить 2 показания, ну скажем на скорости 60 км/ч. При первом способе получается: 2 временных отрезка по 0,6 сек - итого 1,2 сек, авто при этом проедет примерно 33м. (временем выполнения сложения-деления можно пренебречь) Второй способ нам дает: 2 интервала по 10 мс - итого 0,02 сек, авто проедет - 0,33м. Вот поэтому в программе происходит накопление и усреднение 8-ми отсчетов скорости. Почему 8? Просто удобнее усреднять, не мне - микропроцику. Тогда зачем я тут подробно описывал первый способ расчета? А чтоб было, вдруг кому-то понадобится! Что? Забыл про одометр? Ну, там все просто: считаем импульсы, делим на 6 - получаем метры, потом делим на сто - сотни метров (нужны для учета суточного пробега), еще на 10 получили - км. Как вы поняли в девайсе всего два счетчика пробега: полный и суточный. Опять же, количество счетчиков ограничено только моей фантазией (или ее отсутствием) и теми самыми 19200 тиками (по секрету скажу - тиков ушло примерно 1/3), можно конечно добавить счетчиков, прицепить часы на DS1307 и считать км за 1 час, скажем, или расстояние от работы до магазина с пивом, но зачем?

Глава 4. Описание работы, или "а оно вам надо?"

Основная часть схемы изображена на рис.1.И так, что у нас в наличии:таймеры: Т0, Т1, Т2 - отлично,аппаратный TWI - пригодится,1 свободная нога от АЦП - вполне достаточно,есть еще ноги для организации внешних прерываний,ну еще куча всего - оно нам не пригодится, по крайней мере в этом проекте.

Основную работу выполняет Т1, заполняет время между 2-мя нарастающими фронтами от приходящих импульсов датчика скорости, импульсами 1МГц (считать удобно: 1 импульс - 1 мкс) попутно подсчитывая их (импульсы от датчика). Работает он в режиме ICR, и использует 2-а прерывания, собственно Input Capture1 Interrupt Vector и Overflow1 Interrupt Vector, второй нужен только для расчета скоростей ниже 10 км/ч, к сожалению на таких скоростях Т1 успевает переполняться и не один раз, поэтому и переменная 3-х байтовая. На счетчике Т2, работающем в нормальном режиме, организовано формирование интервалов времени для динамического отображения информации на 7-ми сегментных индикаторах и вывода данных на LCD (здесь все понятно, пояснить нечего). Т0 - тоже, ничего особенного режим Fast PWM, управляет ключем регулирующим яркость свечения индикаторов. АЦП - меряет напругу на переменном резисторе R7, выравнивает результат влево, и записывает его в OCR0. Ну что еще? Гальваническая развязка входов МК от бортовой сети авто, так проще, ключ на элементах VT5,VT6 (если кому-то больше нравятся полевики, пожалуйста - можно и на полевике) нужен только для того, чтобы процик успел записать данные по километражу в 24С04, после выключения зажигания. Забыл пояснить Vп - цепь питания постоянно находящаяся под напряжение ботовой сети , Vз - цепь питания, на которой напряжение бортовой сети появляется после включения зажигания и соответственно пропадающее после отключения оного.

Для эстетов на выводах PC3, PC4 организован вывод скорости до 200км/ч с дискретностью 2,5км/ч на линейку светодиодов (рис.3), всего-то: 10 - 74ALS164, 81- светодиод (один светится постоянно изображая "0км/ч), но это на любителя (кто надумает лепить сие безобразие - не забудьте поменять источник питании на более мощный, а если и яркость регулировать захотите - то и транзистор на ШИМе.)

Питается все это безобразие от преобразователя (рис.2) на МС33063А, заменять на, что-то типа 7805, не рекомендую. Девайс кушает около 0,2А и на 7805 будет рассеиваться мощность около (14,5В-5В)*0,2А = 1,9Вт, многовато, греться будет как "собака", плюс еще тепловой режим под панелью авто, без радиатора не обойтись.

Эпилог.

Вот в принципе и все. Работка скромненькая, но я честно старался.Не пинайте слишком сильно - в конкурсе участвую первый раз, да и "писатель" я начинающий.С надеждой на вашу благосклонность.

Файлы:Прошивка МК.

cxema.my1.ru