как проще всего подключить несколько ардуино и управлять ими на небольшом расстоянии

Михаил Бурко

✩✩✩✩✩✩✩
16 Апр 2021
30
0
подкл мк.jpgПрошу помочь советом как лучше подключить вот так несколько мег , мне не хватает портов так как будет подключено много различных релюшек,и приходится вот такое подключение сделать, читал о интерфейсе RS--485 думал может както через кан-шину подключение сделать , но так как я новичек а инфы на этот счёт недостаточно ,то мне эти способы не подходят. посоветуйте пожалуйста чтото простое и как примерно это сделать
 

andyparker

✩✩✩✩✩✩✩
14 Окт 2020
18
1
Почитай про сдвиговый регистр (их можно друг к другу подключать), не нужно несколько микроконтроллеров использовать.
 
Изменено:

Михаил Бурко

✩✩✩✩✩✩✩
16 Апр 2021
30
0
Избыточное цитирование
Почитай про сдвиговый регистр (их можно друг к другу подключать), не нужно несколько микроконтроллер использовать.
здравствуйте , а ошибок не будет ? в обе стороны получится отправлять сигналы ? думаю это будет более сложно осуществить чем подключать дуинки
 

andyparker

✩✩✩✩✩✩✩
14 Окт 2020
18
1
Сигналы получится отправлять только в 1 сторону, но вы же сказали, что вам нужно управлять большим количеством реле, или я не прав?
 

IamNikolay

★★★✩✩✩✩
15 Янв 2020
820
175
у меги 4 юарт порта, можно еще и софт юарт добавить и как раз 5 получится
 

Михаил Бурко

✩✩✩✩✩✩✩
16 Апр 2021
30
0
Сигналы получится отправлять только в 1 сторону, но вы же сказали, что вам нужно управлять большим количеством реле, или я не прав?
реле включают клапаны , у клапанов есть концевики , после срабатывания концевиков реле включают двигатели

у меги 4 юарт порта, можно еще и софт юарт добавить и как раз 5 получится
а вот как с этими портами работать , мне бы желательно чтобы вещание шло по одному Serial порту ко всем и все меги слушали его и отправляли в него данные
 

andyparker

✩✩✩✩✩✩✩
14 Окт 2020
18
1
реле включают клапаны , у клапанов есть концевики , после срабатывания концевиков реле включают двигатели
Если нужно только включать/выключать множество реле, вполне можно обойтись сдвиговыми регистрами и транзисторами. Выходы реле будут включать транзисторы, а они уже соответствующую нагрузку (реле, например), без транзисторов подключать к регистру более-менее существенную нагрузку нельзя.
 

Михаил Бурко

✩✩✩✩✩✩✩
16 Апр 2021
30
0
Если нужно только включать/выключать множество реле, вполне можно обойтись сдвиговыми регистрами и транзисторами. Выходы реле будут включать транзисторы, а они уже соответствующую нагрузку (реле, например), без транзисторов подключать к регистру более-менее существенную нагрузку нельзя.
спасибо ,но этот вариант не пойдет ....
 

IamNikolay

★★★✩✩✩✩
15 Янв 2020
820
175
а вот как с этими портами работать , мне бы желательно чтобы вещание шло по одному Serial порту ко всем и все меги слушали его и отправляли в него данные
так на схеме же только 1 мега общается с ПК, а остальные с этой мегой, т.е. она главная, принимает команды по юарт, разбивает их по назначению(для какой меги предназначается команда) и отправляет в соответствующий сериал, получив ответ - отправляет все в пк с указанием с какой меги это пришло
 

poty

★★★★★★✩
19 Фев 2020
3,237
942
Есть и двунаправленные регистры, например, MCP23008, MCP23016 и т.д. Использовать кучу Мега для того, чтобы включать реле и отслеживать концевики, как мне кажется, весьма накладно. Я понимаю, что Вы бы на каждый клапан какую-нибудь Тини подключали - тогда да!
А так - я полностью согласен с @PiratFox, I2C Вам в помощь. Может, ещё 1Wire, но тяжелее.
 

Михаил Бурко

