我看到奇怪的行为,现在想了解这是否与Arduino UNO或我的代码有关。Arduino为1.5V电池显示错误的电压
我使用Arduino来测量简单的1.5V电池的电压。
所以我看到,串行监视器显示1V电压而不是1.5V(但电压表显示从电池1.5V)。
当我串联连接2节电池串行监视器显示3V。
有人可以请解释发生了什么事。
这是我的Arduino代码:
float voltage;
float batteryIn;
void setup(){
Serial.begin(9600);
}
void loop(){
batteryIn = analogRead(0);
float voltage2 = (float)map(batteryIn, 0, 1023, 0, 5);
Serial.println(voltage2);
delay(50);
}
所以显示1V单电池(但应为1.5V)。
2串联电池显示3V,这是正确的。
我猜map函数只返回一个long类型。所以即使你将它转换为浮点数,小数位已经消失了。您必须使用浮点返回来创建您自己的映射函数。 –
试过这个:float voltage2 =(float)batteryIn * 5.000/1024.000;更准确地说,获得相同的值 – haykp
,现在变为1.7V。 – haykp