▷ 한쪽의 아두이노에 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());
}
}