Вложений: 1
Преобразовать частоты для спидометра
Подскажите пожалуйста, как сделать на Carduino преобразователь частоты импульсов датчика скорости спидометра, датчик выдаёт 10 импульсов за оборот, а нужно чтобы было 8, одонометр работает по подсчёту количества импульсов, а спидометр по частоте. Нужен соответственно преобразователь частоты. Я так понимаю что на Carduino это не проблема сделать но в программировании и микроконтроллерах не силён, подскажите как написать программу под эту задачу.
вот таблица значений, первая частота что должно быть на выходе, вторая что есть на входе.
Re: Преобразовать частоты для спидометра
Если упрощенно сделать то Ардуино дожен принимать и подменивать импульсы, при подмене импульсов пропускать каждый пятый импульс. Одометр точно будет без погрешности работать , а вот спидометр незнаю, нужно пробовать
Re: Преобразовать частоты для спидометра
Если просто пропускать импульсы то стрелка спидометра начинает дёргаться, нужно именно преобразовать частоту, меняя время каждого импульса или промежутки между импульсами
Re: Преобразовать частоты для спидометра
Тогда можно так, принимаем импульс и считаем его длительность, полученную длительность умножаем на коэффициент 1,25 и выдаем импульс с новой длительностью
Re: Преобразовать частоты для спидометра
Цитата:
Сообщение от
Chip
Тогда можно так, принимаем импульс и считаем его длительность, полученную длительность умножаем на коэффициент 1,25 и выдаем импульс с новой длительностью
врятли так получится, будет наложение импульсов,
Re: Преобразовать частоты для спидометра
Какое наложение если мы рвем цепь датчика, с коробки пускам на вход ардуино , а с выхода ардуино на спидометр.
Re: Преобразовать частоты для спидометра
про цепь понятно, я про то что будет постоянный сдвиг на 1.25, таймеры будут неодновременно запускаться и останавливаться, и через несколько импульсов произойдет перескок, один таймер обгонит другой, впринципе ничего страшного не произойдет, просто второй таймер будет отсчитывать два раза одно и тоже время, а показания первого таймеры потеряются. :)
Re: Преобразовать частоты для спидометра
На самом деле есть несколько вариантов подсчета времени, выкладываю один из них. Данным способом можно подсчитывать и в тоже время выполнять любые операции.
PHP код:
unsigned long math_time,old_time,real_time;
void setup()
{
Serial.begin(115200);
}
void loop()
{
delay(500);
real_time = micros();
math_time = real_time - old_time;
old_time = real_time;
Serial.println(math_time);
}
Re: Преобразовать частоты для спидометра
Вот пример того как подобное реализованно на другом микроконтроллере:
Цитата:
Собственно 12F675. На лапу внешнего прерывания заводим сигнал с вазовского датчика и таймером считаем сколько тиков длится импульс и общий период. Пишем в переменную. Это было в прерывании. В основном цикле умножаем на нужный коэффициент и програмным таймером выводим на другую лапу то, что нужно. И скважность и период получаются пропорциональны. Если взять другой пик с CCP, то программа еще проще станет. Насчет общей погрешности не тестировал, т.к. пока все происходит "на столе".
Можно сделать это на Carduino ?
Re: Преобразовать частоты для спидометра