Общение двух Arduino через RX/TX

Daemon2017
Offline
Зарегистрирован: 08.10.2013

Имеется две ардуинки(UNO R3). Когда на первой ардуинке происходит определенное событие - необходимо подать сигнал на вторую, дабы она запустила у себя какую-либо свою функцию.

Можно ли бросить провод от TX-выхода одной ардуинки на RX-вход второй ардуинки и подавать по нему единицу(HIGH) в тот момент, когда на первой произошло то самое событие? Соответственно, на второй соорудить проверку 0 или 1 на её RX-входе. 

Ну и аналогичный вопрос про аналоговые входы и ШИМ-выходы: можно ли сделать так, чтобы если первая ардуинка выдает одно значение на выход(а вторая это значение принимает), то вторая ардуинка выполнит одну команду, а если другое(например, в первом случае, будем посылать 64, а во втором - 128), то другую команду.

Как запрограммировать это я знаю, а вот возможно ли то технически - другой вопрос, который меня и интересует. Боюсь спалить что-нибудь)

Клапауций
Offline
Зарегистрирован: 10.02.2013

Daemon2017 пишет:
Можно ли бросить провод от TX-выхода одной ардуинки на RX-вход второй ардуинки и подавать по нему единицу(HIGH) в тот момент, когда на первой произошло то самое событие? Соответственно, на второй соорудить проверку 0 или 1 на её RX-входе. 

не совсем понятно, зачем RX, TX для этого использовать? - любой цифровой пин подойдёт для приёма/отправки  0/1

Daemon2017
Offline
Зарегистрирован: 08.10.2013

Клапауций пишет:

Daemon2017 пишет:
Можно ли бросить провод от TX-выхода одной ардуинки на RX-вход второй ардуинки и подавать по нему единицу(HIGH) в тот момент, когда на первой произошло то самое событие? Соответственно, на второй соорудить проверку 0 или 1 на её RX-входе. 

не совсем понятно, зачем RX, TX для этого использовать? - любой цифровой пин подойдёт для приёма/отправки  0/1

Я как пример привел :)

Т.е. любой цифровой можно и всё будет хорошо?) А ШИМ-выход и аналоговый вход можно сдружить?

Спасибо за ответ :)

Клапауций
Offline
Зарегистрирован: 10.02.2013

Daemon2017 пишет:

Т.е. любой цифровой можно и всё будет хорошо?)

вы же кнопку как к цифровому входу подключаете - ведь всё хорошо?

Daemon2017 пишет:

А ШИМ-выход и аналоговый вход можно сдружить?

нет

Daemon2017
Offline
Зарегистрирован: 08.10.2013

Да, всё хорошо. Хотел лишний раз убедиться.

Жаль, что с большИм количеством градаций(т.е. ШИМ + аналоговый вход) не получится. Придется городить отдельную систему связи... 

Еще раз спасибо Вам :)

Клапауций
Offline
Зарегистрирован: 10.02.2013

Daemon2017 пишет:

Жаль, что с большИм количеством градаций(т.е. ШИМ + аналоговый вход) не получится. Придется городить отдельную систему связи... 

у шима отсутсвуют градации напряжения

какую систему связи? - соединяйте проводами напрямую

*прекратите благодарить - мои ответы вам не помогают.

Daemon2017
Offline
Зарегистрирован: 08.10.2013

Проводами напрямую?

Вы имеете ввиду что-то вроде этого:

Цифровой разьем 1 первой ардуинки соединяем с разьемом 1 второй ардуинки. Когда нужно выполнить операцию "А" - первая ардуинка выдает единицу в этот разьем.

Цифровой разьем 2 первой ардуинки соединяем с разьемом 2 второй ардуинки. Когда нужно выполнить операцию "Б" - первая ардуинка выдает единицу в этот разьем.

и так далее. Верно?

Еще как помогают - я терпеть не могу неопределенность, а Вы внесли долгожданную ясность. 

 
Клапауций
Offline
Зарегистрирован: 10.02.2013

Daemon2017 пишет:

Вы имеете ввиду что-то вроде этого:

Цифровой разьем 1 первой ардуинки соединяем с разьемом 1 второй ардуинки. Когда нужно выполнить операцию "А" - первая ардуинка выдает единицу в этот разьем.

