кнопоки на аналоговом входе

Вопросы по подключению кнопок и клавиатур
vlad
Лейтенант
Сообщения: 391
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

кнопоки на аналоговом входе

#1

Сообщение vlad » 07.07.2017{, 23:18}

в связи с нехваткой входов потребовалось подключить несколько кнопок на один аналоговый вход. Необходимо отслеживание нажатие различных комбинаций 5 кнопок.
мозг вскипел не могу понять почему не получается запустить блок http://flprog.ru/load....-0-266. Использую немного другие номиналы сопротивлений но согласно рекомендациям блока  456, 808,1770,3480 и подтягивающий на 1160ом. не работает и все тут.
Вложения
6757661.jpg

Аватара пользователя
rw6cm
Полковник
Сообщения: 2132
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 278
Имя: Владимир

кнопоки на аналоговом входе

#2

Сообщение rw6cm » 07.07.2017{, 23:29}

vlad писал(а):Необходимо отслеживание нажатие различных комбинаций 5 кнопок.
Это как, по две...три...одновременно?
Если так, ни чего не выйдет )
Резюки надо параллельно набирать.
Последний раз редактировалось rw6cm 07.07.2017{, 23:42}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

vlad
Лейтенант
Сообщения: 391
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

кнопоки на аналоговом входе

#3

Сообщение vlad » 07.07.2017{, 23:47}

Почему нет?Автор блока утверждает обратное. Судя по схеме подключения при разных комбинациях нажатия кнопок будет разное сопрртивление

Аватара пользователя
rw6cm
Полковник
Сообщения: 2132
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 278
Имя: Владимир

кнопоки на аналоговом входе

#4

Сообщение rw6cm » 07.07.2017{, 23:55}

vlad писал(а):Почему нет?Автор блока утверждает обратное.
Не знаю что за блок, (ссылка на главную страницу) но при последовательном соединении,
будет кнопка с наименьшим сопротивлением, все что между, реагировать не будет, т.к просто закорочено этой кнопкой.
Последний раз редактировалось rw6cm 07.07.2017{, 23:57}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

vlad
Лейтенант
Сообщения: 391
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

кнопоки на аналоговом входе

#5

Сообщение vlad » 08.07.2017{, 00:09}

http://flprog.ru/load....1-0-266
Правильная ссылка.

Добавлено (08.07.2017, 00:09)
---------------------------------------------
Как не будет.будет. посмотрите схему. При любых комбинациях получаются разные сопротивления.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2132
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 278
Имя: Владимир

кнопоки на аналоговом входе

#6

Сообщение rw6cm » 08.07.2017{, 00:31}

Из вашей схемы не видно как именно подключены кнопки.
Предположил, как на шилде, если каждую кнопку ставить параллельно своему резюку, то это все меняет )
Без блока вход аналоговый смотрели, показания все разные?
если да, значит в блоке не правильно добавили 5й элемент.
алгоритм пересчета должен рассчитан на 5 резюков
Win10-64, FLProg (portable)

vlad
Лейтенант
Сообщения: 391
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

кнопоки на аналоговом входе

#7

Сообщение vlad » 08.07.2017{, 00:59}

переделанный мной на 5 кн блок не пошел и я пробовал блок автора на 4 кн. у меня он тоже с теми же симптомами не работает.  чет ступил  , про посмотреть аналоговый вход не догадался. в понедельник гляну все на работе осталось.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2061
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 628
Откуда: Ярославль
Имя: Андрей
Контактная информация:

кнопоки на аналоговом входе

#8

Сообщение Dryundel » 08.07.2017{, 15:32}

vlad, есть идея по реализации вашей задумки.
Блок о котором вы говорите совсем не плохая штука. Его автор дает четкие рекомендации - номинал каждого последующего резистора должен быть больше суммы всех предыдущих. Я бы добавил - в 2 раза больше. Соответственно повторяющихся комбинаций не будет. Количество комбинаций при 4 кнопках 16, при пяти 32 ну и т.д.

Идея состоит в следующем: Ставим на вход блок не линейного масштабирования, в нем прописываем значения при различных сочетаниях нажатий, которые определяем опытным путем. Далее ставим демультиплексор с 16+1 выходами (для 4 кнопок), после чего собираем сигналы с выходов демультиплексора на соответствующие выходы. Плюс получаем еще один выход "отсутствие нажатий"

Схема получается очень проста и понимаема.

Примерно так:
(Сбор сигналов сделан с потолка, не руководствоваться! )

