1602 keypad shield и кнопки на нем
- Войдите на сайт для отправки комментариев
Пнд, 23/11/2015 - 18:08
Мужики добрый вечер. Подскажите, может я че-то где-то упускаю в данном шилде... Воткнул его в мегу, написал скетч - все работает как надо до тог момента, пока не начинаешь жать на кнопку довольно быстро (раза 3-5 в секунду)... Вывод в сериал показал, что при быстрых нажатиях считываемое значение с пина А0 (к которому, собственно, подключены кнопки) становится непостоянно и расколбас в пределах больше 200 запросто иногда... Как решить этот трабл? Это наводки какие-то или же сам шилд криво сделан?
Мужики добрый вечер. Подскажите, может я че-то где-то упускаю в данном шилде... Воткнул его в мегу, написал скетч - все работает как надо до тог момента, пока не начинаешь жать на кнопку довольно быстро (раза 3-5 в секунду)... Вывод в сериал показал, что при быстрых нажатиях считываемое значение с пина А0 (к которому, собственно, подключены кнопки) становится непостоянно и расколбас в пределах больше 200 запросто иногда... Как решить этот трабл? Это наводки какие-то или же сам шилд криво сделан?
а, у тебя кнопки на шилде с золотыми или платиновыми контактами?
- Доктор! Когда я делаю так - мне больно!
- Не делайте так.
пока не начинаешь жать на кнопку довольно быстро (раза 3-5 в секунду)...
С какой целью?
а, у тебя кнопки на шилде с золотыми или платиновыми контактами?
Написано, что платина с добавлением золота и немного серебра.
пока не начинаешь жать на кнопку довольно быстро (раза 3-5 в секунду)...
С какой целью?
Цели не было - была автоматическая рефлекторная последовательность с целью проверки кода. Снизил частоту нажатий до 2х раз в секунду - стало лучше, но проблема не ушла.
- Доктор! Когда я делаю так - мне больно!
- Не делайте так.
я страшно ненавижу жадных
жестоких тоже не люблю
и всех бы их перестреляла
да жалко денег на ружье
Кстати, код не выложил и фото шилда лишь потому, что все стандартно как бутерброд с маслом... Но уж если очень надо, то прям как тут http://geekelectronics.org/arduino/podklyuchenie-lcd-keypad-shield-k-arduino.html и питание также от юсб
Написано, что платина с добавлением золота и немного серебра.
обманули
- Доктор! Когда я делаю так - мне больно!
- Не делайте так.
я страшно ненавижу жадных
жестоких тоже не люблю
и всех бы их перестреляла
да жалко денег на ружье
Кстати, код не выложил и фото шилда лишь потому, что все стандартно как бутерброд с маслом... Но уж если очень надо, то прям как тут http://geekelectronics.org/arduino/podklyuchenie-lcd-keypad-shield-k-arduino.html и питание также от юсб
А вы зря восприняли метафору, как шутку.
Тут люди вовсю с дребезгом борются, а вы его искусственно создаете.
Тут люди вовсю с дребезгом борются, а вы его искусственно создаете.
ну, да - дребезг кнопок аналогового джойстика, который неумные люди пытаются использовать в качестве клавиатуры, а не джойстика.
Снизил частоту нажатий до 2х раз в секунду - стало лучше, но проблема не ушла.
Сама проблема не уйдет. АЦП относительно нажатий кнопки работает асинхронно, УВХ (устройство выборки-хранения), фиксирующее входное напряжение на времия АЦ-преобразования, отсутствует. Борьбы с дребезгом тоже никакой нет. Поэтому АЦП честно фиксирует то ерунду, которая образуется на его входе.
В этом смысле подключение кнопок по цифровым входам я считаю на порядок предпочтительнее. При отладке схемы макета, приведенной в "Саге о кнопках", мой младший сын для доказательства своего превосходства перед "железкой" давил на кнопку чаще, чем программный таймер с периодом 0,5 с. На интервале в 99 нажатий он явно обгонял "машинку". И все срабатывало четко.
А вы зря восприняли метафору, как шутку.
Тут люди вовсю с дребезгом борются, а вы его искусственно создаете.
Пардон, на счет дребезга: я в код из ссылочки сверху впихнул delay(150) опосля каждой кнопки, но написать забыл... Это ж вроде как-никак помогает от дребезга говорят). И еще один важный момент: так себя плохо ведет только одна кнопка, остальные раза в 3 реже колбасятся... Может резисторик делительный???
так себя плохо ведет только одна кнопка, остальные раза в 3 реже колбасятся... Может резисторик делительный???
посмотри по схеме подключения этой кнопки, где она находится - между нормально работающими или крайняя.
если между, то кнопки-гавно.
если крайняя, то глюк аапаратно обусловлен.
Для примера: выставил на всякий пожарный делэй после каждого нажатия кнопки 250... Жму 1 раз в секунду 10 раз кнопку ВВЕРХ - получаю значения (99, 99, 99, 99, 99, 99, 102, 99, 133, 99)... Тобишь разброс в пределах нормы... Теперь тоже самое с проблемной кнопкой - значения (0, 0, 235, 0, 0, 247, 14, 96, 0, 708)... Явно, ка мне кажется, грешить остается на сам шилд...
посмотри по схеме подключения этой кнопки, где она находится - между нормально работающими или крайняя.
если между, то кнопки-гавно.
если крайняя, то глюк аапаратно обусловлен.
Ну судя по видимому расположению, а также нормальному значению показаний при нажатии на нее (1023 - значение когда кнопки НЕ нажаты, 0 -когда проблемная кнопка нажата) она является крайней. Если Вас не затруднит, объясните пожалуйста чем глюк обусловлен? И есть ли простые способы избавления от него. Спасибо.
Пардон, на счет дребезга: я в код из ссылочки сверху впихнул delay(150) опосля каждой кнопки, но написать забыл... Это ж вроде как-никак помогает от дребезга говорят). И еще один важный момент: так себя плохо ведет только одна кнопка, остальные раза в 3 реже колбасятся... Может резисторик делительный???
Вы просто считываете реже, а асинхронность считывания, как была, так и осталась. Интенсивность мусора на входе АЦП Вы создаете самостоятельно с деятельным участием дребезга. delay(150) на Вас не действует.
И еще один важный момент: так себя плохо ведет только одна кнопка, остальные раза в 3 реже колбасятся... Может резисторик делительный???
Скорее всего, у нее механика контакта-пружинки слабее, чем у остальных, и дребезг там сильнее.
Если Вас не затруднит, объясните пожалуйста чем глюк обусловлен?
это предположение - напряжением на кнопке.
найди в гухле эл. схему своего шилда и посмотри, что как подключено.
избавиться - использовать цифровые пины контроллера.
программно переключить аналаговый вход как цифровой еще никто не отменял
Вопрос на засыпку я вроде бы не сомневаюсь но проверить и найти нигде не могу. Можно ли дисплей 1602 подключить к аналоговым входам Ардуино в 4 битном режиме? У меня плата про мини хочу задействовать А0-А5.
Вопрос на засыпку я вроде бы не сомневаюсь но проверить и найти нигде не могу. Можно ли дисплей 1602 подключить к аналоговым входам Ардуино в 4 битном режиме? У меня плата про мини хочу задействовать А0-А5.
можно.
программно переключить аналаговый вход как цифровой еще никто не отменял
одна кнопка надёжней.
если там через делитеь , то да :)
если там через делитеь , то да :)
там гирлянда кнопок на одном пине
Ну судя по видимому расположению, а также нормальному значению показаний при нажатии на нее (1023 - значение когда кнопки НЕ нажаты, 0 -когда проблемная кнопка нажата) она является крайней. Если Вас не затруднит, объясните пожалуйста чем глюк обусловлен? И есть ли простые способы избавления от него. Спасибо.
Из тех же соображений и схемы части шилда это кнопка RIGHT. Если редкие замыкания (раз в 1 с) тоже регулярно приводят к пляске показаний, то экземпляр кнопки с увеличенным дребезгом. Лечится заменой кнопки.
Но для любой механической кнопки манипуляция 10 раз в секунду - запредельная нагрузка на механику. Если Вам интересны не "натуриспытания" до полного убоя матчасти, а некий практический результат, то механику нужно менять на оптику и переходить с аналогового входа на дискретный. Или... давить реже и четче. :)
единственное что могу предложить, это посртавить кондер, емкостью 0.1 мкф с аналогового входа на землю
единственное что могу предложить, это посртавить кондер, емкостью 0.1 мкф с аналогового входа на землю
это будет весёлое включение всех кнопок по очереди при нажатии одной крайней
ну емкость можно и поменьше поставить, зависит от резисторов в делителе, и делей,
вроде больше нет решений , как избавиться от дребезга
ну емкость можно и поменьше поставить, зависит от резисторов в делителе, и делей
можно поставить ёмкость 0 мкФ
делей - зло
вроде больше нет решений , как избавиться от дребезга
есть, но нужно думать, а лень.
то что делей зло, это да, тогда выборку через millis + оператор switch
Из тех же соображений и схемы части шилда это кнопка RIGHT. Если редкие замыкания (раз в 1 с) тоже регулярно приводят к пляске показаний, то экземпляр кнопки с увеличенным дребезгом. Лечится заменой кнопки.
Но для любой механической кнопки манипуляция 10 раз в секунду - запредельная нагрузка на механику. Если Вам интересны не "натуриспытания" до полного убоя матчасти, а некий практический результат, то механику нужно менять на оптику и переходить с аналогового входа на дискретный. Или... давить реже и четче. :)
Я прогнал и уже исправил на "1 раз в секунду 10 нажатий". Спасибо, буду перепаивать кнопку и смотреть что получится.
это предположение - напряжением на кнопке.
найди в гухле эл. схему своего шилда и посмотри, что как подключено.
избавиться - использовать цифровые пины контроллера.
Схему я мультиком проверил - точь-в-точь как из ссылке в посте #6 за исключением некоторых номиналов с небольшой погрешностью (но это косяк китайского мультика запросто может быть)
Нормальная схема.. Примерно такой же и пользуюсь на другом шилде, а на этом кнопка RIGHT срабатывает за остальных временами вместо себя)
Наличие "делайной" или "безделайной" задержки, просто вставленной в цикле loop, на подавлении дребезга не сказывается. Для подавления дребезга нужно сначала зафиксировать факт нажатия хоть какой-нибудь кнопки, потом подождать время прекращения дребезга (не менее 20 - 50 мс), потом считывать устаканившееся значение и только потом прогонять его чере фильтр переходов.
главное, что бы факт соответсвовал действительности
Нормальная схема.. Примерно такой же и пользуюсь на другом шилде, а на этом кнопка RIGHT срабатывает за остальных временами вместо себя)
Кроме повышенного дребезга еще может быть и нестабильное переходное сопротивление контактной группы. Это связано, и признаки на лицо. Замена кнопки.
Кроме повышенного дребезга еще может быть и нестабильное переходное сопротивление контактной группы. Это связано, и признаки на лицо. Замена кнопки.
Пошел за паяльной станцией)).. "В эфире ГАЛИЛЕО и рубрика ЭКСПЕРИМЕНТЫ!"
еще к выше упомянотой схеме можно считалку добавить, например если два или три раза вписываеься в значения нажатой кнопки то выдаем результат
главное, что бы факт соответсвовал действительности
Безусловно. Для тактовых кнопок, если они не убиты в ноль, когда контактная группа там просто россыпью, самопроизвольное срабатывание на замыкание - очень маловероятно. Поэтому факт срабатывания кнопки отловить можно относительно просто по условию, что напряжение "немного" (больше шума АЦП) отошло от максимального. Это значит, что хоть что-то, да нажали.
Перепаял кнопку - из 20 нажатий всего одно "левое" значение вылезло... Ну китааааайцы... Шилд новый
я не знаю, как людям вразумительно объяснить, что кнопки на аналоговом входе аппаратно могут выглядеть только так, а не иначе - всё остальное ересь, а последователи ея подлежат сожжению на костре инквизиции Arduino.
я не знаю, как людям вразумительно объяснить, что кнопки на аналоговом входе аппаратно могут выглядеть только так, а не иначе - всё остальное ересь, а последователи ея подлежат сожжению на костре инквизиции Arduino.
Ну это, так скажем, эталон кнопки - идельный вариант... Но имеют же право на существование и неидеальные варианты, добавляющие геморроя ее счастливому обладателю? Не всем же ездить на "бэнтли" - ладу куда-то девать-то надо)
Не всем же ездить на "бэнтли" - ладу куда-то девать-то надо)
да ладно? заменить кнопку резистором, нарисовать шкалу.
да ладно? заменить кнопку резистором, нарисовать шкалу.
Я уже начинаю подумывать о переходе с этих кнопочек на что-то более надежное в своем проекте... Что скажете о надежности вот этой штуки по сравнению с глючной тактовой кнопкой изшилда: http://digitrode.ru/computing-devices/mcu_cpu/157-podklyuchaem-dzhoystik-k-arduino.html В этом джосте тоже используются аналоги видать, но есть ли опыт в плане безглючности работы?
г-но а не джойстики, через неделю выкинешь, потенциометры фиговые, обрываются в состоянии покоя, я уже 2 викинул
Я уже начинаю подумывать о переходе с этих кнопочек на что-то более надежное в своем проекте... Что скажете о надежности вот этой штуки по сравнению с глючной тактовой кнопкой изшилда: http://digitrode.ru/computing-devices/mcu_cpu/157-podklyuchaem-dzhoystik-k-arduino.html В этом джосте тоже используются аналоги видать, но есть ли опыт в плане безглючности работы?
механика хорошего джойстика стоит ~$100
хорошая тактовая кнопка стоит $1
выбирай
*и, определись - тебе джойстик нужен или кнопка?
механика хорошего джойстика стоит ~$100
хорошая тактовая кнопка стоит $1
выбирай
*и, определись - тебе джойстик нужен или кнопка?
При таком раскладе мне нужна именно кнопка... А можно ссылочку на образец "хорошей тактовой кнопки" ?
г-но а не джойстики, через неделю выкинешь, потенциометры фиговые, обрываются в состоянии покоя, я уже 2 викинул
Спасибо! А то у меня один валяется до сих пор без дела... Походу дальше будет валяться
А можно ссылочку на образец "хорошей тактовой кнопки" ?
откуда ж я знаю, какой конструктив тебе нужен?
выбирай немецкого или японского производителя.
откуда ж я знаю, какой конструктив тебе нужен?
выбирай немецкого или японского производителя.
Ну да. Производитель и ценовая категория. Но все равно, навешивание кнопок на аналоговый вход, на мой взгляд, имеет один единственный плюс - минимальный расход пинов при небольшом количестве кнопок. Всё остальное - одни минусы. Я в "Саге..." подробно все резоны расписал.
Andrey-S, уперся Вам именно этот шилд. Если нужен этот функционал, возьмите отдельно экранчик и нормальные кнопки (китайских, кстати, много нормальных тактовых, хоть и не 100%) и включите кнопки через дискретные входы, хоть напрямую, хоть через расширитель портов.
Но имеют же право на существование и неидеальные варианты, добавляющие геморроя ее счастливому обладателю?
"Гемморой - не спорт, а болезнь. (С)" :))