Цифровой разьем 2 первой ардуинки соединяем с разьемом 2 второй ардуинки. Когда нужно выполнить операцию "Б" - первая ардуинка выдает единицу в этот разьем.

и так далее. Верно?

ну, "да", а как иначе - входы/выходы у дуино есть и их можно использовать.

Daemon2017
Offline
Зарегистрирован: 08.10.2013

Вот и отлично, так и поступим :)

Клапауций
Offline
Зарегистрирован: 10.02.2013

Daemon2017 пишет:

Вот и отлично, так и поступим :)

а, до этого, как вы хотели делать?

Daemon2017
Offline
Зарегистрирован: 08.10.2013

Именно так и  хотел. Нужна была уверенность в том, что я ничего не сломаю такими действиями :))

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

землю не забудьте пробросить кроме сигнала,  а то намучаетесь

а лучше общее питание

com
Offline
Зарегистрирован: 06.09.2013

только еще надо обратную связь организовать, чтобы первая ардуина знала, что вторая по команде все что надо выполнила и можно логическую единицу с выхода 1 снимать. а то ведь вторая ардуина будет вход циклически опрашивать? и единожды получив единицу на вход исполнять команду до бесконечности.... Тогда, к примеру, 3-я нога второй ардуины будет выходом и соединена с 3-ей ногой первой ардуины, которая будет входом, и после получения команды по первой ноге идет отмашка о выполнении по третьей :)

Когда количество задействованных ног превысит десяток и вы запутаетесь окончательно, можно снова вернуться к rx/tx - там любое количество разнообразных команд можно передавать по двум ногам, но надо заморачиваться с разбором команд, как одну от другой отличать. но это не сложно.

 

vdk
Offline
Зарегистрирован: 14.04.2013

Для обратной связи можно выделить управляющую линию.

Тогда цикл обмена будет таким: выставляем на три линии код команды (в три линии влезает 6 команд, в 4 - 15), а на управляющую - сигнал готовности команды. Потом потом сигнал с управляющей линии снимаем и ждем на этой же линии сигнал подтверждения

Daemon2017
Offline
Зарегистрирован: 08.10.2013

com пишет:

только еще надо обратную связь организовать, чтобы первая ардуина знала, что вторая по команде все что надо выполнила и можно логическую единицу с выхода 1 снимать. а то ведь вторая ардуина будет вход циклически опрашивать? и единожды получив единицу на вход исполнять команду до бесконечности.... Тогда, к примеру, 3-я нога второй ардуины будет выходом и соединена с 3-ей ногой первой ардуины, которая будет входом, и после получения команды по первой ноге идет отмашка о выполнении по третьей :)

Когда количество задействованных ног превысит десяток и вы запутаетесь окончательно, можно снова вернуться к rx/tx - там любое количество разнообразных команд можно передавать по двум ногам, но надо заморачиваться с разбором команд, как одну от другой отличать. но это не сложно.

Тоже об этом вчера подумал - обратная связь будет :)

А не подскажете, где можно почитать про команды TX/RX? Команд будет 2-3, не более, но для собственного развития хотел бы поизучать.

Daemon2017
Offline
Зарегистрирован: 08.10.2013

vdk пишет:

Для обратной связи можно выделить управляющую линию.

Тогда цикл обмена будет таким: выставляем на три линии код команды (в три линии влезает 6 команд, в 4 - 15), а на управляющую - сигнал готовности команды. Потом потом сигнал с управляющей линии снимаем и ждем на этой же линии сигнал подтверждения

Тоже отличная идея - может в аналогичных проектах пригодится. Спасибо :)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Daemon2017 пишет:

vdk пишет:

Для обратной связи можно выделить управляющую линию.

Тогда цикл обмена будет таким: выставляем на три линии код команды (в три линии влезает 6 команд, в 4 - 15), а на управляющую - сигнал готовности команды. Потом потом сигнал с управляющей линии снимаем и ждем на этой же линии сигнал подтверждения

Тоже отличная идея - может в аналогичных проектах пригодится. Спасибо :)

ну это уже изобретение интерфейсов. есть же рабочие опробованные многими людьми и даже стандартизированные

com
Offline
Зарегистрирован: 06.09.2013

Daemon2017 пишет:

А не подскажете, где можно почитать про команды TX/RX? Команд будет 2-3, не более, но для собственного развития хотел бы поизучать.

почитайте http://arduino.ru/Reference/Serial