Arduino temp& LED

时间:2012-11-30 12:49:27

标签: arduino led temperature

我有arduino uno r3,温度传感器lm335z和2 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

我使用此代码添加两个led:

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度加上正常的地方或我想念的地方?

1 个答案:

答案 0 :(得分:1)

因为

kelvin = analogRead(0) * 0.004882812 * 100;

因此,ADC的每一步都意味着~0.5度的温差。由于您未在草图中指定任何内容,因此参考电压为电源电压。只用一个LED(就像你一样)加载Arduino的输出可能会影响电源电压,其数量级为50-100 mV。这反过来会影响您的温度读数几度。

您可以在my blog

中找到有关此效果的详细分析

因此可以通过在电路中添加LED来解释这个问题。