Можно пойти и дальше. Заменив константы в блоке масштабирования на входы добавить расчеты значений исходя из номиналов сопротивлений, однако это чревато ошибками из-за погрешностей номиналов, особенно при большом количестве кнопок.

Появляется еще вариант сделать обучаемые кнопки, добавив соответствующие блоки и записывая значения в EEPROM к примеру.

И еще ода мысль. Для защиты от ложных кратковременных срабатываний, я бы поставил на выходы блоки антидребезга.
Вот так:
Последний раз редактировалось Dryundel 08.07.2017{, 18:44}, всего редактировалось 1 раз.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

vlad
Лейтенант
Сообщения: 391
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

кнопоки на аналоговом входе

#9

Сообщение vlad » 12.07.2017{, 21:48}

Только добрался до проекта и чет не получается отправить данные в уарт при компиляции ругается
" Arduino: 1.8.1 (Windows 8.1), Плата:"Arduino Nano, ATmega328"

C:\Users\Евросеть\AppData\Local\Temp\flprog\pr1\pr1.ino: In function 'void setup()':

pr1:4: error: 'Serial1' was not declared in this scope

C:\Users\Евросеть\AppData\Local\Temp\flprog\pr1\pr1.ino: In function 'void loop()':

pr1:13: error: 'Serial1' was not declared in this scope

exit status 1
'Serial1' was not declared in this scope "

весь проект это данные с аналогового входа отправляются в уарт.
что за хрень?

Аватара пользователя
Dev1
Майор
Сообщения: 1015
Зарегистрирован: 12.07.2016{, 18:04}
Репутация: 58
Откуда: Гондурас

кнопоки на аналоговом входе

#10

Сообщение Dev1 » 12.07.2017{, 22:03}

Вы случаем не в мегу это засовываете?
Win7-64 FLProg v7.2.2 Portable :fie:

vlad
Лейтенант
Сообщения: 391
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

кнопоки на аналоговом входе

#11

Сообщение vlad » 13.07.2017{, 23:51}

нет в нано.

Добавлено (12.07.2017, 22:09)
---------------------------------------------
и помоему раньше можно было а сейчас флпрог не дает выбрать отправку в уарт чз компорт если он используется модбас.

Добавлено (12.07.2017, 23:37)
---------------------------------------------
не знаю толком что было но после перегруза компа все стало ок. во всяком случае программа загрузилась в нано.
правда если в программе есть модбас то на него все равно нельзя повесить уарт.
так наверное все таки недолжно быть?
приходится отключать модбас и все что с ним связанно и только тогда появляется возможность подключения уарта.
в результате у меня почемуто не работает блок http://flprog.ru/load....1-0-266
на входе блока все ок ( от всех кнопок разные значения) а вот на выходе полная билибирда. чет склоняюсь что данный блок не рабочий ,
будем разбираться..
Может кто сможет его тоже проверить? и относительно подключения на один и  тот же ком порт уарта и модбас?

Добавлено (13.07.2017, 23:51)
---------------------------------------------
не могу понять, где у меня или где косяк. вроде все таки блок должен быть рабочим. судя по формуле делителя . но чет не пойму : смотрю в уарте на данные которые идут после вычисления сопротивления нажатых кнопок , значения там от минуса до плюса изменяются. так не должно же быть. если мы замыкаем все кнопки то показывает сумму всех сопротивлений а если нет то значение выдает отрицательное. не пойму откуда там минус берется?

Аватара пользователя
Dryundel
Полковник
Сообщения: 2061
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 628
Откуда: Ярославль
Имя: Андрей
Контактная информация:

кнопоки на аналоговом входе

#12

Сообщение Dryundel » 14.07.2017{, 01:15}

vlad писал(а):... так не должно же быть. если мы замыкаем все кнопки то показывает сумму всех сопротивлений а если нет то значение выдает отрицательное. не пойму откуда там минус берется?
vlad, Вы точно правильно схему собрали? Как у автора блока? Резисторы все последовательно, а каждая кнопка параллельно одному из резисторов?
При замыкании всех кнопок сопротивление должно быть 0 , а не сумма всех сопротивлений, а напряжение на входе 5V

Блок рабочий, я проверял. Единственное, компенсирующий резистор 10к поставил. С 1к2, как по умолчанию в настройках пользователя стоит, не пошел почему то.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

vlad
Лейтенант
Сообщения: 391
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

кнопоки на аналоговом входе

#13

Сообщение vlad » 14.07.2017{, 02:28}