✩✩✩✩✩✩✩
16 Апр 2021
30
0
Есть и двунаправленные регистры, например, MCP23008, MCP23016 и т.д. Использовать кучу Мега для того, чтобы включать реле и отслеживать концевики, как мне кажется, весьма накладно. Я понимаю, что Вы бы на каждый клапан какую-нибудь Тини подключали - тогда да!
А так - я полностью согласен с @PiratFox, I2C Вам в помощь. Может, ещё 1Wire, но тяжелее.
задача стоит в том чтобы всё было сделано максимально просто и без всякой пайки , бюджет неограничен , сломалось чтото выбросил всё поставил другое

Есть и двунаправленные регистры, например, MCP23008, MCP23016 и т.д. Использовать кучу Мега для того, чтобы включать реле и отслеживать концевики, как мне кажется, весьма накладно. Я понимаю, что Вы бы на каждый клапан какую-нибудь Тини подключали - тогда да!
А так - я полностью согласен с @PiratFox, I2C Вам в помощь. Может, ещё 1Wire, но тяжелее.
а по I2C получится в две стороны отправлять данные? задавать адрес и т.п , ато я уже GBUS изучаю, немогу никак определьться....
 

PiratFox

★★★★★✩✩
13 Фев 2020
1,706
474
а по I2C получится в две стороны отправлять данные? задавать адрес и т.п
В посте #6 есть ссылка на РАБОЧИЙ пример, к тому же на русском языке, читайте сами. Никто Вам разжёвывать ничего не будет.
 

Михаил Бурко

✩✩✩✩✩✩✩
16 Апр 2021
30
0
Я юзаю подключение по I2C шине. Как по мне - то намного удобнее, чем UART. Примеры здесь.
здесь хороший пример тоже , закину может кому надо https://soltau.ru/index.php/arduino/item/371-interfejs-i2c-i-arduino

В посте #6 есть ссылка на РАБОЧИЙ пример, к тому же на русском языке, читайте сами. Никто Вам разжёвывать ничего не будет.
да я понял , спасибо
 

poty

★★★★★★✩
19 Фев 2020
3,237
942
задача стоит в том чтобы всё было сделано максимально просто и без всякой пайки , бюджет неограничен , сломалось чтото выбросил всё поставил другое
Ерунда какая-то, если честно... Ну, как знаете.
 
  • Лойс +1
Реакции: bort707

selevo

✩✩✩✩✩✩✩
25 Апр 2020
22
3
можно все подключить параллельно по 1 UART
тоесть ведущая плата сигналом Tx подключается на все Rx остальных плат одновременно.

А Rx главной платы подключается ко всем остальным Tx плат, через диод, катодом к управляемой плате. На основной плате поставить подтягивющий резистор (10к на +5V) если нехватит внутреннего.
Платы будут отвечать только те к которой обратишся, а слушать будут сразу все.
Ну тоесть типа:
Плата пять, включи реле два, как поняла ?
Плата пять, сигнал принят, реле 2 влючено.
Пала 1,3,2,4, включить реле 0,1,1,2
Плата 1,сигнал принят, реле 0 влючено.
Плата 3,сигнал принят, реле 1 влючено.
Плата 2,сигнал принят, реле 1 влючено.
Плата 4,сигнал принят, реле 2 влючено.

Можно упростить адресацию (парсинг), во всех платах будет один и тот же код.
Но скорости будут разные, ниодна плата не примет то что отправлено другой на другой скорости. Тоесть проигнорирует скажем число1999 посланную на скорости 115200 которая включит реле 9 на 99 милисекунд только на плате 3 которая настроена на эту скорость, а цифра 1 вначале это байт контроля,все команды должны начинаться с неё, иначе пропуск команды.
Но на основной придется заморочиться и последовательно менять скорость опрашивая платы по их состоянию, если это вообще надо.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
Есть двунаправленные сдвиговые регистры/расширители портов на и2ц шину. Уже обсуждались тут на форуме.
Вешайте на них гирлянды своих реле и управляйте всем с одной платы. Не усложняйте сущности где не надо.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,974
633
45
можно все подключить параллельно по 1 UART
Это один из худших вариантов. У данного варианта нет никакого контроля доставки, нет обработки ошибок при одновременной передачи от двух и более устройств и пр. Нет, это можно все программно реализовать, но в итоге получится тот-же I2C или 1-wire.