인프런 커뮤니티 질문&답변

주원호님의 프로필 이미지
주원호

작성한 질문수

아두이노 온습도센서 lcd nan출력

작성

·

689

1

제가 혹시 몰라서 밑에 링크 남겨요~

[아두이노] 온/습도 LCD에 표시하기 (tistory.com)

제가 코드를 저기 있는대로 라이브러리부터 회로까지 하나도 안틀리고 진짜 똑같이 했는데 도대체가 왜 lcd에는 

TEMP: nan C

HUMIDITY : 0% 가 계속 떠요. 진짜 5일째 이것만 붙잡고있는데 이제는 미쳐버리겠습니다 진짜 도와주세요ㅠㅠ

밑에는 코드입니다.

#include <DHT.h>

#define DHTPIN 2 // 습도센서 Signal 선 연결

#define DHTTYPE DHT22 // 습도센서 종류: DHT22

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

DHT dht(DHTPIN, DHTTYPE);

 

LiquidCrystal_I2C lcd(0x27,16,2); // LCD주소: 0x27 또는 0x3F

float hum; // 습도값 저장 변수

float temp; // 온도값 저장 변수

 

void setup() {

  Serial.begin(9600);

  dht.begin();

  delay(2000);

  lcd.init();

  lcd.backlight();

  lcd.setCursor(2,0);

  delay(5000);

  lcd.clear();

}

 

void loop() {

  hum = dht.readHumidity();//온도값 읽기

  temp= dht.readTemperature();//습도값 읽기

 

  Serial.print("HUMIDITY: "); // "HUMIDITY:" 출력

  Serial.print(hum,0);// 습도 값 소수점 이하 자리 없음

  Serial.print(" %, TEMPERATURE: "); //"%"(습도단위) "TEMPERATURE:" 출력

  Serial.print(temp, 1);//온도값은 소수점 이하 1자리까지 표시

  Serial.println(" C"); //"C" 온도 단위 표시

  lcd.setCursor(0,0); // LCD Cursor 원점

  lcd.print("TEMP:"); // LCD에 "temp" 표시

 

  float t = temp; // 온도값을 t에 할당

  lcd.print(t,1); // 온도값 LCD로 출력

  lcd.print(" C"); // 온도 단위 표시

  lcd.setCursor(0,1); //LCD 커서 줄바꿈

  lcd.print("HUMIDITY:"); //LCD 2번째 줄에 "humidity:" 출력

  int h = hum; //습도값 h에 할당

  lcd.print(h); //습도값 LCD에 출력

  lcd.print(" % "); //습도 단위 출력

  lcd.println();

  delay(2000); // 샘플링 간격 2초

}

 

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
주원호님의 프로필 이미지
주원호

작성한 질문수

질문하기