Страница 1 из 1

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

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

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

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

Добавлено: 24 янв 2016, 06:40
support
Почитай тут http://flprog.ru/publ....-1-0-19

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

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

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

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

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

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

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

Добавлено: 24 янв 2016, 15:13
Сергей
Ghost, вот блок по Вашей просьбе.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено: 25 янв 2016, 10:19
Олег
Теоретически такое может быть, практически пока не замечал.

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

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

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

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

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

Добавлено: 25 янв 2016, 19:56
DWD
У кнопок сопротивление маленькое. Но со временем из-за окисления оно увеличивается и может достигать 300Ом.

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