BASIC4MCU | 질문게시판 | 아두이노 습도체크 질문
페이지 정보
작성자 master 작성일2019-12-03 16:48 조회3,316회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=11022
본문
if(BTSerial.available()){char command = BTSerial.read();switch(command){case'a':digitalWrite(atomizationPin, HIGH);digitalWrite(LED_PIN, HIGH);break;case'b' :digitalWrite(atomizationPin, LOW);digitalWrite(LED_PIN, LOW);break;case'c' :if(h <= 60 && h >= 30){digitalWrite(atomizationPin, HIGH);digitalWrite(LED_PIN, HIGH);}else {digitalWrite(atomizationPin, LOW);digitalWrite(LED_PIN, LOW);}}}어플리케이션으로 가습기를 작동시키려고 코딩을 진행중이었습니다.A를 받았을 경우 습도센서 값과 상관없이 가습기 작동B를 받았을 경우 습도센서 값과 상관없이 가습기 종료C를 받았을 경우 습도센서 값이 30%~60% 사이일 경우 작동 그외는 종료이런 결과를 원하고 코딩을 하였지만,앱인벤터로 'C'를 보냈을 경우,습도값이 30~60%일 때 'C'를 보내면 작동을 합니다. 하지만 30~60%를 벗어나더라도 종료가 일어나지 않습니다.습도값이 30~60%이 아닐 때 'C'를 보내었을 경우, 습도값이 30~60이 되더라도 작동을 하지 않습니다.'C'를 보내면 한번 습도를 체크하고 실행하는 것 같습니다. 하지만 저는 'C'를 한번 보냈을 때 계속해서 습도를 체크하고 습도에 따라 실행이 되기를 원합니다.또한 위 상황이 진행중에도 어플리케이션으로 'A', 'B'를 보냈을 경우 그 케이스가 정상 작동 되었으면 합니다.//switch(command){
이 코드는
if(BTSerial.available()){
if()문의 조건이 성립할 때만 실행 됩니다.
case'a': digitalWrite(atomizationPin,HIGH); digitalWrite(LED_PIN,HIGH); break;
case'b': digitalWrite(atomizationPin,LOW); digitalWrite(LED_PIN,LOW); break;
이 2개는 1회만 실행해도 되지만
case'c':
if(h<=60&&h>=30){ digitalWrite(atomizationPin,HIGH); digitalWrite(LED_PIN,HIGH); }
else { digitalWrite(atomizationPin,LOW); digitalWrite(LED_PIN,LOW); }
이 문장은 루프문에서 습도값을 읽을 때마다 실행 되어야하므로 밖으로 빼내야 합니다.
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-12-03 오후 4:48:04// by Ok-Hyun Park//char mode=0;//void loop(){습도체크;//if(BTSerial.available()){char command=BTSerial.read();switch(command){case 'a': mode=0; digitalWrite(atomizationPin,HIGH); digitalWrite(LED_PIN,HIGH); break;case 'b': mode=0; digitalWrite(atomizationPin,LOW); digitalWrite(LED_PIN,LOW); break;case 'c': mode='c';}}//if(mode=='c'){if(h<=60&&h>=30){ digitalWrite(atomizationPin,HIGH); digitalWrite(LED_PIN,HIGH); }else { digitalWrite(atomizationPin,LOW); digitalWrite(LED_PIN,LOW); }}}
이런식으로 작성해서 돌려보세요
댓글 0
조회수 3,316등록된 댓글이 없습니다.