FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Пятница, 21.07.2017, 07:44
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » кнопоки на аналоговом входе
кнопоки на аналоговом входе
vlad Дата: Пятница, 07.07.2017, 23:18 | Сообщение # 1
Полковник
Группа: Проверенные
Сообщений: 341
Награды: 0
Репутация: 5
Статус: Offline
в связи с нехваткой входов потребовалось подключить несколько кнопок на один аналоговый вход. Необходимо отслеживание нажатие различных комбинаций 5 кнопок.
мозг вскипел не могу понять почему не получается запустить блок http://flprog.ru/load....-0-266. Использую немного другие номиналы сопротивлений но согласно рекомендациям блока  456, 808,1770,3480 и подтягивающий на 1160ом. не работает и все тут.
Прикрепления: 6757661.jpg(16Kb)
 
rw6cm Дата: Пятница, 07.07.2017, 23:29 | Сообщение # 2
Генерал-лейтенант
Группа: Проверенные
Сообщений: 805
Награды: 72
Репутация: 53
Статус: Offline
Цитата vlad ()
Необходимо отслеживание нажатие различных комбинаций 5 кнопок.
Это как, по две...три...одновременно?
Если так, ни чего не выйдет )
Резюки надо параллельно набирать.


Win7-32, FLProg (portable)

Сообщение отредактировал rw6cm - Пятница, 07.07.2017, 23:42
 
vlad Дата: Пятница, 07.07.2017, 23:47 | Сообщение # 3
Полковник
Группа: Проверенные
Сообщений: 341
Награды: 0
Репутация: 5
Статус: Offline
Почему нет?Автор блока утверждает обратное. Судя по схеме подключения при разных комбинациях нажатия кнопок будет разное сопрртивление
 
rw6cm Дата: Пятница, 07.07.2017, 23:55 | Сообщение # 4
Генерал-лейтенант
Группа: Проверенные
Сообщений: 805
Награды: 72
Репутация: 53
Статус: Offline
Цитата vlad ()
Почему нет?Автор блока утверждает обратное.
Не знаю что за блок, (ссылка на главную страницу) но при последовательном соединении,
будет кнопка с наименьшим сопротивлением, все что между, реагировать не будет, т.к просто закорочено этой кнопкой.


Win7-32, FLProg (portable)

Сообщение отредактировал rw6cm - Пятница, 07.07.2017, 23:57
 
vlad Дата: Суббота, 08.07.2017, 00:09 | Сообщение # 5
Полковник
Группа: Проверенные
Сообщений: 341
Награды: 0
Репутация: 5
Статус: Offline
http://flprog.ru/load....1-0-266
Правильная ссылка.

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

 
rw6cm Дата: Суббота, 08.07.2017, 00:31 | Сообщение # 6
Генерал-лейтенант
Группа: Проверенные
Сообщений: 805
Награды: 72
Репутация: 53
Статус: Offline
Из вашей схемы не видно как именно подключены кнопки.
Предположил, как на шилде, если каждую кнопку ставить параллельно своему резюку, то это все меняет )
Без блока вход аналоговый смотрели, показания все разные?
если да, значит в блоке не правильно добавили 5й элемент.
алгоритм пересчета должен рассчитан на 5 резюков


Win7-32, FLProg (portable)
 
vlad Дата: Суббота, 08.07.2017, 00:59 | Сообщение # 7
Полковник
Группа: Проверенные
Сообщений: 341
Награды: 0
Репутация: 5
Статус: Offline
переделанный мной на 5 кн блок не пошел и я пробовал блок автора на 4 кн. у меня он тоже с теми же симптомами не работает.  чет ступил fool , про посмотреть аналоговый вход не догадался. в понедельник гляну все на работе осталось.
 
