
Обмен данными между двумя платами Arduino очень полезен. В больших проектах можно назначит несколько микроконтроллеров для управления техническими процессами.
Реализовать обмен данными между двумя микроконтроллерами Arduino можно с использованием последовательного интерфейса передачи данных. Для этого будут использоваться контакты RX-0 и TX-1.
Схема подключения микроконтроллеров Arduino UNO

Контакт Arduino UNO -1 RX-0 подключается к контакту TX-1 Arduino UNO -2 и на оборот контакт TX-1 Arduino UNO -1 подключается к контакту RX-0 Arduino UNO -2.
Обратите внимание, что необходимо обязательно подключить контакты GND. В противном случае обмен данными происходить не будет!
Код C++ для микроконтроллера Arduino UNO -1
Микроконтроллер Arduino UNO -1 будет отправлять целочисленные данные через последовательный интерфейс на микроконтроллер Arduino UNO -2.
// C++ code void setup() { // скорость передачи данных через последовательный интерфейс 9600 бит/сек Serial.begin(9600); } int thisByte = 33; // целочисленная переменная void loop() { // передаём значение переменной в последовательный интерфейс передачи данных Serial.write(thisByte); // если целочисленная переменная равняется 126, прекратить передачу данных if (thisByte == 126) { while (true) { continue; } } // увеличиваем значение целочисленной переменной thisByte ++; // пауза 1000 миллисекунд delay(1000); }
Код C++ для микроконтроллера Arduino UNO -2
Микроконтроллер Arduino UNO -2 будет получать целочисленные данные через последовательный интерфейс от микроконтроллера Arduino UNO -1.
// C++ code // объявляем и инициализируем целочисленную переменную int incomingByte = 0; void setup() { Serial.begin(9600); } void loop() { // если в последовательном интерфейсе присутствуют данные передать их в консоль if (Serial.available() > 0) { // читаем даннные из последовательного интерфейса и присваиваем целочисленной переменнной incomingByte = Serial.read(); // выводи переменную в консоль Serial.print("Received: "); Serial.write(incomingByte); // выводим переменную в консоль в разных кодировках Serial.print(" INT: "); Serial.print(incomingByte); Serial.print(" DEC: "); Serial.print(incomingByte, DEC); Serial.print(" HEX: "); Serial.print(incomingByte, HEX); Serial.print(" OCT: "); Serial.print(incomingByte, OCT); Serial.print(" BIN: "); Serial.print(incomingByte, BIN); Serial.println(" "); } }
Результат работы в консоли микроконтроллера Arduino UNO -1

Результат работы в консоли микроконтроллера Arduino UNO -2

Посмотреть симуляцию работы проекта
Более подробную инструкцию вы можете получить посмотрев видео «Связь между двумя платами Arduino».
ссылка на оригинал статьи https://habr.com/ru/post/709044/
Добавить комментарий