BASIC4MCU | 질문게시판 | 스마트팜 제작 코딩관련 질문드립니다.
페이지 정보
작성자 구퓨리 작성일2019-11-11 22:59 조회3,425회 댓글0건본문
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT11.h>
//LCD 설정
LiquidCrystal_I2C lcd(0x27,16,2);
//온습도센서 연결설정
int pin=7;
DHT11 dht11(pin);//릴레이 설정
int relay1 = 8;
int relay2 = 9;
int relay3 = 10;
int relay4 = 11;
void setup()
{
lcd.init(); //LCD 초기화
Serial.begin(9600);pinMode (relay1, OUTPUT);//워터펌프
pinMode (relay2, OUTPUT);//팬
pinMode (relay3, OUTPUT);//히트블럭
pinMode (relay4, OUTPUT);//LED}
void loop()
{
int err;
float temp, humi;
if((err=dht11.read(humi, temp))==0)
{
lcd.backlight(); //백 라이트 켜기
lcd.display();
lcd.print("Temperature: ");
lcd.print(temp);
lcd.setCursor(0,1); //1번째 2라인
lcd.print("Humidity: ");
lcd.print(humi);
Serial.print("temp: ");
Serial.print(temp);
Serial.print("humi: ");
Serial.print(humi);
Serial.println();
}
else
{
lcd.backlight();
lcd.display();
lcd.print("ERROR NO.: ");
lcd.print(err);
}
delay(7000); //7초마다 Refresh
lcd.clear();if (temp<=22){
digitalWrite (relay2,LOW ); //팬 ON
digitalWrite (relay3,LOW ); //히트블럭 ON
}else {
digitalWrite (relay2,HIGH); //팬 OFF
digitalWrite (relay3,HIGH); //히트블럭 OFF
}
digitalWrite (relay1,LOW); //워터펌프 ON
}
4채널 릴레이에 워터펌프 팬 히트블럭 LED순으로 연결해 놓은상태입니다.
위 처럼 코딩을 구성했고 lcd모니터에 지속적으로 센서값이 입력되면서 led는 16시간동안 켜졌다가 8시간은 꺼졌다가 반복하는 코딩을 작성하고싶습니다.
mstimer2 라이브러리를 사용하면 loop문에 간섭없이 할수있다고 알고있는데 어떻게하는지 모르겠어요 도와주세요ㅜㅠㅠㅠ
댓글 0
조회수 3,425등록된 댓글이 없습니다.