Система антипробуксовки для полного привода
Хочется реализовать такую систему,
датчик вращения на каждом из колес (индуктивный),
раздельное торможение каждого из 4-х колес(посредством доработанного блока ABS).
Требуется измерять частоту вращения 4 колес, и если одно колесо имеет большую частоту,
выдавать сигнал пропорциональный разнице, для управления тормозом этого колеса.
Насколько я понимаю мне 4 сигнала от датчиков необходимо обработать,
затем сравнивать частоту от каждого датчика с 3-мя остальными (усредненные).
В готовых системах ABS, ASP для измерения частоты вращения колеса используют по 1му датчику на колесо.
Направление всегда в одну сторону
Таким образом 4 цифровых входа по идее достаточно.
По выходам,
управлять нужно 1м клапаном на колесо(Но импульсно что бы скорость колеса была не нулевой),
и мотор - насосом для нагнетания тормозной жидкости.
Длительность импульса управления тормозом завистит от времени за которое скорости всех
колес выровняются.
Скажем 1 колесо-частота 300гц, 2е - 300Гц, 3е -300Гц, 4е -400Гц.
Включаем Насос-мотор и одновременно с этим подаем импульсный сигнал на клапан 4 притормаживая его.
Как только частота всех колес равна, отключаем насос-мотор и клапан торможения 4.
Следовательно необходимо 4 выхода на клапана и 1 выход для насос-мотора.
Итого нужно 4 цифровых входа и 5 цифровых выходов.
Подсчет импульсов пока думаю делать с помощью внешнего прерывания.
Правда в купленной мной Nano 2 пина позволяют делать, видимо прийдется покупать Mega.
Каким образом лучше подключить датчики к Ардуино? какие варианты для создания такой системы могут быть? Подкиньте ссылок может делал кто подобное?
Re: Система антипробуксовки для полного привода
Алгоритм работы предполагаю следующий
InPin: Rpm1wheelInt //импульсы от датчика ABS
Rpm2wheelInt
Rpm3wheelInt
Rpm4wheelInt
OutPin: Brake1Bo //Сигнал управления клпаном тормоза
Brake2Bo
Brake3Bo
Brake4Bo
BrakeMotorBo // Управление нагнетающим мотор-насосом
Определить rpm1;rpm2;rpm3;rpm4 //Меряем количество импульсов скажем за 100мкс
Определить rpmMid1=rpm2+rpm3+rpm4/3 // Сравниваем импульсы с каждого колеса с усредненными остальными 3-мя
Определить rpmMid2=rpm1+rpm3+rpm4/3
Определить rpmMid3=rpm2+rpm1+rpm4/3
Определить rpmMid4=rpm2+rpm3+rpm1/3
Если rpmMid1 != rpm1 then Brake1Bo=true; // Если есть разница включаем соответствующий клапан управления тормоза
rpmMid2 != rpm2 then Brake2Bo=true;
rpmMid3 != rpm3 then Brake3Bo=true;
rpmMid4 != rpm4 then Brake4Bo=true;
Если
(Brake1Bo OR Brake2Bo OR Brake3Bo OR Brake3Bo) = true // включаем мотор насос для нагнетания тормозной жидкости
then BrakeMotorBo = true;
Re: Система антипробуксовки для полного привода
Цитата:
Каким образом лучше подключить датчики к Ардуино? какие варианты для создания такой системы могут быть? Подкиньте ссылок может делал кто подобное?
Я бы использовал прерывание PCINT