Здравствуйте товарищи!
Если видели эту запись ранее — прошу не серчать) (Дубль из БЖ)
Предисловие…
…В ноябре в сообществе «Электронные Поделки» один диванный мечтатель намекнул на то, что люди получающие знания и навыки из интернета, способны только на манипуляцию типа «Копировать — Вставить», а те кто читают книги — красаучеги по жизни. И родилась у меня идея бесполезной по сути доработки, но с инженерным подходом. И использованием информации из интернета и инструментами в этом самом интернете…
Разработка
А вы задумывались на сколько врет спидометр в вашей машине? Я вот задумался… Нет, я знаю, что если обуть резину не стандартную, то будет расхождение фактической скорости и показаний прибора. А мне стало интересно насколько врет спидометр математически.
Немного теории:
В коробке «Волги» стоит 6 импульсный датчик скорости, т.е. на один метр пути, который машина проехала на родных тапках, датчик выдает 6 импульсов. Соответственно чем меньше времени между импульсами, тем выше скорость автомобиля. Вот тут появилась идея использовать для измерения скорости микроконтроллер. Суть проста: считаем время между импульсами с датчика скорости и по формуле считаем скорость автомобиля.
Скорость(км/ч) = 600000/Время между импульсами(микросекунды)
Из следующей картинки я сделал вывод, что нужно измерять длительность одного периода. А это соответственно сумма двух полупериодов (положительного и отрицательного).

Взяв ардуинку и почитав про ее программирование приступил к творчеству. Набросал на бумажке схему работы(напридумывал всякого с запасом), потом открыл сайт easyeda.com/ и пошла возня. На схеме и спидометр, и тахометр, и вольтметр, и указатель топлива. Прикинул схему:

Тут же развел под нее печатку(прям на сайте)

Заказал под проект ардуинку и дисплей из Поднебесной. И пошел писать прошивку. Одних теоретических данных, как оказалось, мало. Собрав первый ходовой макет пошёл тестировать в боевых условиях. Вольтметр на делителе скакал как белка под спидами, бакомер показывал температуру на марсе. Тахометр не подключал, а вот спидометр начал давать показания сдал всех барыг в районе и 4 притона, похожие на правду.

Решил для первой версии устройства оставить только спидометр

Почесал репу и понял, что делать печатку для десятка деталек — прям в лом, да и не влезет она в волговскую приборку. Примерил ардуинку к колодцу лампочки — и как родная она туда вошла. Решено! Делаем модулями и пихаем их в колодцы неиспользуемых лампочек. Место для дисплея уже было придумано давно) Вот так был собран модуль для сигнала с датчика скорости.



Примерно также только с куском макетки и модуль питания. Для тестов урезанной прошивки Собрал второй макет из бутылька от глицерина и скотча.

Работает, показывает, можно собирать.
Сборка



