Код спидометра для 6-ти импульсного датчика скорости. 2 две переменные
PHP код:unsigned long micros_sp = 0;
volatile int sp;
void setup(){
attachInterrupt(0, speedometr, RISING);
}
void loop(){
............................
............................
}
void speedometr(){
sp = (600000.0 / (micros() - micros_sp)); //600000.0 - 6 имп./м 1000000.0 - 10 имп./м и т.д
micros_sp = micros();
}
Последний раз редактировалось Frud; 24.10.2013 в 14:29.
А че ее рисовать? На второй цифровой пин подаешь сигнал датчика, ограничив амплитуду сигнала до 4,5 В делителем или оптопарой и притянув вход к земле. Этот код работает с датчиками у которых прямоугольный сигнал, и частота сигнала соотносится со скоростью.
Последний раз редактировалось Frud; 24.10.2013 в 17:08.
К сожалению штатного датчика у меня нет, сделал сам, но суть не в этом. Длину импульсов измерять - не вариант по нескольким причинам, одна из которых - лишняя нагрузка, а другая - разные датчики по разному работают... некоторые выдают голый меандр, т.к. мозг авто занимается всей обработкой и фильтрующие компоненты именно в нем, а некоторые - готовые "столбики".
Ну вот в один из моментов разница станет отрицательной (или максимальным значением в случае с UNSIGNED переменной). Я понимаю что в большинстве случаев - не критично, но если, например, делать круиз-контроль, то такой скачок может сбить систему... короче - маленький баг, которые в одной системе не заметен, а в другой - камень преткновения...
ЗЫ: делать код, в котором присутствует пусть и маленький, но косяк - не есть хорошо, тем более на него забивать... в результате получаются бешеные Лехусы-Тойоты...
Оцените величину этой лишней нагрузки.
Измеряется не длина импульса, а период. Разницу осознаете? Поэтому скважность и форма импульса значения не имеет, хоть синусоида. Что такое "столбики" я не понял, но если имеются в виду аналоговые датчики, то их значения можно измерять на аналоговом входе, а мой код для импульсных датчиков, каких подавляющее большинство.
Что мешает использовать абсолютное значение этой разницы без учета знака? Если если система сделана с косяком и ее может сбить скачек, то нафиг такая система нужна. Такие системы делают с обязательной защитой от случайных недостоверных значений датчиков.
Понимаю уже 10 лет прошло) Но этот код который у меня заработал более менее. Экспериментально выставил 14 имп./метр скорость совпадает. Но скорость скачет в пределах 3х км и вместо нуля часто показывает 2 Км. И все же как правильно подключать датчик спидометр к мк. Подключил через оптопару. Получил не работающий штатный спидометр.
Всем привет. Очень интересна данная затея. Прошу помочь со схемой. Если будет хоть какой-то рисунок ,что куда подключать и какие номиналы радиодеталей нужны буду очень признателен. Имею датчик на мосту с 2мя проводами. Удалось считать импульсы подключив по такой схеме Вложение 17691 но параллельно со штатным спидометром данные не получались. Подключил 3м провода многожильного МГТФ с сечением 0,7мм и скорость дуня уже не показывала. Помогите, ткните носом.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)