심기일전하여 레퍼런스를 지정하면 되지 않을까 기대를 하며... 다시 코드를 짜봤다.
#include<LiquidCrystal_I2C.h> #include<Wire.h> LiquidCrystal_I2C lcd(0x3F,16,2); const int lm35OUT=A0; int A0out=0; float Temp=0; //to calculate temperature: void setup() { // put your setup code here, to run once: lcd.init(); lcd.backlight(); //to drive LCD: Serial.begin(9600); analogReference(INTERNAL); //for Serial input: pinMode(13,OUTPUT); pinMode(12,OUTPUT); //to control LED: } void loop() { // put your main code here, to run repeatedly: A0out=analogRead(lm35OUT); Temp=500.0*A0out/1024.0; lcd.setCursor(0,0); lcd.print("Temperature"); lcd.setCursor(13,0); lcd.print(Temp); //diplay temperature: digitalWrite(13,LOW); digitalWrite(12,LOW); //turn off all LEDs: if(Temp>=26){ digitalWrite(13,HIGH); } else if(Temp<=20){ digitalWrite(12,HIGH); } delay(3000); lcd.clear(); } |
이번엔 LCD에 온도를 출력하고 동시에 LED 두 개를 온도 범위에 따라 켜도록 했는데 잘 될까?
컴파일은 잘 되었고.....
이게 잘 되야 다른 센서도 구동을 해 보는데 말이야...
그러나.. analogReference를 설정하자 출력값은 더 높아졌다. 온도가 막 250도...
아놔..
일단 이건 좀 내버려두자.
센서가 불량이 아닐까 싶은데... 우씨 -_-;