普通IO埠模擬PWM,其實是有局限的,尤其是要輸出高頻率的PWM波形時,更不適合,建議不要選用普通埠模擬PWM,而建議選用定時器復用硬體PWM輸出。
什麼是PWM
PWM其實就是電平有周期的高低電平變化。PWM輸出是由兩個參數:佔空比和周期頻率決定的。
在電子產品控制領域,PWM控制是一項運用非常廣泛的技術,有很多行業都需要使用到它。
普通埠如何模擬PWM
有些單片機內部擁有帶PWM輸出功能的定時器,只需要簡單的配置參數和使能,就能夠在特定的復用IO引腳,輸出想要的PWM波形。
但當設計電路當中,單片機引腳沒有PWM功能時,如果想要實現模擬PWM信號的功能,則可以與內部普通定時器去實現。
假設實現1Khz,50%佔空比的波形,即實現周期為1ms的pwm輸出,需要設定一個0.5ms的定時器中斷,每次進入一次定時器,則對普通的IO埠輸出電平進行一次翻轉,以達到PWM輸出波形的作用。
模擬PWM優點:
普通IO埠模擬PWM,可以增加硬體引腳的適配程度,並不受單片機特定限制。
模擬PWM缺點
模擬PWM的輸出頻率越高,進入定時器中斷的次數就越快,中斷間隔的時間越短,如果再有其他類型的中斷也要處理時,會因為中斷的優先級嵌套等待響應,影響控制精度,PWM輸出誤差增大,也會影響其他如ADC等中斷處理,甚至會較出現單片機邏輯出錯,死機或者跑飛的情況。
模擬PWM,適用範圍
模擬pwm,適合低頻率,固定周期和固定佔空比的場合, 複雜的高頻率的PWM控制應用,需要專用的pwm輸出硬體來進行。
哪些行業需要使用PWM
舞檯燈光RGB
舞檯燈光控制RGB顏色漸變和亮滅控制,都是通過單片機發出PWM信號,驅MOS管,配合PWM專用控制晶片,再調節佔空比,達到對RGB燈珠的供電電流大小變化,而實現強弱變化,並且控制各種不同的顏色燈珠的色度來混合成各種不同的顏色和效果。
無人機控制/六軸機器人/智慧機器人
無人機控制/六軸機器人/智慧機器人,都是經過Pwm控制電路,控制電機轉速,同時單片機不斷採集相關數據,如三軸加速度傳感器和角速度傳感器,確定機身的姿態,再用pwm的佔空比進行增加或者降低,改變舵機轉速,達到調整姿態和高度,或者完成控制肢體動作的目的.
總結
普通IO模擬PWM,可以在某一些低頻率周期的應用場合使用,高頻率的PWM,需要使用特定的硬體PWM輸出控制器。PWM控制是單片機編程的一個重要利器,學好PWM控制算法,那麼高薪工作唾手可得。