2012-04-30 22 views
0

這是一個普遍問題,我認爲這可能是一個數學問題,但它是針對Arduino平臺的。將位置傳感器電壓與電機轉速關聯PWM

我正在做一個球懸浮項目,將乒乓球懸浮在一個管中的設定點,球的位置讀取與激光位置傳感器,提供與球的位置相關的模擬電壓。傳感器輸出對於管長度的工作範圍而言是非常線性的。

然後我有一個用PWM控制的風扇作爲%,這是用一個鍋手動調節的,我用一英寸的增量在管上標記了一個刻度。

基本上,我製作了一個傳感器電壓輸出值表,與管中不同位置電機的PWM%值有關。

我做了一個關於這兩個變量的圖表,它出人意料地非常線性。我確實在Excel的趨勢線,並獲得y的直線方程= 3.0265X + 15.05

X是傳感器位置(以伏特爲單位),且Y爲以%表示的PWM值,

的部分我有在Arduino中,模擬引腳的模擬電壓值爲0到1023,並將其與PWM模擬寫入電機(A值從0到255)。

我知道analogRead()和ADC,所以我將0到1023的值通過(5.0 * analogvalue)/ 1023轉換爲電壓;

這會給我電壓,但我不知道如何將此與PWM相關聯,例如傳感器電壓的變化與PWM對電機的變化。我認爲我走在正確的軌道上,但不能把點子連接在一起。

任何幫助將不勝感激!

感謝

回答

2

一般來說,PWM百分比直接關係到電源電壓的電壓。也就是說,如果你有一個5伏的Arduino,並且PWM百分比是75%,那麼輸出應該是3.75伏,只要你有一個輸出電路能夠「過濾」掉單獨的脈衝。

請記住,PWM值的範圍是0到255,所以您需要將期望的「analogRead()」值(範圍爲0到1023)除以四的因子使用PWM產生正確的輸出電壓。