BASIC4MCU | 질문게시판 | 3일째 밤세서 ㅠㅠ 급질문드립니다. 모터+아두+온도+블루
페이지 정보
작성자 김이노 작성일2019-05-15 10:35 조회4,867회 댓글1건본문
우선 일정온도가 되면 시보가 작동하는 것을 만들고있는데
그런데 코드에서 btSerial.println 만보니면 시보가(Servo)가 명령도 아닌데 바을을까딱까딱 하내요 미치겠내요
블루투스로 신호를 보내지 않으면 문제 없이 되는데 데이타를 받아 온도를 표시해야하는데 시보가 불규칙하게 반을을 하니 ㅠㅠ 머가 문젠가요
코드는 아래와같이
#include
#include
SoftwareSerial btSerial(12,13);
Servo myservo;
//
int temp=1; // 초기값 자동제어 모드
//
void setup(){
myservo.attach(11);
Serial.begin(9600);
btSerial.begin(9600);
delay(100);
}
//
void loop(){
//----------------------------------------------------
int reading=analogRead(A2); // 온도센서
float temperature=5.0*reading/1023.0*100;
btSerial.println(temperature); //btSerial.println("℃");
//----------------------------------------------------
int Rain=analogRead(A0); // 빗물센서
btSerial.println(Rain);
//----------------------------------------------------
if(temp==1){ //자동제어모드
if(Rain<500){ myservo.write(150); btSerial.println(" rain "); delay(1000); } //비가 올 때
else{ //비가 오지 않을 때
if (temperature>26){ myservo.write( 90); }
else if(temperature<21){ myservo.write(150); }
btSerial.print(" sunny "); delay(1000);
}
}
else if(temp==2){ //2 열겠다
if(Rain<500){ myservo.write(150); btSerial.print(" rain!"); delay(1000); } //비가 올때
else { myservo.write( 90); btSerial.print(" open "); delay(1000); }
}
else if(temp==3){ myservo.write(150); btSerial.print("closed "); delay(1000); } //3닫겠다
//----------------------------------------------------
if(btSerial.available()){
char data=btSerial.read();
Serial.println(data);
if(data==1)temp=1; //자동제어모드
if(data==2)temp=2; //open
if(data==3)temp=3; //close
}
}
입니다.
댓글 1
조회수 4,867master님의 댓글
master 작성일
btSerial.println(temperature); //btSerial.println("℃"); 이 아래에
Serial.println(temperature); // 시리얼모니터로도 출력해서
온도값이 흔들리는지 체크하세요