Включение и запуск
- Войдите на сайт для отправки комментариев
Здравствуйте уважвемые форумчане. Большая к вам просьба, напривить в нужное русло ибо я совсем новичок, но усердно стараюсь изучать програмирование ардуинки. Нужна реализация включение зажигания и запуск двигателя нажатием на одну кнопку на дисплее nextion. попробую пошагово обьяснить. На дисплее только одна кнопка, которая переает в ардуинку код нажатия и отжатия кнопки (в дисплей не лезем)
1. Включение и отключение зажигания зажигания - нажанл на кнопку включилось зажигание, повторгое нажатие отключает его.
2. пуск двигателя - Включем зажигание нажатием кнопки на дисплее, жмем педаль тормоза и держим, нажимая эту кнопку еще раз и запускаем двигатель.
3. остановка двигателя
По первому варианту я смог сделать используя if else. но реализуя пуск двигателя тем же методом - начинается дурдом. Пуск стартера должен быть либо по времени либо пока не отпуститшь зажатую кнопку на дисплее. В общем в любом случае я запутался. Использую блок реле для ардуинки что бы включать нужное в автомобиле.
Как и каким методом это можно более правильнее реализовать используя ардуинку? просто направьте - буду изучать. От примеров конечно тоже не откажусь) . заранее спасибо
Когда включаете зажигание в первом пункте меняете состояние "системы" с 0 на 1 (например).
Крутитесь в лупе (ну или где-то там еще) и ждете нажатия на "кнопку". Как только нажали проверяете состояние системы, если 1 то надо завести, а для этого надо проверить чтобы тормоз был зажат и вот если это все выполнено то запоминаете начальное millis, включаете реле на запуск и изменяете состояние системы с 1 на 2. Далее опять же в лупе смотрите если состояние системы 2 и millis-начальное millis меньше, например, 3000 то ждем дальше, если больше то выключаем стартер и переводим систему в состояние 3 (завелась).
Это в самом простом случае, а так надо следить чтобы она реально завелась, например, по оборотам двигателя. Ну и предусмотреть возвраты в другие состояния. Ну и если надо крутить стартер пока кнопка зажата добавить, я не знаю как там у некстион реализован тач.
Сигнал из дисплея о нажатии кнопки такой - 65 0 1 1 ffff ffff ffff, если кнопку отпустить то такой - 65 0 1 0 ffff ffff ffff.
В общем я скинул тот код что я написал. Как добавляю включение стартера, не хочет работать корректно. И по поводу millis - не могу понять как он работает и задержку включенного стартера не могу оформить. Я еще скорее всего с переменными что то намудрил, ведь можно использовать не только int.
Я искренне надеюсь, что все это не будет ездить по дорогам общего пользования.
Я искренне надеюсь, что все это не будет ездить по дорогам общего пользования.
это будет бомбить Туву грузовыми космолётами.
Я искренне надеюсь, что все это не будет ездить по дорогам общего пользования.
Если пытался чем то помочь, то неудачно... ПО-мойму я писал уже, что новичок и что изучаю все постепенно. Лучше бы нормально указал на ошибки или просто молчал, чем пустыми словами тему забивал.
ну ваш скетч лучше написать так
ну ваш скетч лучше написать так
Спасибо.
При проверке скетча, программа ссылалась на 42 строку brake1, я исправил еденичку и ошибка пропала. Залил, работало только включение и отключение реле зажигания. Судя потому что в 21 строке brake1=0, то в 42 строке исправил на !brake1 (я же жму на педаль тормоза). Залил, при нажатии на кнопку сразу на секунду срабатывает реле стартера и одновременно включается реле зажигания. с 47-50 строки убрал else, залил, при нажатии срабатывает сразу два реле. Ребят, может для реле стартера сделать отключение по таймеру через millis? Я просто как не пытался, не могу понять как правильно работать с millis(
Из меня плохой советчик. 1) у меня нет nextion 2) мой стиль не понятен для новичка, а значит бесполезен вам http://arduino.ru/forum/programmirovanie/klassy-arduino-po-qwone-dlya-chainikov
В самом простом варианте должно быть что-то типа такого. Но тут еще работать и работать. Надо проверять что двигатель реально завелся (по датчику масла или оборотам или как угодно).
Penni, огромное тебе спасибо. буду разжовывать всю информацию. Я как то думал сделать через switch case, но пока моих знаний и практики в этом не хватило. И все же я так и не могу понять millis)
Если пытался чем то помочь, то неудачно... ПО-мойму я писал уже, что новичок и что изучаю все постепенно. Лучше бы нормально указал на ошибки или просто молчал, чем пустыми словами тему забивал.
Лучше кому?
Тому водителю, которому Вы из-за отказа техники создадите аварийную ситуацию?
Не нужно вмешиваться в работу систем, от исправности которых зависит жизнь людей.
[quote]
Лучше кому?
Тому водителю, которому Вы из-за отказа техники создадите аварийную ситуацию?
Не нужно вмешиваться в работу систем, от исправности которых зависит жизнь людей.
[\quote]
Не стоит уже так драматизировать, я не настолько глуп , что бы впаривать это в чей то автомобиль. Мне что бы понять ардуинку и основы программирования проще через подобный проект. От того что я пересмотрел видосы и прочел статьи по ардуино - тяжело еще разбираться. И даже если в дальнейшем я захочу установить для тестирования подобное в автомобиль, то это будет лично мой автомобиль и всего лишь как дополнительное оборудование, не нарушая основные узлы работы.
Penni, еще раз спасибо, я вроде разобрался в коде. Ты прав, нужно думать отключение стартера по сигналу из авто, но что то получается очень много релюх, в автомобиле то 12 вольт, а ардуинка принимает 5. Как еще можно подать на ардуинку 5в из 12в?
Оптроном сигнал, стабилизатором - питание
А вот в плане защиты? В случае выхода из строя того же стабилизатора, не пойдет 12в в ардуинку? И хватит ли корпуса для охлаждения стабилизатора или вешать придется алюминиевое охлаждение
Lm2596
Penny, такой вопрос. Получается интересная ситуация с тормозом. Педаль тормаза я имитирую подавая на пин 5 вольт из ардуинки, когда я отключаю 5в , то еще в течении 5-8 секунд все равно активен пин педали тормоза, так как ардуинка запускает реле стартера. Вроде лишенго ничего в коде, но вот как то старрно себя ведет
Надо подтянуть вход к минусу. У вас подтяжки вообще не было, та строчка что лоу запысывает в пин это не подтяжка а просто начальное состояние пина. Подтяните через резистор на землю и все должно быть нормально
спасибо большое. Резистор как я понял на 10кОм