Каталог статей

Главная » Все схемы » Схемы устройств на микроконтроллерах » Устройства на микроконтроллерах

Выбранная схема!!!


3198
Цифровой спидометр.


Глава 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Вт, многовато, греться будет как "собака", плюс еще тепловой режим под панелью авто, без радиатора не обойтись.

Эпилог.

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

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




Источник: http://radiokot.ru/circuit/digital/measure/27/
Категория: Устройства на микроконтроллерах | Добавил: brys99 (18.11.2011) | Автор: Олег Петрович
Просмотров: 9987 | Теги: Цифровой спидометр. | Рейтинг: 0.0/0


Всего комментариев: 0

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

ьте свои комментарии !!!!

Имя *:
Email:
Код *:

Copyright Zloy Soft (Company) © 2008 - 2024