Arduino临时工;带路
我有arduino uno r3,温度传感器lm335z和2个led。 我在网上找到了这个代码Arduino临时工;带路,arduino,led,temperature,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.pri
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);
}
并且可以很好地处理这个模式
我添加了两个带有此代码的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);
}
float摄氏度=0,开尔文=0;
int led_绿色=13;
int led_红色=12;
无效设置()
{
Serial.begin(9600);
引脚模式(led_绿色,输出);
引脚模式(led_红色,输出);
}
void循环()
{
开尔文=模拟读数(0)*0.004882812*100;
摄氏度=开尔文-273.15;
连续打印(“摄氏:”);
串行打印项次(摄氏度);
//连续打印(“开尔文:”);
//串行打印Ln(开尔文);
Serial.println();
如果(摄氏度是因为
kelvin = analogRead(0) * 0.004882812 * 100;
因此,ADC的每一步都意味着约0.5度的温差。因为您在草图中没有指定任何内容,所以电压参考是电源电压。仅用一个LED加载Arduino的输出(就像您所做的那样)可能会影响50-100 mV量级的电源电压。这反过来会影响温度读数几度
您可以在中找到此影响的详细分析
因此,这个问题可以通过在电路中添加LED来解释。因为
kelvin = analogRead(0) * 0.004882812 * 100;
因此,ADC的每一步都意味着约0.5度的温差。因为您在草图中没有指定任何内容,所以电压参考是电源电压。仅用一个LED加载Arduino的输出(就像您所做的那样)可能会影响50-100 mV量级的电源电压。这反过来会影响温度读数几度
您可以在中找到此影响的详细分析
因此,这个问题可以通过在电路中添加LED来解释。因此,您的温度读数出现了一两度的偏差?我不确定我是否会对此过于担心。此外,您似乎没有正确连接温度传感器。3个针脚应该连接起来-这只是示意图上的“输入错误”吗?因此您的温度读数是正确的差一两度?我不确定我会不会太担心这个问题。而且,看起来你没有正确连接温度传感器。3个针脚应该连接好-这只是示意图上的“打字错误”吗?