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

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

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

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

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

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

Добавлено: 07.07.2017{, 23:47}
vlad
Почему нет?Автор блока утверждает обратное. Судя по схеме подключения при разных комбинациях нажатия кнопок будет разное сопрртивление

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

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

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

Добавлено: 08.07.2017{, 00:09}
vlad
http://flprog.ru/load....1-0-266
Правильная ссылка.

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

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

Добавлено: 08.07.2017{, 00:31}
rw6cm
Из вашей схемы не видно как именно подключены кнопки.
Предположил, как на шилде, если каждую кнопку ставить параллельно своему резюку, то это все меняет )
Без блока вход аналоговый смотрели, показания все разные?
если да, значит в блоке не правильно добавили 5й элемент.
алгоритм пересчета должен рассчитан на 5 резюков

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

Добавлено: 08.07.2017{, 00:59}
vlad
переделанный мной на 5 кн блок не пошел и я пробовал блок автора на 4 кн. у меня он тоже с теми же симптомами не работает.  чет ступил  , про посмотреть аналоговый вход не догадался. в понедельник гляну все на работе осталось.

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

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

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

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

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

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

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

И еще ода мысль. Для защиты от ложных кратковременных срабатываний, я бы поставил на выходы блоки антидребезга.
Вот так:

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

Добавлено: 12.07.2017{, 21:48}
vlad
Только добрался до проекта и чет не получается отправить данные в уарт при компиляции ругается
" 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 "

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

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

Добавлено: 12.07.2017{, 22:03}
Dev1
Вы случаем не в мегу это засовываете?

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

Добавлено: 13.07.2017{, 23:51}
vlad
нет в нано.

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

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

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

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

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

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

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

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

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

Добавлено: 14.07.2017{, 02:43}
vlad
. заметил у себя такую вещь. при увеличении комп резистора  на выходе блока расчета нажатых кнопок в случае когда они не замкнуты минусовое число увеличивается. а в случае когда все замкнуты показывает во всех случаях сумму замкнутых резисторов.
вы можете посмотреть что у вас там (см файл) в случае замкнутых кнопок и не замкнутых

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

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

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

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

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

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

Добавлено: 15.07.2017{, 00:21}
Dryundel
vlad, скажите у Вас номиналы реальных резисторов с установочными (в параметрах пользователя блока) совпадают?

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

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

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

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

Добавлено: 15.07.2017{, 09:17}
Dryundel
Не важно какие номиналы Вы использовали. Я спросил совпадают ли они с номиналами указанными в параметрах пользователя блока. Вы прописали Ваши реальные номиналы в параметрах или нет? Вот в чем был вопрос.

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

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