BASIC4MCU | 질문게시판 | 답변 : 아두이노 블루투스 통신 질문
페이지 정보
작성자 master 작성일2020-06-14 07:40 조회3,000회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=12774
본문
//#include <Servo.h>#include <Stepper.h>#include <SoftwareSerial.h>//블루투스#define rainpin A0#define cdspin A1#define servoPin 13//SoftwareSerial BTSerial(3,4); // 블루투스const int stepsPerRevolution=2048;Stepper myStepper(stepsPerRevolution,11,9,10,8);Servo window;//static bool before_cds=0,moter_flag=0;int angle=180;//void setup(){Serial.begin(9600);window.attach(servoPin);pinMode(cdspin,INPUT);myStepper.setSpeed(16);BTSerial.begin(9600);}//void rain(){ //빗물int readingSensor=analogRead(rainpin);if(readingSensor<600){Serial.println("no rain "); Serial.println(readingSensor);for(angle; angle<180; angle++){ window.write(angle); delay(20); }}else{Serial.println("rain "); Serial.println(readingSensor);for(angle; angle>0; angle--){ window.write(angle); delay(20); }}}//void cds_up(){ // 조도int cds=analogRead(cdspin); Serial.print("CDS="); Serial.println(cds);cds=cds/650;//if(before_cds!=cds){ before_cds=cds; moter_flag=1; }else if(before_cds==cds){ moter_flag=0; }//if(moter_flag){if(cds){for(int i=0; i<2; i++)myStepper.step(stepsPerRevolution);}else{for(int i=0; i<2; i++)myStepper.step(-stepsPerRevolution);}}}//void cds_down(){int cds=analogRead(cdspin); Serial.print("CDS="); Serial.println(cds);cds=cds/650;//if (before_cds!=cds){ before_cds=cds; moter_flag=1; }else if(before_cds==cds){ moter_flag=0; }//if(moter_flag){if(cds){for(int i=0; i<2; i++)myStepper.step(stepsPerRevolution);}else{for(int i=0; i<2; i++)myStepper.step(-stepsPerRevolution);}}}//void loop(){/*int cds1=analogRead(cdspin);cds1=cds1/650;if (before_cds!=cds1)cds_down();else if(before_cds==cds1)cds_up();//delay(1500);rain();delay(1500);*///-----------------------------if(BTSerial.available()){ Serial.write(BTSerial.read()); }if(Serial.available()){ BTSerial.write(Serial.read()); }}//제가 서보모터하고 스테퍼모터를 빗물,조도센서로 통해 값을 읽으면 모터가 돌아가게끔 어찌저찌 만들었습니다.이제 블루투스 HC-06으로 연결하여 스마트폰에서도 모터를 돌릴 수 있도록 만들려고합니다.그래서 먼저 블루투스만 따로 장치명,페어링 비밀번호,통신속도 9600으로 변경하고 스마트폰과 통신까지 확인 다 했습니다.다 확인해서 이제 지금까지 만든 코드에 블루투스를 연결을 하려고 하는데 컴파일,업로드는 다 잘 되는데 블루투스에 연결이 안되네요ㅠㅠ 기존 코드에 loop부분을 주석처리(/**/)하고 작동해도 마찬가지였습니다어쩔때는 HC-06에 불이 들어와서 스마트폰이랑 연결이 되는것처럼 보이다가 통신 메세지도 안보내지고 AT명령어도 무응답이고...불이 안들어올때도 있어 아예 스마트폰에 블루투스 검색 목록조차도 뜨지 않습니다.대체 무슨 문제인지 도저히 모르곘어서 이곳에 올립니다ㅠㅠ위에 코드는 블루투스 부분만 빼면 정상적으로 작동은 잘 됩니다,뭐가 문제일까요?
실행 시간을 고려해서 작성하셔야 합니다.
for(int i=0; i<2; i++)myStepper.step(stepsPerRevolution);스텝모터 실행에도 시간이 걸리고for(angle; angle<180; angle++){ window.write(angle); delay(20); }서보모터 실행에도 시간이 걸립니다.delay(1500);rain();delay(1500);메인에도 3초라는 긴 딜레이까지 있군요
댓글 0
조회수 3,000등록된 댓글이 없습니다.