Dryundel писал(а):vlad, Вы точно правильно схему собрали? Как у автора блока? Резисторы все последовательно, а каждая кнопка параллельно одному из резисторов?При замыкании всех кнопок сопротивление должно быть 0 , а не сумма всех сопротивлений, а напряжение на входе 5V
схема вроде проще не куда. 
но на выходе судя по схеме блока всетаки проиходит вычитание из суммы всех резисторов суммы замкнутых.

vlad
Лейтенант
Сообщения: 391
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

кнопоки на аналоговом входе

#14

Сообщение vlad » 14.07.2017{, 02:43}

. заметил у себя такую вещь. при увеличении комп резистора  на выходе блока расчета нажатых кнопок в случае когда они не замкнуты минусовое число увеличивается. а в случае когда все замкнуты показывает во всех случаях сумму замкнутых резисторов.
вы можете посмотреть что у вас там (см файл) в случае замкнутых кнопок и не замкнутых
Вложения
0885541.png

Аватара пользователя
rw6cm
Полковник
Сообщения: 2132
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 278
Имя: Владимир

кнопоки на аналоговом входе

#15

Сообщение rw6cm » 14.07.2017{, 07:20}

vlad писал(а):вы можете посмотреть что у вас там
Все это фигня ))
Взял блок на 4 кн и прогнал по входу сигнал от 0 до 1024.
Результат

СпойлерПоказать
Сразу видно многие положения просто не реально поймать, (тем более если пленочная клава)
С 5 кн это будет выглядеть еще плачевней.
Вложения
7151541.png
Win10-64, FLProg (portable)

vlad
Лейтенант
Сообщения: 391
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

кнопоки на аналоговом входе

#16

Сообщение vlad » 14.07.2017{, 23:35}

rw6cm писал(а):Все это фигня ))
rw6cm писал(а):Сразу видно многие положения просто не реально поймать,
сегодня не было возможности все опять проверить, но вчера почемуто на выходе были отрицательные значения на выходе блока нажатия кнопок при нажатии трех и только при всех нажатых показывало правильную сумму всех сопротивлений.
Есть выход?у меня конечно не пленочная клава. у меня 5 герконовых датчиков и один свободный выход.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2061
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 628
Откуда: Ярославль
Имя: Андрей
Контактная информация:

кнопоки на аналоговом входе

#17

Сообщение Dryundel » 15.07.2017{, 00:21}

vlad, скажите у Вас номиналы реальных резисторов с установочными (в параметрах пользователя блока) совпадают?

А вообще с количеством кнопок более 4 и с такой логикой как в блоке, я бы наверное не стал заморачиваться.
Подумайте о варианте из 8 поста
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

vlad
Лейтенант
Сообщения: 391
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

кнопоки на аналоговом входе

#18

Сообщение vlad » 15.07.2017{, 08:12}

Dryundel писал(а):vlad, скажите у Вас номиналы реальных резисторов с установочными (в параметрах пользователя блока) совпадают?
номиналы я использовал другие но согласно указаниям автора блока 456, 808,1770,3480 и подтягивающий на 1160ом. у меня когда на пять кнопок не пошло я собрал в качестве эксперимента без изменений блока но с др. номиналами на 4 кнопки. проблемы остались теми же. пробовал менять поттягивающий резистор на больший -ни чего не поменялось кроме того что при не нажатых кнопках на выходе определения нажатых кнопок увеличилось отрицательное значение а должно быть ноль или около того. Ручками считаешь получаешь ноль , смотришь в компорт а там минус 6400. вот и не пойму что за хрень.
Ваша идея с полигоном имеет тот же смысл что и этот блок , только как то кучеряво и сложнее.
Можно его наверное его упростить использовать полигон как вы предлагаете а далее блок сравнения как у автора блока. Блин только у меня в моей голове не укладывается почему у меня не работает авторский блок.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2061
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 628
Откуда: Ярославль
Имя: Андрей
Контактная информация:

кнопоки на аналоговом входе

#19

Сообщение Dryundel » 15.07.2017{, 09:17}

Не важно какие номиналы Вы использовали. Я спросил совпадают ли они с номиналами указанными в параметрах пользователя блока. Вы прописали Ваши реальные номиналы в параметрах или нет? Вот в чем был вопрос.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

vlad
Лейтенант
Сообщения: 391
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

кнопоки на аналоговом входе

#20

Сообщение vlad » 15.07.2017{, 14:40}

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

Ответить

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