我看到奇怪的行爲,現在想了解這是否與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