Arduino UNO读取电位器,数值跳变

文章描述了在使用ArduinoUNO读取电位器数据时遇到的数值不稳定和非线性变化问题。作者通过排除法确定问题不在代码或接口选择,而是电位器本身。通过按压旋转头使电位器稳定,解决了数值跳变的问题。代码示例展示了如何读取电位器值并映射到0-255范围用于控制LED亮度。
摘要由CSDN通过智能技术生成

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);
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值