아두이노 우노끼리 블루투스 통신
페이지 정보
작성자 pyoleo 작성일22-05-16 02:18 조회1,883회 댓글1건첨부파일
본문
아두이노 우노끼리 블루투스 통신(hc-06)을 통해 한쪽 아두이노 센서에서 받은 변수 값을 전송했을 때 받는 쪽에서 변수 값을 어떻게 받아야 하는지 모르겠습니다...
센서는 가속도 센서, 거리 센서, 압력 센서 3가지를 사용하고 있습니다.
BTSerial.println("압력센서");
BTSerial.println(PressVal); BTSerial.write(PressVal);
BTSerial.println("거리센서");
BTSerial.println(DistanceVal); BTSerial.write(DistanceVal);
BTSerial.println("가속도센서");
BTSerial.println(ax); BTSerial.write(ax);
BTSerial.println(ay); BTSerial.write(ay);
BTSerial.println(az); BTSerial.write(az);
한 쪽 아두이노에서는 센서를 이용해서 아날로그 값을 받아 다른 쪽 아두이노로 블루투스통신으로 전송하여 받은쪽 아두이노에 받은 센서값을 아날로그 변수로 저장하는
센서가 동작하는 동안은 계속해서 변수값을 받아 저장하는 동작을 하고싶습니다.
void loop() {
// put your main code here, to run repeatedly:
if(BTSerial.available()) {
int BTPressVal, BTDistanceVal, BTax, BTay, BTaz; //블루투스로 받은 변수를 저장
SensorValue = BTSerial.read();
if(SensorValue == PressVal) { //센서값이 압력센서값이면 BTPressVal에 아날로그값 저장
analogWrite(BTPressVal);
}
else if(SensorValue == DistanceVal) {
analogWrite(BTDistanceVal);
}
else if(SensorValue == ax) {
analogWrite(BTax);
}
else if(SensorValue == ay) {
analogWrite(BTay);
}
else if(SensorValue == az) {
analogWrite(BTaz);
}
}
아두이노의 코딩을 어떻게 수정해야 할까요??
제가 틀렸다면 혹시 블루투스 통신으로 아날로그값을 변수에 저장하는지 알고 싶습니다!!
센서를 연결하여 값을 받는 코드와 블루투스를 이용해 값을 통신받는 코드 제가 작성한 코드 첨부하였습니다!
읽어주셔서 감사합니다.
댓글 : 1
조회수 : 1,883
master님의 댓글
master 작성일
2바이트 이상의 데이터를 전송하는 것은 쉽지 않습니다.
현재 받고있는 데이터가 몇번째 데이터인지를 판단하기 어렵기 때문이죠
이 때문에 전송포멧(전송프로토콜)을 정해서 데이터를 주고 받으며
받는 곳에서 처리하기 쉽도록 보내는 것이 좋습니다.
가속도센서의 데이터를 주고받는 예제는 휴대폰이나 PC등에서 수신하는 예제가 많고
GPS 경우에는 아두이노에서 받아서 휴대폰이나 PC로 재 전송하기도 합니다.
기존 예제를 공부해서 만들어보세요
초보자는 쉽지 않을겁니다.
우노 사용중이고, 핀이 부족해서 보드를 나눈 것이라면
핀이 많은 메가를 사용하세요