에듀이노-코딩교육 전문 쇼핑몰 에듀이노-코딩 교구는, 에듀이노!

학교, 공공기관이라면 후불결제하세요!

 
현재 위치
  1. 게시판
  2. 묻고답하기
상품 게시판 상세
블루트스 코드
  • 작성자 김병훈 (ip:)
  • 작성일 2021-06-13
  • 추천 추천하기
  • 조회수 188
평점 0점

블루투스 코드로 했을때 폰으로 조종이 되다가 벽가까이만 가면 미쳐 돌아가는데 코드가 잘못된건가여 아니면 블루트스가 잘못된건가요 

블투스랑 초음파랑 같이 되는 건가요? 그럼 어디를 고쳐야 될까요? 

#include <SoftwareSerial.h>

#include <AFMotor.h>

AF_DCMotor motor_L(1);            

AF_DCMotor motor_R(4); 


#define BT_RXD A5

#define BT_TXD A4

SoftwareSerial bluetooth(BT_RXD, BT_TXD);      


char rec_data;

bool rec_chk = false;


int i;

int j;


//초음파센서 출력핀(trig)과 입력핀(echo) 설정

int trigPin = A0;

int echoPin = A1;


void setup(){

  Serial.begin(9600);              // PC와의 시리얼 통신속도

  bluetooth.begin(9600);            // 스마트폰 블루투스 통신속도

  Serial.println("Eduino Smart Car Start!");


  pinMode(echoPin, INPUT);   // echoPin 입력

  pinMode(trigPin, OUTPUT);  // trigPin 출력


  // turn on motor

  motor_L.setSpeed(200);              // 왼쪽 모터의 속도   

  motor_L.run(RELEASE);

  motor_R.setSpeed(200);              // 오른쪽 모터의 속도   

  motor_R.run(RELEASE);

}



void loop(){

 

  if(bluetooth.available()){         // 블루투스 명령 수신

     rec_data = bluetooth.read();

     Serial.write(rec_data);

     rec_chk = true;

  }  


  if(rec_data == 'g'){  // 전진, go

     motor_L.run(FORWARD);  motor_R.run(FORWARD);        

  } 

  else if(rec_data == 'b'){ // 후진, back

     motor_L.run(BACKWARD);  motor_R.run(BACKWARD);    

  }

  else if(rec_data == 'l'){ // 좌회전, Go Left

   motor_L.run(RELEASE);  motor_R.run(FORWARD);     

  }

  else if(rec_data == 'r'){ // 우회전, Go Right

    motor_L.run(FORWARD);  motor_R.run(RELEASE);                

  }

  else if(rec_data == 'q'){ // 제자리 회전, Left Rotation

     motor_L.run(BACKWARD);   motor_R.run(FORWARD);      

  }

  else if(rec_data == 'w'){ // 제자리 회전, Right Rotation

      motor_L.run(FORWARD);   motor_R.run(BACKWARD);    

  }

  else if(rec_data == 's'){ // Stop 

    motor_L.run(RELEASE);       motor_R.run(RELEASE);

    } 


    

  if(rec_data == 'f' ){       // 정지

    if(rec_chk == true){

       for (i=250; i>=0; i=i-20) {

          motor_L.setSpeed(i);  motor_R.setSpeed(i);  

          delay(10);

       }  

       

    }

  }


     

}

이거 그대로 썼습니다

비밀번호 : 삭제 수정
첨부파일
  • 아아 2021-06-14 0점
    수정 삭제 댓글
    스팸글 해당 코드에서 초음파센서는 작동하고 있지 않네요. 블루투스만 작동하고 있기 때문에 관련해서만 문제가 발생하는 것으로 보여요
    일단 해당 현상은 블루투스가 간헐적으로 끊기는 것으로 보여집니다
    1. 주변에 블루투스를 방해할만한 전파가 많은지(블루투스나 와이파이등 ISM대역 전파가 많으면 간헐적으로 끊길 수 있어요)
    2. 폰에서 다른 블루투스 장비도 페어링이 동시에 되어 있다면 해제하고 진행해보세요
    3. 블루투스 모듈이 소모 전류가 많기 때문에 공급전원이 부족한지 점검

    위 세개로 점검해보시겠어요?
  • 김병훈 2021-06-14 0점
    수정 삭제 댓글
    스팸글 알겠습니다

스팸신고 스팸해제

댓글 수정

비밀번호 :

수정 취소

/ byte

비밀번호 : 확인 취소

댓글 입력

이름: 비밀번호: 관리자답변보기

별점별점주기

/ byte

에게만 댓글 작성 권한이 있습니다.

댓글 입력

댓글달기이름 :비밀번호 :

확인

/ byte

왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)

에게만 댓글 작성 권한이 있습니다.

«
»