BASIC4MCU | 질문게시판 | 블르투스+레인센서 3번쨰 질문
페이지 정보
작성자 민이 작성일2018-09-21 09:40 조회40,230회 댓글6건본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-09-20 오후 3:24:16
// by Ok-Hyun Park
//#include <SoftwareSerial.h>
#define BT_RXD 8
#define BT_TXD 7
SoftwareSerial bluetooth(BT_RXD,BT_TXD);
//
int Raindrops_pin=A0;
int LED=12;
int Buzzer=13;
int r,mode=0;
//
void setup(){
pinMode(LED,OUTPUT);
pinMode(Buzzer,OUTPUT);
Serial.begin(9600);
bluetooth.begin(9600);
}
//
void loop(){
if(bluetooth.available()){
r=bluetooth.read();
Serial.write(r);
if(r=='0')mode=0; // 빗물센서로 동작
if(r=='1')mode=1; // LED & 부저 ON
if(r=='2')mode=2; // LED & 부저 OFF
}
if(Serial.available()){
bluetooth.write(Serial.read());
}
//
if(mode==0){
Serial.println(analogRead(A0)); // 센서 출력값을 시리얼모니터로 전송
if(analogRead(A0)<500){ // 빗방울이 감지되면
digitalWrite(LED,HIGH); tone(Buzzer,520); delay(100);
digitalWrite(LED,LOW ); noTone(Buzzer); delay(100);
}
else{ // 빗방울이 감지되지 않으면
digitalWrite(LED,LOW); noTone(Buzzer);
}
}
if(mode==1){ // LED & 부저 ON
digitalWrite(LED,HIGH); tone(Buzzer,520);
}
if(mode==2){ // LED & 부저 OFF
digitalWrite(LED,LOW ); noTone(Buzzer);
}
//
delay(10);
}
if(r=='0')mode=0; // 빗물센서로 동작
if(r=='1')mode=1; // LED & 부저 ON
if(r=='2')mode=2; // LED & 부저 OFF
'0'을 전송하면 빗물센서 감지
'1'을 전송하면 LED및 부저 ON (빗물센서 감지 안함)
'2'를 전송하면 LED및 부저 OFF (빗물센서 감지 안함)
출처 :https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=3165&page=2
시리얼 모니터 창과 블루투스 창입니다. 저대로 계속 쭉 값만 뜨고 1을 입력 해도 반응이없습니다. 블루투스 어플은 아두이노 블루투스 컨트롤러 를 쓰고있습니다.
댓글 6
조회수 40,230master님의 댓글
master 작성일
정신없이 올라가는 시리얼모니터 출력부터 차단시켜야겠군요
// Serial.println(analogRead(A0)); // 센서 출력값을 시리얼모니터로 전송
이 라인을 막아서 작동을 중지시키고 해보세요
아나로그 값을 블루투스로 전송하지 않고있는데
휴대폰에 어떻게 아나로그 값이 출력될까요?
민이님의 댓글
민이 작성일
시리얼 모니터 ao 부문 은 이 정신없는것은 멈추었습니다. 이제. 무엇을 해야할까용..
죄송합니다 계속 물어봐성...
master님의 댓글
master
이제 화면이 차분해졌으면
휴대폰->블루투스->시리얼모니터
휴대폰에서 보내는 '0'~'2'가 시리얼모니터에 제대로 출력되는지 확인하세요
민이님의 댓글
민이
시리얼모니터 출력 에서 출력값이 나오는대 출력값옆에 물이 묻엇을 경우와 물이 묻지 않앗을 표시는 어떤명령어를 넣어야대나요?
master님의 댓글
master
// Serial.println(analogRead(A0)); // 센서 출력값을 시리얼모니터로 전송
앞에 막은 것 풀어서 센서값을 보시고요
물이 묻지 않았을 때의 센서값을 적어놓고
물이 묻었을 때의 센서값을 적으세요
두 값의 중간값을 if()문에서 체크하면 됩니다.
아래 500 대신 중간값이 들어가겠죠
if(analogRead(A0)<500){ // 빗방울이 감지되면
민이님의 댓글
민이
감사합니다 마스터님