두 개의 Arduino가 직렬로 통신하도록 만드는 방법.

우리 모두 알다시피 Arduino는 너무 많은 센서를 처리하고 놀라지 않고 모든 센서를 계산할 수 없기 때문에 때때로 센서를 다른 Arduino에 아웃소싱하고 값을 계산하여 마스터에서 우리에게 보내야 합니다.

배선





RX ===> 텍사스
송신 ===> 수신
접지 ===> 접지

다른 아두이노에 데이터를 보내고, 그것을 계산해서 마스터에서 나에게 보내도록 해야 했습니다.

마스터 코드




char number  = ' ';
String message = "";
bool send_data = true;
void setup()
{
  Serial.begin(9600);

}

void loop()
{

  while(send_data){

  Serial.println("Little bord Hi!! ");

   readData();
  delay(2000);
  if(message != ""){
      if(message == "2222"){
      send_data = false;

      Serial.println("Message received");
      Serial.println("******************");
      Serial.println(message);
      Serial.println("******************");
      }
  }
      message = "";

  }


}

void readData(){
  while(Serial.available()){

   if(Serial.available())
   {
      char number = Serial.read();
      message += number ;
   }
  }
}


슬레이브 코드




char number  = ' ';
String message = "";
bool is_not_sent = true; 
void setup() 
{
  pinMode(LED_BUILTIN, OUTPUT);
   Serial.begin(9600);
   Serial.println("START");
}


void loop()
{


 readData();
  delay(2000);
 if(is_not_sent)
  {
    if(message != ""){
      message = "Big bro said : " + message;
      // Serial.println(message);
      digitalWrite(LED_BUILTIN, HIGH); 
      delay(500);
      Serial.print(2222);
      delay(500);

      // Todo check wach correct data
      is_not_sent = false;
      message = "";
  }
  }
}



void readData(){
  while(Serial.available()){

   if(Serial.available())
   {
      char number = Serial.read();
      message += number ;
   }
  }
}

좋은 웹페이지 즐겨찾기