Контроллер для кордовых электричек

Маркс

Ну вот, пару часов удалось урвать от работы,
Добился устойчивого одноразового срабатывания кнопок на шилде.
Кнопки аналоговые, много ложных срабатываний при нажатии,
большая задержка при повторном опросе плохо, маленькая задержка еще хуже ))
В общем остановился на 0,1 секунды, кнопка будет считаться нажатой,
если в течении 0,1 секунды сохраняется состояние на аналоговом входе.
Если меньше, на моем шилде успевают проскочить “фантомы”.

VitalikV

Я использую такую , Искра мини. Она уже на 5 вольт, и нет ничего лишнего, а главное вес и размер. Это аналог ардуино мини, которая в оригинале 3,3вольта

RandomJ

Китайская Pro Mini 5V/16M ATMEGA328 тоже пяти вольтовая и дешевле. Искровскую не каждый пионер сможет себе позволить.

RandomJ

Отдельным проводочком от ардуинки на вывод мотора. Как вариант использовать ёмкостной датчик (типа намотать проводник вокруг одного из выводов мотора), но, ИМХО, у АЦП ардуинки не хватит чувствительности без внешней обвязки. А если делать с внешней обвязкой, то проще будет сгородить свою печатную плату. А пока предлагаю отталкиваться от ардуиновского железа mini или nano для таймера и uno с дисплейным модулем для программатора (переплюнем jetibox 😄 ).

VitalikV

Когда, я покупал, искра была в наличии, и не надо было ждать 2-3 месяца, а разница в цене была 100₽. А кнопку может заменить на цифровую? Ее все равно выносить на борт, проводом больше, проводом меньше.

Бургера и джети бокс, мы не переплюнем, так как там эту систему уже много лет отлаживают спортсмены. А вот достойный таймер с программатором, для начинающих, это вполне.

RandomJ

в нашем случае чем проще, тем надёжнее.
Что есть “цифровая кнопка”?
я использую такие
может и крупноваты, но мне удобнее, чем 5х5

VitalikV

Цифровая кнопка, это когда не просто замыкаем на ноль, а например проходит сигнал или падает напряжение, на один шлейф можно разное количество кнопок повесить, с напряжением 4,5-3,5-2,5 вольт. Градация вольтажа любая, хоть через 0,1в , лишь бы контроллер понимал их и обрабатывал правильно.

Еще как вариант, кнопку старт, заменить на тумблер, щёлкнул, питание подал на таймер, отчет пошел, и не надо боятся, что кнопка от вибрации, может сработать как аварийный останов. Не заменяет аварийную перемычку между акб и регулятором.

RandomJ

Мой вариант исполнения

на учебном аппарате bf-109 от techone hobby

RandomJ
VitalikV:

Цифровая кнопка, это когда не просто замыкаем на ноль, а например проходит сигнал или падает напряжение, на один шлейф можно разное количество кнопок повесить, с напряжением 4,5-3,5-2,5 вольт. Градация вольтажа любая, хоть через 0,1в , лишь бы контроллер понимал их и обрабатывал правильно.

смысла нет, у нас всего одна кнопка. Вывод программно подтягиваем к питанию и кнопкой замыкаем на массу. Можно, для подавления дребезга, воспользоваться библиотекой “Bounce2”(как предлагает Paladin в своем таймере)

Маркс
RandomJ:

Что есть “цифровая кнопка”?

обычно кнопки цепляют к цифровым пинам, на LCD KEY Shields они подключены к аналоговому входу.
используется функционал АЦП, пять кнопок на один пин )

Маркс
RandomJ:

смысла нет, у нас всего одна кнопка

речь идет о программаторе на базе UNO

вот с ним пару часов сегодня занимался сексом, шилду уже лет десять, кнопки “звенят”, можно конечно поменять, но “лень”
но в любом случае, усилия не прошли даром, аентидребезг на аналоговом входе прикрутил )

RandomJ

А я про таймер, так этом шильде кнопки и так через резистивную сборку подключены.

Маркс
RandomJ:

так этом шильде кнопки и так через резистивную сборку подключены.

это не отменяет того факта, что при “плохом” контакте в кнопке не может меняться сопротивление,
а значит и коэффициент делителя напряжения. вот с этим я и боролся.
собственно говоря “боролся” с нестабильностью “включения” UP и RIGHT.

VitalikV

Ждем тестовый скетч, проверим, а там будет уже видно , что подправить.

Я думаю, что при полетах, там будет не мало вопросов к таймеру и его регулировкам, может функцию какую дописать.

RandomJ

я в таком случае, когда начинают дребезжать кнопки, их менял на новые и добавлял параллельно кнопкам по керамическому конденсатору 0,1 мкФ.

RandomJ
VitalikV:

Ждем тестовый скетч, проверим, а там будет уже видно , что подправить.

согласен, железо есть, подопытный кролик тоже.

Маркс
RandomJ:

по керамическому конденсатору 0,1 мкФ.

на аналоговом входе этого делать не стоит )

VitalikV:

Ждем тестовый скетч, проверим, а там будет уже видно , что подправить.

если завтра не сильно задержусь на работе, предварительную “рыбу” программатора,
но пока без обмена с таймером, думаю все таки “выпилю”.
собственно говоря, нужна навигация по меню, она у меня есть в другом проекте,
ну и изменение значений параметров.

Маркс

обмен между программатором и таймером по i2c не вижу больших трудностей,
тем более передавать массив десяток INT переменных,
запись/чтение параметров в EEPROM ардуинки уже сделана.

но загадывать все равно не буду

VitalikV

Я вот склоняюсь все же к тумблеру, вместо кнопки, пока замкнуто, работает, разомкнул, останов. Зазор на контактах тумблера большой, вибрация ему не по чем. (Я про таймер) Можно в скетч таймера, добавить тумблер или кнопка, а то если будет звинеть кнопка на самой ардуинке, перепаивать ее как то так себе удовольствие…

Маркс

нет смысла, если программа перезапустится, что в принципе маловероятно,
никаких сторожевых таймеров в ней нет,
а кнопку RESET можно “удалить” хирургическим путем,
программа в любом случае будет ждать какого то действия,
того же самого нажатия на кнопку.

VitalikV

Ну так тумблер и есть кнопка, пока нажата, работает цикл, отпустил остановилась, питание тумблером разрывать не обязательно. Кнопка резет, пусть останется, ее можно использовать для входа в режим программирования.

Маркс
VitalikV:

ее можно использовать для входа в режим программирования.

с этим проще, уже отработано на другом проекте ), проверяем шину i2c,
если есть программатор на другом конце, значит режим программирования,
сливаем ему имеющиеся данные и “обращаемся в слух”, ждем когда он обратно их вернет,
получили данные обратно, записали в EEPROM и ждем перезапуска без программатора.
а если нет программатора, значит работает в штатном режиме )