정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

블루투스 통신 코드 조언 부탁드립니다.
min37 | 2018-10-30

마스터 슬레이브를 지정해서 통신하는데 처음엔 서보모터가 0도지정 때는 돌아가다가 안돌아갑니다. 코드 조언 부탁드립니다.

-마스터-

#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("1");}

val2 = digitalRead(sensor2);
if(val2 == LOW) {
Serial.println("2");}
  
val3 = digitalRead(sensor3); 
if(val3 == HIGH){ 
Serial.println("3"); }

if (Serial.available()) 

my_blue.write(Serial.read()); 

if (my_blue.available()) 

Serial.write(my_blue.read()); 
}
delay(5000);

 

-슬레이브-

#include <SoftwareSerial.h> //시리얼 통신 라이브러리 호출
SoftwareSerial my_blue(2, 3);  //시리얼 통신을 위한 


#include "Servo.h" //서보 라이브러리 
Servo myservo; //서보객체

String myString=""; //받는 문자열
 
void setup() {
  myservo.attach(12);   //서보 시그널 핀설정
  myservo.write(0);     //서보 초기각도 0도 설정
  Serial.begin(9600);
  my_blue.begin(9600); //블루투스 시리얼 개방
}
 
void loop() {
  if(my_blue.available())  //my_blue 값이 있으면
  {
    byte data = my_blue.read();
    Serial.write(data);
      if(data == '1')
      {
        myservo.write(0);     
        delay(3000); 
        myservo.write(0);
        }   
      else if(data == '2')
      {
        myservo.write(45);     
        delay(3000); 
        myservo.write(0);
        }

      else if(data == '3')
      {
        myservo.write(90);     
        delay(3000); 
        myservo.write(0);
        }
}
}

http://kocoafab.cc/data/201810301739572737.jpg

이전글   |    아두이노 블루투스 통신으로 서보모터 제어하기 질문이요... 2018-10-29
다음글   |    질문드립니다.. 2018-10-31