-----------------本文由「麥粒電子」撰寫,並提供相應產品服務。----------------php
有個內部採用電瓶車的驅動器的無線小車,如今須要使用遙控器控制小車的前進後退。也就是說:把以前電瓶車的手動油門把手換成無線控制的。框架
遙控器選擇目前市面上有好多的品牌:「天地飛,futaba,斯翼等。遙控器分爲接收器和發射器:發射器就是控制人手裏拿的搖桿那一部分;接收器則是信號接收端。用來給小車的電機驅動器發送信號的。.net
可是如今有個問題,接收機的輸出信號並不能直接給電機驅動器使用。由於常見遙控接收機的輸出信號通常有三種:舵機PWM信號、SBUS、PPM。而電瓶車的電機驅動器的輸入信號要求通常是個模擬電壓(常見的電瓶車把手其實就是一個旋轉電位器,旋轉到不一樣的位置會輸出不一樣的電壓值,以此來控制電機驅動器,從而達到調節電機轉速的問題。)設計
所以,要想使用遙控器,必須解決接收機輸出信號轉成模擬電壓的問題。爲此,咱們設計了一款信號轉換模塊。下圖爲增長轉換板以後的系統框架圖
htm
舵機PWM轉電壓blog
舵機PWM,基本上每一個接收機都會輸出的一種比較常見PWM信號:通常信號頻率50HZ,信號高電平變化時間在1ms-2ms之間變化(不一樣的遙控器會有小幅度的差別)。舵機PWM基礎知識請點擊:轉載於CSDNPinus_x博主。接口
轉換模塊的核心思路就是採集接收機輸出的PWM型號,接着分析高電平時間,而後根據高電平時間輸出相應的線性變化模擬電壓值。get
通常舵機PWM輸出的高電平時間爲1ms-2ms之間變化,可是實際上咱們爲了匹配不一樣的遙控器和留有必定餘量,咱們設定電平電話的高電平區間爲1.1ms-1.9ms之間。也就是說當採集到1.1ms的高電平PWM信號時,模擬電壓輸出最小值(0V);當採集到1.9ms的高電平時間PWM信號時,模擬電壓輸出最大值(5V)。產品
本文設計的模塊中,一共留出了4路PWM轉電壓的通道。it
SBUS信號轉電壓
sbus信號是Futaba公司定製的一種數字傳輸信號,一共數據包中包含了全部遙控器的通道數值。(天地飛管這路信號叫「Wbus」,本質沒有區別)所以,本文設計中爲sbus(wbus)設計了一路通道,用來收集帶有sbus(wbus)等信號輸出的接收機。
在採集完一幀信號後,只根據搖桿變化的4路信號輸出相應的4通道電壓值。
PPM信號轉電壓
PPM信號實際上是一種合成的PWM型號。前面單路的舵機PWM信號每一個都單獨都佔用一個硬件 通道,要想4路變化就要有4路單路的硬件通道,這樣就會致使硬件接口過多。PPM信號則是把多路PWM信號合成到一路通道。這樣既下降了硬件通道的數量,同時也能傳輸多路PWM信號。
每一個品牌的sbus信號 通道值最大最小值的變化區別也是有區別的,因此爲了儘可能囊括多種遙控器,模塊在程序設計上作了餘量考慮。直接反應到每一個遙控器的現象就是撥杆最低和最高位置附近會有一段小量程變化,不會引發輸出電壓值的變化。這並不影響功能的實現(須要說明的是PWM和PPM也作了餘量設計)。
最後,將模塊接到接收機和電機控制器的輸入端。撥動搖桿,電機轉速如期變化。OK,收工。