Dryundel Дата: Суббота, 08.07.2017, 15:32 | Сообщение # 8
Сержант
Группа: Проверенные
Сообщений: 32
Награды: 1
Репутация: 0
Статус: Offline
vlad, есть идея по реализации вашей задумки.
Блок о котором вы говорите совсем не плохая штука. Его автор дает четкие рекомендации - номинал каждого последующего резистора должен быть больше суммы всех предыдущих. Я бы добавил - в 2 раза больше. Соответственно повторяющихся комбинаций не будет. Количество комбинаций при 4 кнопках 16, при пяти 32 ну и т.д.

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

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

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

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

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

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


Сообщение отредактировал Dryundel - Суббота, 08.07.2017, 18:44
 
vlad Дата: Среда, 12.07.2017, 21:48 | Сообщение # 9
Полковник
Группа: Проверенные
Сообщений: 341
Награды: 0
Репутация: 5
Статус: Offline
Только добрался до проекта и чет не получается отправить данные в уарт при компиляции ругается
" 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 Дата: Среда, 12.07.2017, 22:03 | Сообщение # 10
Полковник
Группа: Проверенные
Сообщений: 404
Награды: 8
Репутация: 12
Статус: Offline
Вы случаем не в мегу это засовываете?

Win7/10-64 FLProg v2.5.1 external IDE 1.8.3

 
vlad Дата: Четверг, 13.07.2017, 23:51 | Сообщение # 11
Полковник
Группа: Проверенные
Сообщений: 341
Награды: 0
Репутация: 5
Статус: Offline
нет в нано.

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

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

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

 
Dryundel Дата: Пятница, 14.07.2017, 01:15 | Сообщение # 12
Сержант
Группа: Проверенные
Сообщений: 32
Награды: 1
Репутация: 0
Статус: Offline
Цитата vlad ()
... так не должно же быть. если мы замыкаем все кнопки то показывает сумму всех сопротивлений а если нет то значение выдает отрицательное. не пойму откуда там минус берется?

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

Блок рабочий, я проверял. Единственное, компенсирующий резистор 10к поставил. С 1к2, как по умолчанию в настройках пользователя стоит, не пошел почему то.
 
vlad Дата: Пятница, 14.07.2017, 02:28 | Сообщение # 13
Полковник
Группа: Проверенные
Сообщений: 341
Награды: 0
Репутация: 5
Статус: Offline
Цитата Dryundel ()
vlad, Вы точно правильно схему собрали? Как у автора блока? Резисторы все последовательно, а каждая кнопка параллельно одному из резисторов?При замыкании всех кнопок сопротивление должно быть 0 , а не сумма всех сопротивлений, а напряжение на входе 5V
схема вроде проще не куда. 
но на выходе судя по схеме блока всетаки проиходит вычитание из суммы всех резисторов суммы замкнутых.
 
vlad Дата: Пятница, 14.07.2017, 02:43 | Сообщение # 14
Полковник
Группа: Проверенные
Сообщений: 341
Награды: 0
Репутация: 5
Статус: Offline
. заметил у себя такую вещь. при увеличении комп резистора  на выходе блока расчета нажатых кнопок в случае когда они не замкнуты минусовое число увеличивается. а в случае когда все замкнуты показывает во всех случаях сумму замкнутых резисторов.
вы можете посмотреть что у вас там (см файл) в случае замкнутых кнопок и не замкнутых
Прикрепления: 0885541.png(58Kb)
 
rw6cm Дата: Пятница, 14.07.2017, 07:20 | Сообщение # 15
Генерал-лейтенант
Группа: Проверенные
Сообщений: 805
Награды: 72
Репутация: 53
Статус: Offline
Цитата vlad ()
вы можете посмотреть что у вас там
Все это фигня ))
Взял блок на 4 кн и прогнал по входу сигнал от 0 до 1024.
Результат

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


Win7-32, FLProg (portable)
 
Форум » Основной » Спросить у знатоков » кнопоки на аналоговом входе
Страница 1 из 212»
Поиск:

FLProg © 2017
Яндекс.Метрика