還記得我們“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分別試一試?
如果你試了,可以將過程和結果分享在電子森林的項目頁面哦。
原文標題:設計小技巧:如何用MCU或FPGA的一個數字IO測量2個電位計的阻值變化?
文章出處:【微信公眾號:電子森林】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
FPGA
+關注
關注
1630文章
21759瀏覽量
604340 -
mcu
+關注
關注
146文章
17185瀏覽量
351704 -
adc
+關注
關注
98文章
6514瀏覽量
545044 -
電位計
+關注
關注
0文章
253瀏覽量
16983
原文標題:設計小技巧:如何用MCU或FPGA的一個數字IO測量2個電位計的阻值變化?
文章出處:【微信號:xiaojiaoyafpga,微信公眾號:電子森林】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論