网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月25日漏签0天
树莓派吧 关注:76,714贴子:237,398
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1回复贴,共1页
<<返回树莓派吧
>0< 加载中...

YD-RP2040(pico)通过adc采样电位器的数值问题

  • 只看楼主
  • 收藏

  • 回复
  • saiatsai
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
// 定义电位器连接的引脚
const int pot1Pin = 26; // GP26 (ADC0)
const int pot2Pin = 27; // GP27 (ADC1)
// 定义采样次数
const int numSamples = 10;
void setup() {
// 修复:Pico在Wokwi中推荐使用Serial1(对应UART0),并使用115200波特率
// Serial1对应GP0(TX)和GP1(RX),是Wokwi仿真最稳定的串口
Serial.begin(9600);
// 等待串口准备就绪(关键:避免初始化未完成就输出)
while (!Serial) {
delay(10);
}
}
void loop() {
// 读取电位器的平均值
int pot1Value = readAverage(pot1Pin, numSamples);
int pot2Value = readAverage(pot2Pin, numSamples);
// 打印 ADC 值到串口监视器(改为Serial1)
Serial.print("Potentiometer 1: ");
Serial.println(pot1Value);
Serial.print("Potentiometer 2: ");
Serial.println(pot2Value);
Serial.println("-------------------"); // 分隔符,方便查看
// 延迟一段时间以避免数据过快刷新
delay(200);
}
// 读取指定引脚的平均值
int readAverage(int pin, int samples) {
long sum = 0;
for (int i = 0; i < samples; i++) {
sum += analogRead(pin); // 累加采样值
delay(1); // 短暂延迟以稳定采样
}
return sum / samples; // 返回平均值
}
.
上面是adc采样电位器的代码
代码在Wokwi网站上仿真运行很正常,2个电位器的数值变化正确
.
实机开发板型号为yd-rp2040,源地,黑色pcb板
2个20k电位器的连接方法,左和右针脚共用开发板的vcc和agnd,中间针脚连接开发板的26和27
但是代码在arduino上运行时,串口输出信息中,2个电位器的数值变化不正常,而且会互相干扰


  • saiatsai
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
同样的代码,改了adc端口和串口参数,在arduino安装了stm32包后给stm32f103c8t6上传固件,电位器adc采样正常...暂时不知道是我手上这块板的问题,还是yd-rp2040的问题


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1回复贴,共1页
<<返回树莓派吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示