Arduino读取多电位器数值异常:三电位器读数始终相同求助
问题分析与解决建议
代码层面核心错误
你代码中的v0、v1、v2三个变量未声明,仅定义了存储电压的vl0、vl1、vl2。在Arduino的C++环境中,未声明的变量会被编译器默认当作全局int类型处理,这种隐式声明会导致内存分配异常,最终三个变量可能指向同一块内存空间,因此读数完全一致。
修正后的代码
// 声明所有需要用到的变量 int v0, v1, v2; float vl0, vl1, vl2 = 0; void setup() { Serial.begin(9600); } void loop() { v0 = analogRead(A0); v1 = analogRead(A1); v2 = analogRead(A2); vl0 = (v0 * 5.00 / 1023.00); vl1 = (v1 * 5.00 / 1023.00); vl2 = (v2 * 5.00 / 1023.00); Serial.print(vl0); Serial.print("V / "); Serial.print(vl1); Serial.print("V / "); Serial.print(vl2); Serial.println("V"); delay(1000); }
硬件排查建议
若修正代码后问题仍存在,检查以下硬件接线:
- 每个电位器的三个引脚是否正确连接:一端接5V,一端接GND,中间抽头接对应模拟引脚(A0/A1/A2)
- 确认三个电位器的抽头未误接到同一个模拟引脚上
- 单独测试每个电位器,排查是否存在硬件损坏
内容的提问来源于stack exchange,提问作者Massiel Angulo
相关产品推荐
相关产品推荐

