본문 바로가기

개발자/Arduino

온습도 센서 씨리얼 모니터에 한 번만 표시되는 경우 에러 해결




온습도 센서 DHT11 테스트 하는데 씨리얼 모니터에 한 번만 표시할 경우


소스코드 loop() 의 마지막에 디레이를 2000 이나 3000으로 주어보자. 1000으로 할 경우 컴퓨터의 속도나 씨리얼 모니터의 속도등으로 호출 함수에서 기다리는 상태에 있을 가능성이 있으니 시간을 조금 지연 시키면 잘 될것이다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <DHT11.h>    //라이브러리 불러옴
int pin=2;            //Signal 이 연결된 아두이노의 핀번호
 
DHT11 dht11(pin); 
void setup()
{
   Serial.begin(9600); //통신속도 설정
}
 
void loop()
{
  int err;
  float temp, humi;
  if((err=dht11.read(humi, temp))==0//온도, 습도 읽어와서 표시
  {
    Serial.print("temperature:");
    Serial.print(temp);
    Serial.print(" humidity:");
    Serial.print(humi);
    Serial.println();
  }
  else                                //에러일 경우 처리
  {
    Serial.println();
    Serial.print("Error No :");
    Serial.print(err);
    Serial.println();    
  }
  delay(2000);                        //1초마다 측정
}
cs