Пины ардуино, взаимодействия между ними

borischv
Offline
Зарегистрирован: 19.05.2021

Здравствуйте. 

Основной вопрос такой, может ли каким-нибудь образом ардуино "понимать", что определенные пары пинов ну допустим 5-6, и 7-8, и 9-10 одновременно соединены между собой? и "понимать" какие именно? И если да то в какую сторону вообще думать? А если нет, то как можно это имитировать?

Это нужно например для такого задания:

Есть 5 разъемов с одной стороны и 5 с другой. И нужно наугад соединять эти разъемы проводами. И каждый раз порядок соединений разный. И тут все упирается в основной вопрос. Спасибо заранее

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

Тоже диплом завтра?

borischv
Offline
Зарегистрирован: 19.05.2021

Не, квесты организую для детей, много простых заданий. Одно из них

b707
Offline
Зарегистрирован: 26.05.2017

borischv пишет:

Основной вопрос такой, может ли каким-нибудь образом ардуино "понимать", что определенные пары пинов ну допустим 5-6, и 7-8, и 9-10 одновременно соединены между собой?

мне кажется нет. Ардуина лишь может понять, когда пин замкнут на землю и когда на питание. а между собой - такого не знаю.

rkit
Offline
Зарегистрирован: 23.11.2016

Смотри схему матричной клавиатуры.

AndreyD
AndreyD аватар
Offline
Зарегистрирован: 07.10.2018

А если соединять пины с ШИМ на выход и аналоговые пины?

borischv
Offline
Зарегистрирован: 19.05.2021

Понял, но ведь есть библиотека Keypad.h которая позволяет работать с цифровой клавиатурой 3*4 или 4*4. И эта клавиатура подключается именно к пинам и при нажатии клавиши она считывается как замыкание между собой определенных пинов, один из которых отвечает за строки, другой за столбцы клавиш. То как это работает?

borischv
Offline
Зарегистрирован: 19.05.2021

AndreyD пишет:

А если соединять пины с ШИМ на выход и аналоговые пины?

Тоже думал про это, но может есть более простое решение?

borischv
Offline
Зарегистрирован: 19.05.2021

rkit пишет:

Смотри схему матричной клавиатуры.

Смотрел, но смысл в том что при нажатии клавиши, блокируется весь код как при delay. А мне нужно что бы можно было одновременно как бы "несколько клавиш нажимать".

Alexey_Rem
Offline
Зарегистрирован: 09.09.2019

На один из выводов подать ШИМ (заранее известный)  другой читать методом pulseIn() по соответсвию коэф заполнения узнаем какой пин подключен-по моему самый простой метод

rkit
Offline
Зарегистрирован: 23.11.2016

borischv пишет:

rkit пишет:

Смотри схему матричной клавиатуры.

Смотрел, но смысл в том что при нажатии клавиши, блокируется весь код как при delay

Нифига себе ты схему нашел, что аж код блокирует.

Feofan
Offline
Зарегистрирован: 28.05.2017

Надо только соединение между 5 и 6, 7 и 8, 9 и 10? Или в произвольном порядке, к примеру 5 и 7?

borischv
Offline
Зарегистрирован: 19.05.2021

rkit пишет:

borischv пишет:

rkit пишет:

Смотри схему матричной клавиатуры.

Смотрел, но смысл в том что при нажатии клавиши, блокируется весь код как при delay

Нифига себе ты схему нашел, что аж код блокирует.

ну то есть, пока клавиша нажата и не отпущена, нельзя нажать другую клавишу. А у меня одновременно должно быть нажато до 5 клавиш.

borischv
Offline
Зарегистрирован: 19.05.2021

Alexey_Rem пишет:

На один из выводов подать ШИМ (заранее известный)  другой читать методом pulseIn() по соответсвию коэф заполнения узнаем какой пин подключен-по моему самый простой метод

Так и буду делать наверно, спасибо

borischv
Offline
Зарегистрирован: 19.05.2021

Feofan пишет:

Надо только соединение между 5 и 6, 7 и 8, 9 и 10? Или в произвольном порядке, к примеру 5 и 7?

Не, "связи" генерируются случайно, но одна сторона всегда состоит из одних и тех же пинов. Например 2,3,4,5,6 и соединяются с 7,8,9,10,11 в случайном порядке.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

borischv пишет:

ну то есть, пока клавиша нажата и не отпущена, нельзя нажать другую клавишу

????????????????? Абалденная схема! Мне бы в коллекцию её... ;))

Alexey_Rem
Offline
Зарегистрирован: 09.09.2019

В принципе динамический опрос выводов как бы тоже рабочий, но ннаверное более затратный в плане программрования и требуемых знаний

imp
Offline
Зарегистрирован: 20.06.2020

borischv пишет:

Feofan пишет:

Надо только соединение между 5 и 6, 7 и 8, 9 и 10? Или в произвольном порядке, к примеру 5 и 7?

Не, "связи" генерируются случайно, но одна сторона всегда состоит из одних и тех же пинов. Например 2,3,4,5,6 и соединяются с 7,8,9,10,11 в случайном порядке.

Первую группу настраиваешь как входы с подтяжкой к питанию, вторую как выходы. Устанавливаешь на всех выходах единицу. По очереди устанавливаешь один из выходов в ноль, и проверяешь на каком из входов окажется ноль. Эти пины соединены. Так перебором узнаешь все соединения пинов.

borischv
Offline
Зарегистрирован: 19.05.2021

Alexey_Rem пишет:

В принципе динамический опрос выводов как бы тоже рабочий, но ннаверное более затратный в плане программрования и требуемых знаний

