настройка шим по датчику
- Войдите на сайт для отправки комментариев
Вс, 09/09/2018 - 01:33
всем доброго времени
самому в голову ни чего не приходит как добавить
int mafvih = 9; // выход int mafvhod = 3; // потенциометр подключен к выходу 3 int val = 0; // переменная для хранения значения входного сигнала маф int liamda =2; // вход лябды int valL = 0; // переменная для хранения сигнала лямбды void setup() { pinMode(mafvhod, INPUT); // установка порта на выход } void loop() { val = analogRead(mafvhod); // считываем значение с порта, подключенному к потенциометру analogWrite(mafvih, val / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255 valL = analogRead(liamda); // считываем значение с порта лямбды if (valL <= 82) { } else if (valL >= 123) { } else { } }
смысл такой
на mafvih вышло значение например167
форсунка брызнула определенное количество топлива оно сгорело
датчик liamda померила смесь выхлопа показалнапример 140
нужно чтоб при следующем цикле на mafvih пришло на 1 меньше тоесть 166
liamda опять мериет показывает 124
значит опять уберает 1 с mafvih
или если liamda померила например 60
то mafvih должен прибавить 1
и так далее
я понимаю что для этого надо написать отдельную функцию которая будет срабатывать по условию liamda
всем доброго времени
самому в голову ни чего не приходит как добавить
смысл такой
на mafvih вышло значение например167
форсунка брызнула определенное количество топлива оно сгорело
датчик liamda померила смесь выхлопа показалнапример 140
нужно чтоб при следующем цикле на mafvih пришло на 1 меньше тоесть 166
liamda опять мериет показывает 124
значит опять уберает 1 с mafvih
или если liamda померила например 60
то mafvih должен прибавить 1
и так далее
я понимаю что для этого надо написать отдельную функцию которая будет срабатывать по условию liamda
1. команда analogRead без программного обработчика - (фильтра усреднения) - полная лажа. Будут прилетать случайные помехи, которые будут портить картину. Рекомендую использовать алгоритм кольцевого буфера.
смысл такой
на mafvih вышло значение например167
форсунка брызнула определенное количество топлива оно сгорело
датчик liamda померила смесь выхлопа показалнапример 140
нужно чтоб при следующем цикле на mafvih пришло на 1 меньше тоесть 166
liamda опять мериет показывает 124
значит опять уберает 1 с mafvih
или если liamda померила например 60
то mafvih должен прибавить 1
и так далее
я понимаю что для этого надо написать отдельную функцию которая будет срабатывать по условию liamda
Вы не можете написать на Си ровно потому, что не можете сформулировать, что Вам нужно, по-русски.
Соответственно, и помочь Вам проблематично потому, что непонятно, чего Вы хотите.
Постарайтесь подробно (без всяких "например") написать по русски, как должна работать программа. И после того, как Вы это сделаете, перевести с русского на Си окажется совершенно элементарным делом.
PS. И еще: предложения принято начинать с заглавной буквы и заканчивать точкой. Если Вы не измените Ваш крайне неряшливый стиль на что-то более вменяемое, компилятор никогда не сможет понять, чего Вы хотите. Впрочем, окружеющие - тоже.
Я понял я,постараюсь сформулировать правильно .
Спасибо .
есть вторая часть прибора которая будет регулировать количество топлива в зависимости от сигнала с (В.К.)
должно получится так
Доброго времени.
Написал скетч почти всеработает как надо но есть одно но и не пойму что не учел.
По моему замыслу корекция должна происходить до тех пор пока не установится диапозон напряжения на Датчике Кислорода (0,46до 0,49).
А получается что корекция происходит один раз в момент перехода в большую или меньшую сторону .
Прошу помощи!
Лямбда зонд, (старый, пороговый, циркониевый, бошевский) это источник напряжения (гальванический элемент).
Выдаваемое им напряжение изменяется скачком.
Бедная смесь 0.2 Вольта, богатая 0.9 Вольта.
Поэтому есть смысл использовать компаратор с порогом 0.4-0.5 Вольта с гистерезисом 0.1.
Тогда уходим от аналогового входа на цифровой и пока там единица уменьшаем время впрыска с каким-то шагом, а когда там ноль- увеличиваем.
А диапазон (0,46до 0,49) вы там не установите никогда.
Для этого придумали аналоговый датчик кислорода.
Добрый вечер . У меня на лямбде весь диапозон как мне надо
я сегодня проверил
Добрый вечер , я учел все что вы мне написали, написал на бумаге что мне нужно по пунктам и вот что получилось .