BASIC4MCU | 질문게시판 | 지식in에 답변주신 내용 코드 질문입니다
페이지 정보
작성자 KATO 작성일2019-12-19 08:36 조회9,485회 댓글2건본문
// DateTime : 2019-12-18 오후 3:53:26
// by Ok-Hyun Park
//
#include <stdio.h>
//
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
//
#include <DHT11.h>
#define dht11Pin 2
DHT11 dht11(dht11Pin);
//
int ledPin=13;
//
char str[50];
int err=0;
long t,t1,t2,ton,tall;
float humi,tem;
//
void setup(){
pinMode(ledPin,OUTPUT);
lcd.begin(); lcd.print("start");
Serial.begin(9600);
t=t1=t2=millis();
}
//
void loop(){
t=millis();
if(t=t1>=1000){ t1=t; // 1초에 1번씩 습도 센서 체크
if((err=dht11.read(humi,tem))==0){
onOff(humi);
lcdHumidity(humi);
}
else{
Serial.print("Error No: "); Serial.println(err);
}
}
}
//
void onOff(float h){
if (h<=49){ ton=2000; tall= 5000; }
else if(h<=70){ ton=5000; tall=11000; }
else { ton=3000; tall= 7000; }
//
if (t-t2<ton )digitalWrite(ledPin,1);
else if(t-t2<tall)digitalWrite(ledPin,0);
else t2=t;
}
//
void lcdHumidity(float hu){
int h=(int)hu;
sprintf(str,"humidity: %d%%\r\n",h); Serial.println(str);
sprintf(str,"humidity: %d%%",h); lcd.setCursor(0,0); lcd.print(str);
}
이렇게 알려주셔서 이대로 코딩을 진행했는데
습도체크를 한번만 하고 말아요
어떻게해야 계속 반복동작 가능할까요?
댓글 2
조회수 9,485master님의 댓글
master 작성일
//if(t=t1>=1000){ t1=t; // 1초에 1번씩 습도 센서 체크
if(t-t1>=1000){ t1=t; // 1초에 1번씩 습도 센서 체크
아래처럼 수정해서 돌려보세요
KATO님의 댓글
KATO
그래도 에러 구문으로 넘어가면서 안되네요 다른 방법을 찾아보겠습니다