20 кнопок на Uno
- Войдите на сайт для отправки комментариев
Пнд, 13/03/2017 - 18:13
Подскажите совсем ламеру - как сделать, чтоб Ардуина понимала нажатия как минимум двадцати примитивных кнопок?
И какова максимальная дина проводов от платы до кнопок тогда получится?
Уровень абстрактного "понимания" пока не достигнут даже лучшими образцами Искуственного Интеллекта.
Так что, вынужден Вас расстроить: "...сделать, чтоб понимала", вероятно никак не возможно. Вне зависимости от длины проводов.
нашел про схему на основе аналогового входа с навешенными резисторами, по принципу делителя напряжения. Но мне надо, чтоб можно было определять одновременное нажатие нескольких кнопок....
Уровень абстрактного "понимания" пока не достигнут даже лучшими образцами Искуственного Интеллекта.
Уровень ардуинского понимания в виде битового представления "нажата/ненажата" мне необходим и достаточен.
примитивных кнопок
а, вот здесь было обидно... от примитивного слышу.
Можете посмотреть на модули расширения PCF8574/PCF8575. Первый на 8 I/O портов. второй на 16. Таким образом наберете 20 кнопок. Работают по I2C, умеют выдавать сигнал для прерывания при изменении состояния любого I/O - порта.
Ну так .. матричная клавиатура 5Х4 -займёт 9 пинов и правильная программа будет понимать одновременно нажатые кнопки. Или мультиплексоры с достаточным количеством входов - это займёт 6-7 пинов нa ардуине. Много кнопок будет одновременно нажиматься?
Про длину проводов разговор отдельный.
Можете посмотреть на модули расширения PCF8574/PCF8575. Первый на 8 I/O портов. второй на 16. Таким образом наберете 20 кнопок. Работают по I2C, умеют выдавать сигнал для прерывания при изменении состояния любого I/O - порта.
Во. Ещё меньше пинов занято будет.
Можете посмотреть на модули расширения PCF8574/PCF8575. Первый на 8 I/O портов. второй на 16. Таким образом наберете 20 кнопок. Работают по I2C, умеют выдавать сигнал для прерывания при изменении состояния любого I/O - порта.
Спасибо, добрый человек! Теперь понял, что искать.
А то два предыдущих комментатора пытались завести дискуссию на тему наличия ИИ у кнопки, что мне не кажется достойным предметом разговора...
Много кнопок будет одновременно нажиматься?
Про длину проводов разговор отдельный.
Проект на тему квестов в комнате. Поэтому количество кнопок и одновременность нажатий целиком на совести сценариста.
И, соответственно, длина проводов тоже важна. Надежность распознавания нажатия нужна до 10 метров.
Ну могу предложить это . Полный скетч здесь. https://yadi.sk/d/cTyiehOG3FhTED
Но там зоточено под нажатие одной кнопки, а остальное это ошибка. Исправите и будет вам счастье. А дальность увеличивется подключением дополнительной цепи на напряжение 12 В, и оптроной развязкой на входа и выхода.
Головной файл здесь
Девченки и мальчишки!!! Доброго всем времемени дня!
Прошу помочь мне разобраться с моим скетчем. Он состоит из:
Arduino Mega 2580, 2 драйвера + 2 шаговых двигателя NEMA 17, матричная клавиатура.
проблема заключается вот в чем. требуется чтобы при нажатии:
цифры 1 на клавиатуре, двигатель 1 вращался по часовой стрелке.
цифры 2 на клавиатуре, двигатель 1 вращался против часовой стрелке.
цифры 3 на клавиатуре, двигатель 2 вращался по часовой стрелке.
цифры 4 на клавиатуре, двигатель 2 вращался против часовой стрелке.
Но при нажатии любой из перечисленных цифр, двигатели поворачиваются на 1-2 градуса, независимо, нажал ты и отпустил кнопку или нажал и держишь!
скетч этот, в плане двигателей, рабочий 100%!
т.к. есть точно какой же написанный с обычными кнопками. Там все работает как часы!
Прошу помочь разобраться с "матричкой"
Титановый велосипед для кнопок? Не годится? Какая разница, как получать данные от кнопок? Если даже я справился за полдня.
Vitali-71, в описании Вашего алгоритма не совсем ясно, как Вы понимаете слово "вращался", и совершенно отсутствует информация о реакции на отпускание кнопок.
Vitali-71, в описании Вашего алгоритма не совсем ясно, как Вы понимаете слово "вращался", и совершенно отсутствует информация о реакции на отпускание кнопок.
"вращался" значит крутится!
а отпустить значит прекратить работу! (вращение)
то есть он должен (мотор) работать только при нажатии кнопки
Нажатие и удержание - это разные процессы с точки зрения алгоритма.
Нажатие и удержание - это разные процессы с точки зрения алгоритма.
(мотор) должен работать только при удержании кнопки
Vitali-71, в своем скетче Вы реагируете на нажатия, но никак не отслеживаете удержание. Соответственно, скетч и работает: нажали - сделал один шаг, еще раз нажади - еще один.
Vitali-71, в своем скетче Вы реагируете на нажатия, но никак не отслеживаете удержание. Соответственно, скетч и работает: нажали - сделал один шаг, еще раз нажади - еще один.
так, я не знаю как это сделать, поэтому и обращаюсь к вам на форум!!!
Vitali-71, я помог Вам сформулировать (а, вероятно, - и понять) то, что требуется, указал на ошибку, а теперь уж Вы как-то сами. Я не пользуюсь библиотеками, поэтому конкретных указаний, как использовать данную библиотеку, дать не могу. Но направление указал: нужно отслеживать либо удержание кнопки, либо ее отпускание, в зависимости от того, что именно позволяет сделать используемая Вами библиотека. Смотрите, какие там есть команды, разбирайтесь...
А кто-нибудь может помочь доработать скетч, просто я новичок в этом деле.
Ну, не везет вам. Никого с такой же клавиатурой-библиотекой нет на данный момент на форуме.
...просто я новичок...
сбросьте кто его в пропасть - у меня сердце кровью обливается наблюдать сии мучения. О_О
...просто я новичок...
сбросьте кто его в пропасть - у меня сердце кровью обливается наблюдать сии мучения. О_О
это легче всего...
это легче всего...
ты из гильдии мазохистов? О_О
это легче всего...
ты из гильдии мазохистов? О_О
я из тех кто не останавливается на полпути!
Ну так сделайте подпрограмму которая из будет получать нажатые кнопки и возвращать key.
может, лучше сразу в пропасть? О_О
Vitali-71, создайте класс для независимой работы ШД. Метод clockwise() - вращать по часовой, anti_clockwise()- вращать против часовой и stop() - остановится. Вот потом ими и управляйте вашей клавиатурой.
Ееееее, Клапауций эволюционировал до таймера ^_^
qwone, я не знаю как это написать
Не проверял. Разберетесь отладите и будет вам счастье.
Не проверял. Разберетесь отладите и будет вам счастье.
Спасибо, вопрос один есть.... а это отдельный скетч, или дполнение к скетчу клавы?
я просто не пойму как и куда ее подключить (клаву)
http://arduino.ru/forum/programmirovanie/klassy-arduino-po-qwone-dlya-ch... Вот про этот стиль. И подключение рекомендуется похожее. #10 это должно подойти.
http://arduino.ru/forum/programmirovanie/klassy-arduino-po-qwone-dlya-ch... Вот про этот стиль. И подключение рекомендуется похожее. #10 это должно подойти.
Ничего не выходит, а что должно выходить при нажатии на кнопку?