你好!欢迎来到深圳市品慧电子有限公司!
语言
当前位置:首页 >> 技术中心 >> 传感技术 >> 设计小技巧:如何用MCU或FPGA的一个数字IO测量2个电位计的阻值变化?

设计小技巧:如何用MCU或FPGA的一个数字IO测量2个电位计的阻值变化?


还记得我们“2022寒假在家一起练”的RP2040游戏机平台上的4向摇杆么?很多同学用它实现了游戏机的位置操控,还制作了鼠标的功能。4向摇杆本质是2个电位计 - X轴和Y轴各一个电位计。

用RP2040制作的游戏机平台


四向摇杆的结构和内部原理图


在RP2040游戏机平台中占用了RP2040的两个ADC输入管脚,通过检测由这两个电位计带来的分压电压的变化,从而判断摇杆的相对位置。


想一下,如果MCU内部没有ADC,只有数字IO,或者用FPGA是否也能检测电位计的变化?甚至给出电位计的阻值变化?而且能够用一根输入管脚同时感知2个电位计?


初听起来是不是有点天方夜谈?如果我们能巧妙利用PWM信号这个神器,就能实现对2只电位计的检测。

大家知道PWM信号的特点 - 一根数字信号,两个基本参数 -?频率和占空比。我们多数情况下是产生PWM信号来控制外部的器件,反过来我们能否测量这两个参数的变化,从而用于感知外部的变量呢?


测量PWM信号的这两个参量很容易,用高频率的时钟数数就可以实现,无论MCU用定时器来实现,还是FPGA用计数器来实现,都很简单,在这里就不再赘述了。


下面的问题就是通过变化的PWM测量外部的参量:

  • 我们设计一个电路,能够产生调频、调占空比的PWM信

  • 用一只电位计来控制产生的PWM信号的频率

  • 用另外一只电位计控制产生的PWM信号的占空比


这个电路是啥样的?想一下PWM信号的生成原理:

我们如果能够控制比较器输入端锯齿波的频率,就能调整PWM脉冲的频率;

我们如果能够调节比较器另一端参考电压的变化,就能调整PWM脉冲的占空比。

那么,电路就有了:

一颗普通的4运放LM324 + 几颗电阻 +?几颗电容即可。在这个电路中用到的供电电压是5V,此电路结构同样也适用于3.3V供电。


?用两个运放产生可调频率(一个电位计P1控制)的三角波,送给一个用作比较器的运放,运放的输出为占空比可调的脉冲波形。比较器的一个输入端电压由另一个电位计来控制。


这个电路的频率调节范围为250Hz - 500Hz,脉宽变化从10%到90%,根据电路中的电阻参数就可以计算出两个电位计变化的阻值。


是不是挺简单的?


要不要用MCU和FPGA分别试一试?


如果你试了,可以将过程和结果分享在电子森林的项目页面哦。


用户评论

发评论送积分,参与就有奖励!

发表评论

评论内容:发表评论不能请不要超过250字;发表评论请自觉遵守互联网相关政策法规。

深圳市品慧电子有限公司