Связь между двумя терминалами Arduino с использованием Xbee

У меня есть 2 платы Arduino, на каждой из которых установлены Xbee Shield и модуль Xbee S1. Одна Arduino устанавливается на шасси автомобиля, а другая подключается к ПК. Наша цель — отправить сигнал с Arduino, подключенного к ПК, и мотор будет управляться Arduino, подключенной к шасси автомобиля. Вот код Arduino, подключенного к ПК:

char msg= "";
void setup(){
 Serial.begin(9600);}

void loop(){
 msg=Serial.read();
 serial.println(msg);
}

Вот код Arduino на шасси автомобиля:

char msg = ' '; 
int motorA1 = 2;
int motorA2 = 3;
int motorB1 = 4;
int motorB2 =5;

void setup() {
  pinMode(motorA1, OUTPUT);
  pinMode(motorA2, OUTPUT);
  pinMode(motorB1, OUTPUT);
  pinMode(motorB2, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  while(Serial.available()>0){
  msg=Serial.read();
  switch(msg){
   case 'f':Serial.println("Forward");break;
   case 'b':Serial.println("Backward");break;
   case 'r':Serial.println("Right");break;
   case 'l':Serial.println("Left");break;
   case 's':Serial.println("Stop");break;
 }
if(msg=='f'){
  digitalWrite(motorA1,HIGH);
  digitalWrite(motorA2, LOW);
  digitalWrite(motorB1,HIGH);
  digitalWrite(motorB2,LOW);
  Serial.println("Running Forward");
  }
if(msg=='b'){
  digitalWrite(motorA1,LOW);
  digitalWrite(motorA2,HIGH);
  digitalWrite(motorB1,LOW);
  digitalWrite(motorB2,HIGH);
  }
if(msg=='s'){
  digitalWrite(motorA1,LOW);
  digitalWrite(motorA2,LOW);
  digitalWrite(motorB1,LOW);
  digitalWrite(motorB2,LOW);
  }
if(msg=='r'){
  digitalWrite(motorA1,HIGH);
  digitalWrite(motorA2, LOW);
  digitalWrite(motorB1,LOW);
  digitalWrite(motorB2,LOW);
  }
if(msg=='l'){
  digitalWrite(motorA1,LOW);
  digitalWrite(motorA2,LOW);
  digitalWrite(motorB1,HIGH);
  digitalWrite(motorB2,LOW);
  }
}
}

Теперь наша следующая цель — отправить обратную связь от автомобиля на терминал Arduino ПК, например, если мы вводим «f» в качестве ввода и получаем ответ «Running Forward» на следующей строке. Какую строку кода мы должны включить для этого?

, 👍-1

Обсуждение

Разве ваш код не делает это уже в операторе switch?, @mico

Вам нужно два последовательных соединения на ПК Arduino. Тот, который подключается через xbee, и тот, который подключается к монитору ПК/USB. Вам нужно описать, какое оборудование у вас есть, потому что это может быть сложно, если вы используете экран с фиксированным назначением последовательных контактов., @Visual Micro


1 ответ


1

//ваш код выглядит почти нормально. То, что я чувствую неправильно, это то, что arduino находится в конце ПК. Он должен одновременно общаться с ПК и вторым Arduino. Поэтому используйте библиотеку arduino mega или «#include», чтобы использовать дополнительный последовательный порт на этом конце, если вы используете arduin uno. Ваш код будет таким..

char msg= "";

void setup(){
Serial.begin(9600);
Serial1.begin(9600)//<----ошибка
}

void loop(){
 msg=Serial.read();
 serial1.println(msg);//<- - -ошибка
}
,

Подскажите, пожалуйста, как добавить дополнительный серийный номер на Arduino на ПК с помощью программной библиотеки серийных номеров, так как у меня UNO. пожалуйста, дайте мне окончательный код, @Ritam Das