Аналоговые кнопки на одном пине.

Вопросы по подключению кнопок и клавиатур
Ответить
Аватара пользователя
Ghost
Рядовой
Сообщения: 24
Зарегистрирован: 24.01.2016{, 05:38}
Репутация: 0
Откуда: Рязань

Аналоговые кнопки на одном пине.

#1

Сообщение Ghost » 24.01.2016{, 06:00}

Задача
Подключить кнопки на аналоговый вход ардуины.
Понять, как это в FLProg вообще должно выглядеть.
Условия
Вот так кнопки подключены к ардуине физически:
1206511.jpg
Схема дана для образца. Тут отображен просто тип подключения кнопок.
На RESET внимания ноль.

Как, эту не сложную схему, перенести в FLProg?

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 787
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Аналоговые кнопки на одном пине.

#2

Сообщение support » 24.01.2016{, 06:40}

Почитай тут http://flprog.ru/publ....-1-0-19
Автор программы FLProg.

Аватара пользователя
Ghost
Рядовой
Сообщения: 24
Зарегистрирован: 24.01.2016{, 05:38}
Репутация: 0
Откуда: Рязань

Аналоговые кнопки на одном пине.

#3

Сообщение Ghost » 24.01.2016{, 06:54}

Только хотел написать, нашел проект с LCD, а мне уже ссылку на него.)) Приятна такая оперативность.
Вот только почему то этот проект Жутко тормозит программу. Я в целом понял за что зацепиться в нем, но как то серьезно разобраться не получится, отклик на нажатия мышки или колесика секунд по 7-10... жуть.

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

Аналоговые кнопки на одном пине.

#4

Сообщение Олег » 24.01.2016{, 09:55}

На некоторых операционных системах тормоза есть. Чтобы их уменьшить надо держать платы свернутыми, открыта только та с которой работаете на данный момент.
У меня на Windows XP SP2 все идет без тормозов и с открытыми платами. Поставил на Висту вообще работать невозможно. Разработчик об этом в курсе и когда-нибудь поправит.

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Аналоговые кнопки на одном пине.

#5

Сообщение DWD » 24.01.2016{, 11:09}

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

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

Аналоговые кнопки на одном пине.

#6

Сообщение Сергей » 24.01.2016{, 15:13}

Ghost, вот блок по Вашей просьбе.
Вложения
__LCDKeypadShie.ubi
(171.52 КБ) 164 скачивания

Аватара пользователя
Ghost
Рядовой
Сообщения: 24
Зарегистрирован: 24.01.2016{, 05:38}
Репутация: 0
Откуда: Рязань

Аналоговые кнопки на одном пине.

#7

Сообщение Ghost » 24.01.2016{, 16:33}

Сергей писал(а):Ghost, вот блок по Вашей просьбе.Прикрепления: __LCDKeypadShie.ubi(172Kb)
чем открывать файлы с таким расширением?

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

Аналоговые кнопки на одном пине.

#8

Сообщение Олег » 24.01.2016{, 16:49}

Это пользовательский блок, в программе в правом окне, где выбираются блоки выбираете вкладку Пользовательские, нажимаете кнопку Загрузить (папочка) и загружаете.

Аватара пользователя
Ghost
Рядовой
Сообщения: 24
Зарегистрирован: 24.01.2016{, 05:38}
Репутация: 0
Откуда: Рязань

Аналоговые кнопки на одном пине.

#9

Сообщение Ghost » 24.01.2016{, 17:09}

DWD писал(а):На счёт тормозов.Видимо нужно все рекомендации по пунктам вынести куда-то на самое видное место.
Тем более, что два основных действия - приоритет программы и работа на одном ядре - полностью решают проблему.
Полностью проблему не решило, но на одном ядре сильно лучше стало, теперь хоть движутся ползунки. Сразу, а не когда мышку уже положил.)))

Добавлено (24.01.2016, 17:09)
---------------------------------------------
Олег писал(а):Это пользовательский блок, в программе в правом окне, где выбираются блоки выбираете вкладку Пользовательские, нажимаете кнопку Загрузить (папочка) и загружаете.
Спасибо, получилось.
Но мне немного не нравится, какой она скетч выдает.
    Я написал библиотеку, пальчиками, без этой программы. И столкнулся с кучей проблем. Такие как самовозбуждение генераций на АЦП, это когда кнопку ни кто не трогает, а она сама нажимается и отпускается с частотой опроса кнопок. Выдача значений, которые вообще ни где не фигурируют, выдача соседних кнопок из за не четко нажатой кнопки без отжатия. Тоесть не 1 потом 0, а сразу 1 потом без нуля соседняя и только потом 0.
вообще выдача соседней кнопки, косвенная причина дребезг, но не только в нем дело... Все не вспомню, что то еще было...
Короче надеялся пролентяйничать, думал что эта чудо программа рашает все эти детские проблемы.)) А она выдала почти тоже самое, что я написал, еще до внесения всех исправлений, возникающих проблем.))
Радикальное решение - сдвиговые регистры.
А пока они они едут из Китая, балуемся аналоговыми кнопочками. Изображение

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

Аналоговые кнопки на одном пине.

#10

Сообщение Сергей » 24.01.2016{, 23:36}

Ghost, выведите на экран значение с пина А0 и посмотрите какие значения по каждой кнопке. Потом отредактируйте в самом блоке константы. Должно все работать проверенно не однократно, и на разных шилдах.

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Аналоговые кнопки на одном пине.

#11

Сообщение DWD » 24.01.2016{, 23:49}

Ghost писал(а):Полностью проблему не решило, но на одном ядре сильно лучше стало,
Забыл - ещё нужно поставить совместимость с Win98.
У меня проблемы теперь не существует. Да и не только у меня...
Изображение

Аватара пользователя
Ghost
Рядовой
Сообщения: 24
Зарегистрирован: 24.01.2016{, 05:38}
Репутация: 0
Откуда: Рязань

Аналоговые кнопки на одном пине.

#12

Сообщение Ghost » 25.01.2016{, 02:20}

Сергей писал(а):Ghost, выведите на экран значение с пина А0 и посмотрите какие значения по каждой кнопке. Потом отредактируйте в самом блоке константы. Должно все работать проверенно не однократно, и на разных шилдах.
Сергей, я копнул на много глубже. С вашего совета я начал писать библиотеку. Первое, что я сделал, это вывел в сериал порт значения АЦП и уже от этих значений, начал писать. В блокноте! Я в FLProg писать, еще не умею. Только понимаю уже кем то написанное.))
Но это пол беды. Решить проблему не точности некоторых нажатий, программно вообще не получится.
Причина в изменении сопротивления самого контакта, при не четком нажатии. АЦП ардуины четко отрабатывает свои показания. Причина именно в самих кнопках.
Допустим резистерный делитель дает 2.5в. АЦП, 511 покажет, при идеальном контакте. И все сработает как было задумано. А вот когда контакт у нас плохой и на АЦП приходит не 2.5в, а 1.5в, а 1в теряется в виде тепла на этом самом контакте. Что тогда?
А я скажу, тогда АЦП покажет контроллеру не 511 как должен был бы по задумке автора, а 307, что соответствует значению с погрешностью, соседней кнопке...
Таким образом программа отработает четко на другую кнопку! Так как именно такое значение выдаст АЦП.
DWD писал(а):Забыл - ещё нужно поставить совместимость с Win98.
У меня проблемы теперь не существует. Да и не только у меня...
Спасибо, попробую. :)
Попробовал, в режиме совместимости вообще не запускается. Ни xp, ни 98, куча ошибок и до свидания...
Последний раз редактировалось Ghost 25.01.2016{, 02:47}, всего редактировалось 1 раз.

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

Аналоговые кнопки на одном пине.

#13

Сообщение Олег » 25.01.2016{, 10:19}

Теоретически такое может быть, практически пока не замечал.

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

Аналоговые кнопки на одном пине.

#14

Сообщение Сергей » 25.01.2016{, 10:29}

Ghost
Ghost писал(а):Причина в изменении сопротивления самого контакта
проверьте тогда пинцетом. Шунтируя каждую кнопку. Если от замыкания кнопки пинцетом все будет работать, то поменяйте кнопки. Если не поможет, то в резисторах проблема.

Аватара пользователя
Ghost
Рядовой
Сообщения: 24
Зарегистрирован: 24.01.2016{, 05:38}
Репутация: 0
Откуда: Рязань

Аналоговые кнопки на одном пине.

#15

Сообщение Ghost » 25.01.2016{, 10:51}

Сергей писал(а):проверьте тогда пинцетом. Шунтируя каждую кнопку. Если от замыкания кнопки пинцетом все будет работать, то поменяйте кнопки. Если не поможет, то в резисторах проблема.
Как бы так объяснить.... Если не бестолковится, то они нормально работают, а когда ищешь до чего бы до***ться
то как правило находишь, и потом это глаза мозолит...
такая фигня происходит, когда кнопку не точно нажимаешь, чуток на излом чтоли... 
Короче, это не проблема. 
Я же уже писал, вопрос поднимался на другую тему.
но чудес не случилось.
Попозже могу выложить библиотеку посмотреть. Если кому интересно.

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Аналоговые кнопки на одном пине.

#16

Сообщение DWD » 25.01.2016{, 19:56}

У кнопок сопротивление маленькое. Но со временем из-за окисления оно увеличивается и может достигать 300Ом.

Выйти из положения можно, увеличив сопротивление резистора смещения (R1 на схеме в первом посту) и пропорционально увеличив остальные резисторы делителя.
В этом случае повышенное сопротивление кнопки будет очень слабо влиять на уровни, так как доля сопротивления кнопки в общем сопротивлении делителя будет незначительна.
Изображение

Ответить

Вернуться в «Кнопки и клавиатуры»