сложно)

borischv
Offline
Зарегистрирован: 19.05.2021

wdrakula пишет:

borischv пишет:

ну то есть, пока клавиша нажата и не отпущена, нельзя нажать другую клавишу

????????????????? Абалденная схема! Мне бы в коллекцию её... ;))

Вроде как старые версии библиотеки

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

imp пишет:

borischv пишет:

Feofan пишет:

Надо только соединение между 5 и 6, 7 и 8, 9 и 10? Или в произвольном порядке, к примеру 5 и 7?

Не, "связи" генерируются случайно, но одна сторона всегда состоит из одних и тех же пинов. Например 2,3,4,5,6 и соединяются с 7,8,9,10,11 в случайном порядке.

Первую группу настраиваешь как входы с подтяжкой к питанию, вторую как выходы. Устанавливаешь на всех выходах единицу. По очереди устанавливаешь один из выходов в ноль, и проверяешь на каком из входов окажется ноль. Эти пины соединены. Так перебором узнаешь все соединения пинов.

Короткое описание алгоритма сканирования матричной клавиатуры ;)))

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

borischv пишет:
Вроде как старые версии библиотеки

Я уже икаю под столом. Заканчивай клоунаду! Пощади!

borischv
Offline
Зарегистрирован: 19.05.2021

imp пишет:

borischv пишет:

Feofan пишет:

Надо только соединение между 5 и 6, 7 и 8, 9 и 10? Или в произвольном порядке, к примеру 5 и 7?

Не, "связи" генерируются случайно, но одна сторона всегда состоит из одних и тех же пинов. Например 2,3,4,5,6 и соединяются с 7,8,9,10,11 в случайном порядке.

Первую группу настраиваешь как входы с подтяжкой к питанию, вторую как выходы. Устанавливаешь на всех выходах единицу. По очереди устанавливаешь один из выходов в ноль, и проверяешь на каком из входов окажется ноль. Эти пины соединены. Так перебором узнаешь все соединения пинов.

Если я правильно понял, то мне не совсем это нужно. 

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

borischv
Offline
Зарегистрирован: 19.05.2021

wdrakula пишет:

borischv пишет:
Вроде как старые версии библиотеки

Я уже икаю под столом. Заканчивай клоунаду! Пощади!

Чувак, ты че рофлишь, я подключал клавиатуры давным давно и помню если зажать клавишу, другая не считывалась))

Green
Offline
Зарегистрирован: 01.10.2015

А если нажать 3 определенные кнопки, то компьютер перезагружался.

 

Green
Offline
Зарегистрирован: 01.10.2015

Ну да, это не сложно.  А вот куча концов в разных комбинациях, с узлами в 2, 3 провода, некоторые могут вообще ни с чем не соединяться - это посложнее.

imp
Offline
Зарегистрирован: 20.06.2020

Это получение данных о соединениях пинов. В твоем случае, получив эти данные нужно сравнить с правильными если совпадают, то квест пройден. Если не совпадают, перейти обратно к получению данных.

rkit
Offline
Зарегистрирован: 23.11.2016

borischv пишет:

Чувак, ты че рофлишь, я подключал клавиатуры давным давно и помню если зажать клавишу, другая не считывалась))

Ну и зачем было врать, что ты смотрел схему, если нифига ты не смотрел, и уж точно не напрягал мозги.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

borischv пишет:

Здравствуйте. 

Основной вопрос такой, может ли каким-нибудь образом ардуино "понимать", что определенные пары пинов ну допустим 5-6, и 7-8, и 9-10 одновременно соединены между собой? и "понимать" какие именно? И если да то в какую сторону вообще думать? А если нет, то как можно это имитировать?

Это нужно например для такого задания:

Есть 5 разъемов с одной стороны и 5 с другой. И нужно наугад соединять эти разъемы проводами. И каждый раз порядок соединений разный. И тут все упирается в основной вопрос. Спасибо заранее

Постановка задачи совершенно не следует из приведенного задания.

Постановка адекватная заданию намного проще: как определить, какие входы соединены с какими выходами?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

borischv пишет:

rkit пишет:

Смотри схему матричной клавиатуры.

Смотрел, но смысл в том что при нажатии клавиши, блокируется весь код как при delay. А мне нужно что бы можно было одновременно как бы "несколько клавиш нажимать".

Кто Вам сказал эту глупость?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

borischv пишет:

wdrakula пишет:

borischv пишет:
Вроде как старые версии библиотеки

Я уже икаю под столом. Заканчивай клоунаду! Пощади!

Чувак, ты че рофлишь, я подключал клавиатуры давным давно и помню если зажать клавишу, другая не считывалась))

Не считывалась почему?

Из-за того, что первая клавиша заблокировала компьютер или из-за криво сделанных клавиатуры и программы ее опроса?

Гриша
Offline
Зарегистрирован: 27.04.2014

borischv пишет:

Feofan пишет:

Надо только соединение между 5 и 6, 7 и 8, 9 и 10? Или в произвольном порядке, к примеру 5 и 7?

Не, "связи" генерируются случайно, но одна сторона всегда состоит из одних и тех же пинов. Например 2,3,4,5,6 и соединяются с 7,8,9,10,11 в случайном порядке.

в принципе в посте 17 уже ответили... Но мне не понятно, если назначены и неизменны "условно назовем" "входы" и "выходы" какие могут быть проблемы?! задача простейшая, быстренько перебрать все комбинации и не забыть про подтягивающие резисторы (чтобы ноги не "плавали").   В чем сложность?!