2012-11-30 9 views
1

나는 arduino uno r3, 온도 센서 lm335z 및 2 led가있다. 나는 인터넷Arduino temp & led

float celsius = 0, kelvin=0; 

void setup() 
{ 
    Serial.begin(9600); 
} 

void loop() 
{ 
    kelvin = analogRead(0) * 0.004882812 * 100; 
    celsius = kelvin - 273.15; 
    Serial.print("Celsius: "); 
    Serial.println(celsius);     
    //Serial.print("Kelvin: "); 
    //Serial.println(kelvin); 
    Serial.println(); 
    delay(10000); 
} 

에서이 코드를 발견하고

temp only

는이 코드로 이끄는 두 개의 추가이 스키마와 함께 잘 작동 :

float celsius = 0, kelvin=0; 
int led_green = 13; 
int led_red = 12; 

void setup() 
{ 
    Serial.begin(9600); 
    pinMode(led_green, OUTPUT); 
    pinMode(led_red, OUTPUT); 
} 

void loop() 
{ 
    kelvin = analogRead(0) * 0.004882812 * 100; 
    celsius = kelvin - 273.15; 
    Serial.print("Celsius: "); 
    Serial.println(celsius);     
    //Serial.print("Kelvin: "); 
    //Serial.println(kelvin); 
    Serial.println(); 
    if (celsius <= 25.00) 
    { 
    digitalWrite(led_green, HIGH); 
    digitalWrite(led_red, LOW); 
    } 
    else 
    { 
    digitalWrite(led_green, LOW); 
    digitalWrite(led_red, HIGH); 
    } 
    delay(10000); 
} 

이 스키마를 :

led and temp

온도가 1,2 또는 3도 플러스 내가 어디를 놓치지? 온도 차이의

+0

그래서 온도 판독 값이 어느 정도 벗어 났습니까? 나는 그것에 대해 너무 많이 걱정할 것 같지 않다. 또한 온도 센서를 올바르게 연결 한 것처럼 보이지 않습니다. 3 개의 핀이 연결되어야합니다 - 이것은 단지 도식 'typo'입니까? – Marty

답변

1

kelvin = analogRead(0) * 0.004882812 * 100; 

의 따라서 ADC의 각 단계가 의미하는 것이기 때문에 ~ 0.5도. 스케치에서 아무 것도 지정하지 않았으므로 전압 레퍼런스는 전원 전압입니다. 단 하나의 LED만으로 Arduino의 출력을 로딩하면 50-100 mV 정도의 공급 전압에 영향을 줄 수 있습니다. 이것은 차례로 온도를 몇도 정도 영향을줍니다.

당신은 그래서 문제가 귀하의 회로에 LED의 첨가에 의해 설명 될 수 my blog

에서이 효과에 대한 자세한 분석을 찾을 수 있습니다.