BASIC4MCU | 질문게시판 | 코드해석좀 도와주세요.
페이지 정보
작성자 Cass 작성일2019-11-26 00:57 조회5,261회 댓글1건본문
#include <DHT11.h>
const int dht11Pin=A2;
dht11 DHT11;
//
int rainPin=A0;
int echoPin=3,trigPin=7;
int in1Pin=4,in2Pin=5; // L298
//
int rainVal;
float duration,distance;
float h1,t1;
bool position=0; // 초기값 close
//
void setup(){
pinMode(trigPin,OUTPUT); pinMode(echoPin,INPUT);
pinMode(in1Pin,OUTPUT); pinMode(in2Pin,OUTPUT);
Serial.begin(9600);
}
//
void loop(){
if(Serial1.available()){ Serial.write(Serial1.read()); }
if(Serial.available()) { Serial1.write(Serial.read()); }
//
rainVal=analogRead(rainPin); Serial.println(rainVal); // 빗물 감지센서
//
digitalWrite(trigPin,HIGH); delay(10); digitalWrite(trigPin,LOW);
//
duration=pulseIn(echoPin,HIGH);
distance=((float)(340*duration)/10000)/2;
Serial.print(distance); Serial.println("cm");
//
DHT11.read(dht11Pin);
h1=DHT11.humidity; Serial.print("Humidity(%):"); Serial.println(h1);
t1=DHT11.temperature; Serial.print("Temperature(C):"); Serial.println(t1);
//
if((rainVal<500)||(t1>25))motor_close(); // 비가오거나 온도가 높으면 창문을 닫음
else motor_open();
//
delay(2000);
}
//
void motor_open(){
if(position==0){ position=1; // 닫혀있으면 open
digitalWrite(in1Pin,HIGH); // open
delay(1000); // 일정시간동안 열고나서
digitalWrite(in1Pin,LOW); // stop
}
}
//
void motor_close(){
if(position){ position=0; // 열려있으면 close
digitalWrite(in2Pin,HIGH); // close
delay(1000); // 일정시간동안 닫고나서
digitalWrite(in2Pin,LOW); // stop
}
}
온습도센서 빗물센서를 이용해 모터를 돌리는 코드가 맞나요?
그리고 꼭 블루투스를 이용해야 이 코딩을 쓸 수 있는건가요..?
댓글 1
조회수 5,261master님의 댓글
master 작성일
Serial1이 블루투스 같은데
특별히 하는 일이 없으므로
Serial1으로 검색된 코드를 모두 삭제하면 됩니다.
Serial1.begin(9600); 도 없으므로 어차피 동작하지 않습니다.
//
초음파 거리센서도 시리얼모니터에 distance 출력하는 것 외에는 하는 일이 없으므로
초음파센서 관련 코드도 삭제하세요
//
현재 코드는 온습도센서와 빗물센서 두가지 센서로 DC모터로 창문을 열고 닫는 기능만 구현되어 있는 상태입니다.