Скетч и все необходимое смогу выложить только в выходные.
Вопросы, комментарии, приветствуются!
Скетч и либа: yadi.sk/d/1EfFpdyb3Rjeot
Комментарии 114
А скетч узреть можно будет когда?
Добавил в конец записи.
Сборка
www.drive2.ru/c/493389076485898677/
Насколько я понял, никакой фильтрации входного сигнала, только отсеивание значений, выходящих за пределы. Много ложных значений выскакивает? Автомобиль ведь источник всевозможных помех, наверняка данные скачут. Есть видео работы?
Видео только то, что в конце этой записи, данные не скачут
Здравствуйте, подскажите пожалуйста, как можно реализовать на ардуинке "умножитель импульсов". Суть такова, с датчика скорости приходит 1 импульс, а на выходи должно быть 3 импульса. Спасибо!
Измеряем длину импульса, умножаем (делим) на нужный коэффициент, выводим на нужный вывод импульсы необходимой частоты и скважности. Есть клон ардуины, называется carduino, как раз позволяет без всякой внешней обвязки принимать сигнал на один пин до 30 в, а так же один токовый выход до 500 мА 25 в типа открытый коллектор, т.е. резюмируя, на этой плате, carduino, можно реализовать сей девайс без применения внешней обвязки вообще.
P.S. длительность импульсов удобнее всего считывать, используя функцию pulseIn(), а вывод импульсов в порт удобнее осуществлять функцией Tone(), вся loop() уместится тогда в пару строк.
carduino.ru/product_info.php?products_id=1918
посмотрел, интересная эта штука, но у нас такое купить нельзя, нужна схема как переделать обычную нану, под измерение импульса с датчика скорости.
я может что путаю… но частотные входы лучше использовать d2, в3…
Не совсем понимаю
у тебя по входу ардуино сигнал скорости счетчик обрабатывает сигнал?
Функция pulseln считает время положительных и отрицательных импульсов
Fazatronic
у тебя по входу ардуино сигнал скорости счетчик обрабатывает сигнал?
Функция pulseln считает время положительных и отрицательных импульсов
тут не могу спорить… я на флпроге писали проект…так как языков программирования не знаю… и там в мануале по нано сказано… что если нужен какой счетчик, то это только д2 и д3.
Я код писал в arduino ide на урощеном C
вопрос такой… у тебя вход работает как прерывание?
Нет, в однопотоковой программе нет смысла в прерываниях
Fazatronic
тут не могу спорить… я на флпроге писали проект…так как языков программирования не знаю… и там в мануале по нано сказано… что если нужен какой счетчик, то это только д2 и д3.
Это называются внешние прерывания.
есть варик избавится от обвязки по входу, транзюки с резюками…
посмотри у меня бж, я там старт стоп собирал…
есть схема печатки…
интересно было бы на скетч посмотреть
а почему бы не сделать корректор штатного спидометра?
В штатном спидометре достаточно шкалу перерисовать, но она будет не очень симметричной
Тоже думаю о чем то подобном… только еще и тахометр забахать…
Вопрос потянет ардуинка полноценно 2 обработчика прерываний и вывод на LCD ну или управление сервами на крайняк? или смотреть в сторону lolin32… там уже 240 мгц частота…
2 обработчика потянет без проблем
Кстать можно два олед дисплея посадить на одну ардуинку. Надо только в одном дисплее резистор подпаять тем самым изменив адрес… Ну и ручками в коде править адрес… В нете полно примеров. Но если в задаче много исчислений, то не потянет ардуинка, зависнит. Такт то у нее один, нежели у стм32… Вот такие пушистые котята!
Что-то большая погрешность у стрелочного спидометра. У меня на 110 погрешность в 6 км/ч. Установлен бортовик и жена по gps сравнивала все показатели. Бортовик в нафигатором цифра в цифру показывали.
Это на каком автомобиле?
У меня калина. Но так же шестиимпульсный датчик скорости
Дело не в количестве импульсов, а по большому счету как нарисована шкала)
До этого была девятка спидометр врал на 120 на 10км/ч если сравнивать с gps. Тогда же проверяли показания спидометров с тестя Волгой (31105 с новым салоном) показывали примерно одинаково, насколько можно выровнять скорость двух авто на ходу.
Сравни показания с gps, для спокойствия.
Ток то gps врет
респект
Пасиб)
Молодец! А тахометр, бакометр и вольтметр со временем допилишь :) Будет минобортовой компьютер :)
Все может быть)
PASHASV
Молодец! А тахометр, бакометр и вольтметр со временем допилишь :) Будет минобортовой компьютер :)
микроскоп в комплекте)))
:) :) :) На ардуинку и нормальный экран подцепить можно, только не Нано нужна, а Мега :)
отличная работа, респект и уважуха
ЗЫ. я, в библейские времена, когда когда банки с-под пыва были исключительно 3- литровыми стеклянными, (щютка юмора), когда рассыпалась шестерня привода спидометра в коробке, чтобы не разбирать коробку, делал следующее:
на выходе коробки на элластичную муфту крепил под болты пластину с магнитом. Неподвижно на коробке крепил геркон.
Сигнал с геркона подводил к вело-кампутеру.
домкратил колесо, подкладывал ленту рулетки, опускал колесо ( это важно для точности, чтобы сжалось), и так измерял длину окружности. Крутил колесо, считал число импульсов с датчика на 10-20-30 оборотов, и таким макаром высчитывал и вводил в велокампутер пробег на один оборот датчика. Точность получалась очень высокая, сравнивали с GPS и с ментовским феном — погрешность менее 0,1км/ч
Спасибо)
Во времена цифровых велокомпьютеров, банки уже давно перестали быть трехлитровыми. Они стали сильно помельче и из "люминия".
Наша велобаза, благодаря хорошему тренеру, була неплохо обеспечена новинками. Знаю о чем пишу.
это щютка юмора была жеж.
ну а проделал я это, когда велокомпы только появлялись в продаже, году эдак в 94м.
Вот как раз на рабочей Волге спидометр курнул. И на Оку мысли собираю — совсем уж убогая приборка на ней.
Все хорошо. Только ардуинку я использую, для создания и отладки проекта. А дальше берем мегу 8, 32, 168 …, зависит от объёма программы, прошиваю и собираю все на плате. Просто ардуинку жалко, а каждый раз ждать из Китая другую, муторно.
Я заказал кучку, да и у нас в городе они около 200 рублей стоят. Возится с разводкой и голыми мк имеет смысл, если изделие не штучное, а для "наколенного diy" — ардуина в самый раз
Я не говорю, что применять ардуино плохо или не правильно. Просто мне ардуино жалко. У нас мини стоит 350 руб, а в Китае 100 руб. и хапугам платить 350% как то руки не подымаются, а с Китая долго ждать. Извините, я не хотел вас обидеть или упрекнуть, просто я делаю так как написал.
Да я и не думал обижаться) Просто можно заказать штук 10 под небольшие проекты, у нас 90 рублей голая атмега стоит, поэтому для себя я решил что мне проще похоронить в приборке дисплей за 150 рэ и ардуинку за 110
Я все это понимаю, только на пенсию не разгонишься, а электронику люблю.
да причём тут пенсия, просто избыточно запихивать целую ардуину, если нужен только проц. Да и сами процы в ардуине избыточны для 99% проектов, в большинстве случаев достаточно Меги8, а она с Китая чуть дороже той же тини13, что-то около 22-25 рублей
kabalichi
Я не говорю, что применять ардуино плохо или не правильно. Просто мне ардуино жалко. У нас мини стоит 350 руб, а в Китае 100 руб. и хапугам платить 350% как то руки не подымаются, а с Китая долго ждать. Извините, я не хотел вас обидеть или упрекнуть, просто я делаю так как написал.
так закажите заранее что б не ждать долго)))
Идея отрестайлить старый автомобиль на новый лад прекрасна, но масштаб задумки удручает… Вот сделать бы всю приборку в современном стиле — нормальное решение. А вот это с мелочью возиться…
Была придумана задачка, а потом решена. Для переделки всей приборки нужно сначала по отдельности разработать все для каждого прибора, потом заменить всю приборку на дисплей, а в бюджет в 350 рублей это не укладывается) А делалось все просто для самого процесса.
Вставлю свои 5 копеек… А если не секрет — зачем так наворачивать задачу? "… чем меньше — тем больше, полупериод, длительность импульса…"
Большая часть трудностей отвалилась бы, если б сразу сформулировать ТЗ по другому:
— интервал времени для измерения — фиксированный
— ПРОСТО считаем количество импульсов за этот период (тупой инкремент счетчика)
— по полученному числу выводим скорость…
Собирал энное кол-во спидометров таких для разной техники — все работает. Пояснение "на пальцах":
— на вход МК — импульсы с датчика
— таймер на интервал измерения
— прерывание "по изменению состояния порта" — инкремент счетчика
— прерывание по таймеру — формирование данных для вывода на LCD
— тело программы крутит вывод на экран
фсё, собссно.
Это первый вариант алгоритма, под него был написан скетч даже, но фиксированый тайминг обновления мне не понравился, хотя алгоритм проще
универ закончил в далеком 98… Тогда программистов учили "чем проще — тем лучше" :-(
Меня тоже так учили, а простота — вещь относительная)
Вставлю свои 5 копеек… А если не секрет — зачем так наворачивать задачу? "… чем меньше — тем больше, полупериод, длительность импульса…"
Большая часть трудностей отвалилась бы, если б сразу сформулировать ТЗ по другому:
— интервал времени для измерения — фиксированный
— ПРОСТО считаем количество импульсов за этот период (тупой инкремент счетчика)
— по полученному числу выводим скорость…
Собирал энное кол-во спидометров таких для разной техники — все работает. Пояснение "на пальцах":
— на вход МК — импульсы с датчика
— таймер на интервал измерения
— прерывание "по изменению состояния порта" — инкремент счетчика
— прерывание по таймеру — формирование данных для вывода на LCD
— тело программы крутит вывод на экран
фсё, собссно.
“считаем количество импульсов за этот период (тупой инкремент счетчика)“ — в таком подходе будет большая погрешность или отставание измерений. Для простоты можно было бы опустить описание импульса в статье, просто засекать момент скачка напряжения в одну сторону.
ваша неправда… я же не писал про величину периода измерений?
если считать 5 импульсов, и один "не уместится" — это 20%…
а если 100 — уже 1. При 100 км/ч — погрешность 1 км ;-)
… тем более, что индикация и измерение связаны только сохраняемыми данными
Да, погрешность/отставание именно на низких скоростях. Плюс, как мне видится, длительность подсчета импульсов тоже надо варировать в зависимости от скорости
тогда теряется вся простота этого метода, начинаются ненужные проверки и пересчеты всевозможные…
Я себе на старый мотоцикл делал приборку цифровую: с одного счетчика и спидометр работал, и одометр копил километры, и все работало как надо. При таком разрыве времени исполнения команд МК и реального времени — погрешность минимальная получается
highwalker
“считаем количество импульсов за этот период (тупой инкремент счетчика)“ — в таком подходе будет большая погрешность или отставание измерений. Для простоты можно было бы опустить описание импульса в статье, просто засекать момент скачка напряжения в одну сторону.
Поправлю:считаем количество импульсов за секунду по переднему импульсу! Дабы исключить помехи… Длинна импульса как правило ставится выше 50микросекунд. Помехи не могут длиться выше 30микросекунд, ну а 20 остается в запасе, на жирный день… Так же действует и защита от шумов кнопки.
Вот скетч бы не помешал)
А то делал я подобное, только для тойотодатчика, и в итоге, при использовании микросекунд для подсчёта длительности импульса у меня получалась дикая погрешность после 100 кмч, и при использовании миллисекунд до 100 кмч.
Просто я далек от программирования)))
Скетч смогу выложить только в выходные, когда доберусь до стационарного компьютера, а у Тойоты датчик случаем не на 2500 импульсов на км?
Скорость(км/ч) = 600000/Время между импульсами(микросекунды)
Откуда взялись 600000? Не вкурю
Сейчас не удобно писать с телефона, но в кратце — скорость=0.6/время в секундах, имерение ведется в микросекундах, поэтому умножили на 1000000, вывод самой формулы если очень надо могу расписать позже
Ну да. Счетчик проще писать если в милисекунды перевести… Да и точность почему то выше… У меня тоже на лаче такие параметры латчика… А вольтметр развяжи лучше через транзисторы… Резисторный делитель садит батарею… А питание для транзисторного делителя отдельно на 7805 собери… Потом математику вставь… К примеру 14 вольт бортовая сеть, делитель делит 5вольт на ардуинку… 5вольт делим на 14вольт получается по 0.357142857 вольт на выходе на каждый 1 вольт на входе… Ну это к примеру… Я брал 15 за стандарт…
Вся беда вольтметра — шумы на аналоговом входе, из-за них скачут показания, хотя вольтметр в параллели — показывает нормально
надо усреднять показания, в механическом вольтметре этим занимается масса стрелки и ротора датчика
Я мультиметр подключал. Может мне ардуина с бракованным ацп попалась, но показания прыгали от 8 до 14 вольт, поэтому вольтметр отдельно уже пришел.
Вам для вольтметра надо было делитель поточнее делать. На 1% резисторах. вот например для 10ком — www.chipdip.ru/product0/41486 Да после диода небольшой кондер поставить для сглаживания пульсаций. Значения набирать десятками и усреднять. Вольтметр не скоростемер. В машине напряжение должно быть в рамках 14.4 при работе двигла. Чем больше исходных данных, тем точнее после усреднения
Derden2
Я мультиметр подключал. Может мне ардуина с бракованным ацп попалась, но показания прыгали от 8 до 14 вольт, поэтому вольтметр отдельно уже пришел.
Скорее всего для опорного взято AREF, но не подключено. Надо на мк подавать все питания и земли, в том числе и цифровые
Derden2
Вся беда вольтметра — шумы на аналоговом входе, из-за них скачут показания, хотя вольтметр в параллели — показывает нормально
Шумы подтягивающим резистором глушаться, надо только в конструкте не забыть его прописать что бы учитывалось…
а можно подробности? Как можно на измеряемом канале подключать подтяжки? Подтянешь вверх-будешь мерять постоянно Vcc, потянешь вниз-вычтешь непонятно сколько, а наведёнка как трясла линию вверх-вниз, так и будет трясти
ИМХО
Ну как то так…
Классно. Сам купил арду полгода назад, но никак не пользовал. Сначала загорелся, а идеи нет для применения.
Вот это корень зла, когда нет идей для применения
А вещь конечно хорошая если освоить
Для домашних поделок, да за такие деньги — отличный вариант. Только многие дальше метеостанции не идут.
Сначала идея, тогда она пересилит лень. я в своем субаре куда только не думал применить. Но японцы все нормально сделали, мало места для колхозинга) думал на ДХО применить, а реализовал через ручник проще некуда.
хороший прибор. я тоже задумываюсь над полноценным самодельным спидометром, заодно его можно калибровать под любую резину!
но по планам скорость всё-таки стрелкой- глазу и мозгу привычнее
Было бы желание)
BussT2
хороший прибор. я тоже задумываюсь над полноценным самодельным спидометром, заодно его можно калибровать под любую резину!
но по планам скорость всё-таки стрелкой- глазу и мозгу привычнее
Шаговик и нет проблем)))
датчик 6 импульсов на метр пути, а не рассматривали расчёт 6 импульсов на полный оборот колеса?
В мурзилке написано, что датчик выдает 6000 импульсов на 1 километр пути
Теперь можно сделать автовыключение света в салоне и багажнике (если забыл закрыть, чтобы не разрядилось), и естественною с плавным затуханием и розжигом! )
И GSM дистанционный запуск (можно еще добавить открывание дверей и багажника).
Причем придется еще и делать моторизированную заслонку карбюратора — он же запускается при закрытой заслонке, а потом ее нужно открыть, отслеживая при этом обороты. )
Можно конечно, было бы желание)
10001
Теперь можно сделать автовыключение света в салоне и багажнике (если забыл закрыть, чтобы не разрядилось), и естественною с плавным затуханием и розжигом! )
И GSM дистанционный запуск (можно еще добавить открывание дверей и багажника).
Причем придется еще и делать моторизированную заслонку карбюратора — он же запускается при закрытой заслонке, а потом ее нужно открыть, отслеживая при этом обороты. )
Такими темпами и до радиоуправления недалеко! )))
Врет он на +10% Вот и получается 5 на 50 10 на 100
родной спидометр врёт не "на", а "в". то есть, надо делить, а не вычитать. (в мануале же сказано до +10% погрешность) то бишь на 40 будет 44, а на 150 будет 165
помницца обгонял девятку, глянул в окно ему — там стрелка лежит почти на максимуме… у меня было 140 примерно…
Мысль логичная) Пойду поищу мурзилку по волге
Все уверены про свой спидометр, врущий на 5 км/ч… Да уж… После 90 км/ч (когда врет действительно, на 5 км, идет расхождение в прогрессии, не знаю, правда, в какой) . Инжекторная 3110 при показаниях 140 км/ч по спидометру, реально ехала 128 км/ч…
Примерно так и выходит, после 80 км/ч погрешность больше 10 км.
NAF54
Все уверены про свой спидометр, врущий на 5 км/ч… Да уж… После 90 км/ч (когда врет действительно, на 5 км, идет расхождение в прогрессии, не знаю, правда, в какой) . Инжекторная 3110 при показаниях 140 км/ч по спидометру, реально ехала 128 км/ч…
Угу, так и кладут стрелку спидометра на полностью стоковой машине, а потом не верят что свою конструктивную скорость она преодолеть не способна ) сказано 178 так и выходит +- 5кмч, а по спидометру это реально за 200 ))))
у меня газ 24, и там стрелка прыгает, жутко неудобно, надо будет взять на заметку
Реализуемо, если коробка с датчиком скорости. Если троссовый привод спидометра, тут уже не прокатит
Есть переходник с датчиком холла под трос.
Т.е. трос остается плюс датчик холла добавляется.
marat463
у меня газ 24, и там стрелка прыгает, жутко неудобно, надо будет взять на заметку
если не ошибаюсь, на 24-ках механический спидометр, от тросика работает. У меня так на 31029 даже было)))
marat463
у меня газ 24, и там стрелка прыгает, жутко неудобно, надо будет взять на заметку
прыгает от тросика заедающего.
marat463
у меня газ 24, и там стрелка прыгает, жутко неудобно, надо будет взять на заметку
Поменяйте тросик, его в оплётке где то закусывает
попробую, спс)
простой вопрос: зачем? )) А так — голова работает, руки тоже отуда надо…но всёравно, зачем? ))
Спасибо) Бывает хочется какую-нибудь приблуду сделать просто ради процесса. Можно придумать и сделать, а можно как тот мечтатель лишь мечтать…
А я делаю замену штатного тахометра владимирской панели на привод стрелки микромотором Switec25. Стандартная библиотека не поддерживает микростеп, из за чего видно подёргивание стрелки. В планах и замена привода стрелки спидометра…
Я думал вы сигнал с датчика скорости в приборку скорректируете чтобы стрелка правильно показывала, а тут… на любителя вобщем.
Это хоббийная разработка, ради самой разработки
Тогда вопросов нет.
Вопрос один: на-фига? Ну врет у меня спидометр на + 5-7км\ч и бог с ним ) Смотреть на стрелку гораздо удобнее чем на циферки. А если сильно нужно — посмотрю на циферки бортовика.
В волге с карбюраторным двигателем не предусмотрен бортовик, а вообще это устройство собиралось в развлекательных целях
Ну если только так… )
Практически во всех спидометрах заложена погрешность +5км/ч.
В моем +10-15 в зависимости от скорости
operator6446
Практически во всех спидометрах заложена погрешность +5км/ч.
В России по ГОСТ указатели скорости безнаказанно врут до 12 км/ч. Любой гаишник подтвердит. Они раньше даже не трогали в Мск за езду до 72 км/ч по радару. А вот выше — уже налохмачивали.
одно но.
Практически у всех машин с эбу анализируется не положительный а отрицательный перепад импульсов скорости оборотов и опционально топлива давление и температуры ( шим). Это сделано для того чтобы меньше было ошибок от пороговых шумов в этих сигналах. Т.е. активным считается перепад от 12 вольт до условного нуля бортсети.
Эбу на моем баркасе отсутствует. А на контроллер приходит инвертированный сигнал.
Эбу нету но датчик скорости вы ведь от машин с эбу используете? В таких случаях входная цепь согласования к 5 вольтам выглядит очень просто. Это подтягивающий резистор 10-47 ком к 5 вольтам питания дины и диод типа 4001 -4148 катодом к источнику сигнала. Анодом к входу дины.
У меня через диод на транзистор в ключевом режиме, через него инвертированный пин ардуины замыкается на массу. И на выходе — логические 5в.
Wewelsburg вам дело советует, обойтись ОДНИМ диодом (вместо транзистора) !