Arduino UNO读取电位器的代码就不多说了,网上随便搜就有,主要是记录遇到的问题,以及如何解决的,供大家参考。
主要功能是读取电位器返回的0~1203,对此数值映射或直接除4,得到模拟输出需要用的数值0~255并且打印出来,再用此数值模拟输出控制LED
遇到异常现象:
1、电位器返回数值在某个范围内跳变,而且旋转电位器也跳不出这个范围;
2、返回数值从0突然跃升到100多,没有线性变化;
尝试解决办法:
1、屏蔽其他代码,只留电位器返回数值打印出来,仍是一样,确认和其他代码无关;
2、换电位器的IO接口,从A0换到A1,也还是不行;
3、故怀疑是硬件问题。奈何手上没有第二个电位器,所以只能对此电位器捣鼓,发现按压旋转头,数值稳定下来不会跳变了,再旋转也能线性变化,问题解决。
void setup() {
// put your setup code here, to run once:
pinMode(ledPin,OUTPUT);
pinMode(analogReadPin,INPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
value = analogRead(analogReadPin);
map(value, 0, 1024, 0, 255);
analogWrite(ledPin,value);
Serial.println(value);
}