Официальный сайт компании Arduino по адресу arduino.cc
При определенных оборотах включить реле
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Всем привет.
Я пока новичок.
Суть задания такова.
Имеется: Arduino Nano, Реле с развязкой.
Имеется карбюраторный ДВС. Надо при оборотах более 2700 об/мин включить соленоид фазовращателя на впускном распредвале (замкнуть реле по сути). Соответственно при менее 2700 выключить.
Сигнал буду брать с коммутатора зажигания (импульсы +12В).
Двигатель четырехтактный четырехцилиндровый. То есть 2 искры за оборот, то есть при более чем 90 имп/с надо замкнуть реле. При менее разомкнуть.
Копался в нескольких темах на форуме, в частности:
http://arduino.ru/forum/programmirovanie/pomogite-vyschitat-oboroty
http://arduino.ru/forum/programmirovanie/podschet-oborotov
http://arduino.ru/forum/ishchu-ispolnitelya/napisanie-sketcha-dlya-uprav...
Все вроде понятно, но мне нужна максимальное быстродейтвие, без всяких задержек (а там в скетчах народ их использует активно).
Может кто посоветует как поступить правильно?
Спасибо.
надо использовать прерывания. датчик к ардуине надеюсь подключите
1/90об=11,1мс
итого если считать время между импульсами и оно будет меньше чем 11мс включить рэле
должно получится что то вроде этого
хотя я бы заменил digitalWrite на более быстрое прямое управление портом
Спасибо. Завтра проверю на генераторе частоты и отпишусь что и как.
А не ли смысла ввести гистерезис на отключение?
имеет. но я просто подал идею как делать и набросал код
Я не знаток в данном программировании, но вы уверены, что код верный? Реакции ноль на программу.
Почему кусок loop пустой?
а в loop что делать если все делается в прерывании
а вы точно все правильно подключили?
если да просто увеличьте время между тиками с 11 до 100 например и проверьте
а вы сигнал с генератора подавали или просто контакты замыкающиеся подцепляли. если второе еще подтяжку надо делать
только таблицу надо переделать ( с двухтактной таблицы просто так 0/1 расставил )
датчик искрообразования на датчике Холла ? и какие максимальные обороты движка ?
вообще таблицу надо убрать.... оборот - 11111 mkS, счётчик за это время насчитает 2778 тиков по 4 mkS
а в loop что делать если все делается в прерывании
а вы точно все правильно подключили?
если да просто увеличьте время между тиками с 11 до 100 например и проверьте
Все нормально, только на частоте 82-97 Гц реле постоянно щелкает.
Вот так работает прекрасно.
только таблицу надо переделать ( с двухтактной таблицы просто так 0/1 расставил )
датчик искрообразования на датчике Холла ? и какие максимальные обороты движка ?
Сигнал беру с выхода коммутатора, что идет на катушку зажигания.
Максимальные обороты около 8000 об/мин.
Выше написал - все работает отлично, всем спасибо.
только таблицу надо переделать ( с двухтактной таблицы просто так 0/1 расставил )
датчик искрообразования на датчике Холла ? и какие максимальные обороты движка ?
Сигнал беру с выхода коммутатора, что идет на катушку зажигания.
опасно... в этой точке может быть до 400 V в амплитуде... не лучше ли брать сигнал со входа коммутатора ?
Обязательно на входе Ардуины предусмотреть простенький RC-фильтр, и (крайне важно!) 5-вольтовый стабилитрончик, дабы отсекать ВЧ взбрыки, которых в моторном отсеке живет не мало.
При съеме сигнала с выхода коммутатора лучше предусмотреть "гальваноразвязку" - просто намотать на провод, идущий от коммутатора к бобине несколько витков изолированного провода, например МГТФ 0,15-0,25 (сечение). Число витков подобрать по гарантированному срабатыванию системы с учетом фильтра и стабилитрона на входе, а потом закрепить термоусадкой. Но сигнал с датчика Холла все таки кошернее.
Ардуину связать с массой автомобиля проводом к точке подключения массы акку. Питание - через стабилизатор 7809 (или аналогичный) , с двумя кондеями на выходе - электролит 47-100 мкф 16 вольт и параллельно керамику 0,1 мкф. Если все-таки будут лупить помехи по цепи питания (что вполне вероятно), последовательно в цепь питания, идущую непосредственно на Ардуину (поближе к ней), воткнуть любой дросселек на феррите, и после него поставить еще одну керамику на 0,1 мкф. Разумеется, Ардуина на борту дожна быть в металлическом корпусе. Метода многократно проверена на спортивных моторах. Просто, не дорого, надежно, и ремонтабельно.
> Но сигнал с датчика Холла все таки кошернее.
.....однако тоже через оптопару - приведение импульсов 12..15 V к 5 V.... всё что выше 5 V на пине - когда-нить убъёт пин ардуины :(
Не обязательно через оптопару (но не повредит) - достаточно описанной постом выше цепи из RC и стабилитрона.
если щелкало значит то что включали влияет на обороты. вы сделали гестерезис, что уже предлагали
рад что работает как надо
тут СУ27 предлагал код голый на си не тестировали?
Привет Ребята! Мне тоже нужно такое устройство!
скиньте пожалуйста схему и прошивку. благодарю!
Привет Ребята! Мне тоже нужно такое устройство!
скиньте пожалуйста схему и прошивку. благодарю!
вы не обратили внимания что теме уже третий год)))
Обратил))...Но необходимость появилась сейчас!. может кто помочь?
Так "помочь" или "скинуть схему и прошивку"?
Привет! И то и другое и третье)), готов заплатить за оказанную помощь!
Тогда в раздел "Ищу исполнителя".
а вы тоже маховик перетачивали на холостые в райне 2500? ЭПХХ меняете?
прошивка - пост 13
Вход -
//Прерывание по нарастающему фронту на D2
Огромное спасибо! А что такое d2? Может схемку черканете. Мне не для авто. Хочу на фрезерный станочек поставить.
В качестве базовой платы брать arduino nano 3.0?
На вход D2 подаем импульсный сигнал? Я правильно понял?
прием...
это пин на котором фиксируется нарастающий фронт
смотрим распиновку - да nano v3