마스터
#include <SoftwareSerial.h>
int T = 2;
int R = 3;
int sensor1 = 7;
int sensor2 = 6;
int sensor3 = 5;
int val1 = 0;
int val2 = 0;
int val3 = 0;
SoftwareSerial my_blue(T, R);
void setup() {
my_blue.begin(9600);
Serial.begin(9600);
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
pinMode(sensor3, INPUT);
}
void loop() {
val1 = digitalRead(sensor1);
if(val1 == LOW){
Serial.println("fire1");
if (Serial.available()) {
my_blue.print("fire1");
}
}
val2 = digitalRead(sensor2);
if(val2 == LOW) {
Serial.println("fire2");
if (Serial.available()) {
my_blue.print("fire2");
}
}
val3 = digitalRead(sensor3);
if(val3 == HIGH) {
Serial.println("fire3");
if (Serial.available()) {
my_blue.print("fire3");
}
}
delay(10000);
}
슬레이브:
g#include <SoftwareSerial.h> //시리얼 통신 라이브러리 호출
#include "Servo.h" //서보 라이브러리
Servo myservo; //서보객체
int blueTx=2; //Tx (블투 보내는핀 설정)
int blueRx=3; //Rx (블투 받는핀 설정)
SoftwareSerial mySerial(blueTx, blueRx); //시리얼 통신을 위한 객체선언
String myString=""; //받는 문자열
void setup() {
myservo.attach(12); //서보 시그널 핀설정
myservo.write(0); //서보 초기각도 0도 설정
mySerial.begin(9600); //블루투스 시리얼 개방
}
void loop() {
while(mySerial.available()) //mySerial 값이 있으면
{
char myChar = (char)mySerial.read(); //mySerial int형식의 값을 char형식으로 변환
myString+=myChar; //수신되는 문자열을 myString에 모두 붙임 (1바이트씩 전송되는 것을 모두 붙임)
delay(5); //수신 문자열 끊김 방지
}
if(!myString.equals("")) //myString 값이 있다면
{
Serial.println("input value: "+myString); //시리얼모니터에 myString값 출력
if(myString=="2") //myString 값이 'fire2' 이라면
{
myservo.write(45); //각도 45도로 움직임
delay(3000); //1초간 분사
myservo.write(0);
}
if(myString=="3") //myString 값이 'fire3' 이라면
{
myservo.write(90); //각도 90도로 움직임
delay(3000); //1초간 분사
myservo.write(0);
}
if(myString=="1") {
myservo.write(0); //각도 0도로 움직임
delay(3000); //1초간 분사
}
else
{
myservo.write(0);
}
myString=""; //myString 변수값 초기화
}
}
인데요
두개의 블루투스 모듈을 각각 슬레이브, 마스터로 지정하여 통신을 하려고 합니다.
두개의 블루투스 모듈이 연결 된 후에 마스터가 아무리 값을 보내도 슬레이브가 반응을 하지 않습니다.
하지만 제가 마스터 시리얼 모니터에 아무런 문자나 숫자를 입력하면 그때 부터 마스터의 값이 슬레이브에게 전달되기 시작합니다.
제가 임의의 문자나 숫자를 입력하지 않아도 자동으로 블루투스 모듈끼리 통신을 시작하게 하려면 어떻게 해야하나요?
|