Найти тему
DF Technologies

Подключение двух и более arduino к одной по UART

Оглавление

Подключении большого количества контроллеров к одному это не такая тривиальная задача, в этой статье я расскажу как эту задачу решил я, мне удалось подключить 8 контроллеров к одному, но думаю можно и больше.

Два контроллера подключить по UART не составляет никакой трудности, нужно всего лишь соединить RXD одного контроллера с TXD другого контроллера и так же TXD с RXD так как показано на рисунке

Подключение большого количества микроконтроллеров

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

Помимо этого физически невозможно у всех контроллеров подключить RXD и TXD крест накрест. По этому ведомые будут соединены параллельно, а к ведущему уже наоборот.

Но так как в момент когда передача данных не осуществляется ножка TXD подтянута к +5 Вольт, а данные передаются импульсам логического нуля то при подключении параллельно без вспомогательных устройств ведомые контроллеры не смогут передавать данные. На этот случай нам поможет обычный диод и теперь схема поменяется на представленную на рисунке ниже.

-2

Так как ранее линия была подтянута к +5 Вольт передатчиками, а после установки диодов такого не будет то следует установить подтягивающий резистор на ведущем контроллере к линии RXD, но в тестах я про него забыл и все работало нормально, +5 на линии в простое были но для надежности я бы установил этот резистор

Код для устройств

Код ведущего устройства

Код для ведомого устройства, в первой строке number это тот id на который будет откликаться наше устройство

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