Arduino

아두이노 간 블루투스 통신 : LED 3개 연결해서 블루투스로 제어하기

작성자 임베디드코리아 작성일25-05-16 00:47 조회143회 댓글0건

첨부파일

▷ 한쪽의 아두이노에 LED 3개와 블루투스를 연결하여
▷ 다른 쪽 아두이노에는 블루투스만 연결한다.

--- < LED 3개와 블루투스 연결 소스 코드 >---------------------
#include <SoftwareSerial.h>

SoftwareSerial BlueToothSerial(4, 5); // RX, TX

const int LED1_Pin = 8;
const int LED2_Pin = 9;
const int LED3_Pin = 10;

typedef enum{ 
  LED1=1,
  LED2=2,
  LED3=3
  } LEDnum;

LEDnum LEDselect = LED1;


void setup() {
  Serial.begin(9600);
  BlueToothSerial.begin(9600);

  /* LED 출력으로 설정 */
  pinMode(LED1_Pin, OUTPUT);
  pinMode(LED2_Pin, OUTPUT);
  pinMode(LED3_Pin, OUTPUT);

  /* LED 끄기 */
  digitalWrite(LED1_Pin, LOW);
  digitalWrite(LED2_Pin, LOW);
  digitalWrite(LED3_Pin, LOW);
}

void loop() {
  if(BlueToothSerial.available())        // 블루투스 모듈에 데이터가 들어오면
  {
   
    int incoming = BlueToothSerial.parseInt();      // 수신된 숫자 읽어들이기
 
    if(incoming==LED1)
    {
      setLED(LED1);
    }
    else if(incoming==LED2)
    {
      setLED(LED2);
    }
    else if(incoming==LED3)
    {
      setLED(LED3);
    }

    Serial.println(incoming);
   
  }

  if(Serial.available())              // 시리얼 데이터 수신이 있으면
  {
    BlueToothSerial.write(Serial.read());    // 블루투스로 송신
  }

}

void setLED(LEDnum LEDselect){
 
  if(LEDselect==LED1)
  {
    digitalWrite(LED1_Pin, HIGH);
    digitalWrite(LED2_Pin, LOW);
    digitalWrite(LED3_Pin, LOW);
  }
  else if(LEDselect==LED2)
  {
    digitalWrite(LED1_Pin, HIGH);
    digitalWrite(LED2_Pin, HIGH);
    digitalWrite(LED3_Pin, LOW);
  }
  else if(LEDselect==LED3)
  {
    digitalWrite(LED1_Pin, HIGH);
    digitalWrite(LED2_Pin, HIGH);
    digitalWrite(LED3_Pin, HIGH);
  }
}

--------< 블루투스 1, 2, 3 전송 소스 코드 >------------
#include <SoftwareSerial.h>

SoftwareSerial BlueToothSerial(4, 5); // RX, TX
 
void setup() 
{
  Serial.begin(9600);
  BlueToothSerial.begin(9600);
  Serial.println("GLORY01, BLUE!");
  delay(500);
}
 
void loop() // run over and over
{
 
  // Receive from PC and send it to bluetooth
  if (Serial.available()){
   
    BlueToothSerial.write(Serial.read());
  }
}