Как стать автором
Обновить

Передача данных между микроконтроллерами Arduino через последовательный интерфейс

Время на прочтение2 мин
Количество просмотров15K

Обмен данными между двумя платами 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".

Наш телеграмм канал

Теги:
Хабы:
Всего голосов 31: ↑2 и ↓29-26
Комментарии20

Публикации

Истории

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань