電機啟動一般需要較高啟動電壓
發(fā)布時間:2013/11/15 22:17:52 訪問次數(shù):1839
剛編寫好程序時,我發(fā)現(xiàn)PWM達到30%時,ESP36-48SN電機才能緩緩地轉動起來。后來想想也是,電機啟動一般需要較高啟動電壓,低于30%的PWM根本驅動不了電機,’這就要通過程序做相應調整了。不過,不同的電機可能啟動電壓也不一樣,圖4中所示的最小的電機啟動電壓就小很多,然而,還要注意別把電機給燒了。小電機的最高持續(xù)驅動電壓僅為4.5V左右,過高的電壓將影響它的壽命,所以,程序中還耍限制它的最離輸出電壓。方法也是通過調整PWM來實現(xiàn),即調整高電平脈寬,周期內始終低于一定比例。好了,說了這么多,看看程序是怎么實現(xiàn)的吧。
程序中2路PWM都依賴定時器TO進行自動匹配輸出,這樣時鐘就不會停下來,一但停下來PWM輸出就會出現(xiàn)問題,不是0%輸出,就是100%輸出。所以,程序經過了一系列的巧愛上制作妙中斷,最后計算得到PWM數(shù)值。過程如下:單片機收到來自接收機的高電平后,就產生電平變化中斷。在電平變化中斷函數(shù)中,先關閉電平變化中斷允許,并開啟定時器溢出中斷允許,然后退出本次中斷,經過26 us左右,定時器產生中斷。在定時器中斷函數(shù)中,用count這個變量進行自加1計數(shù)。解釋一下,為什么26 us產生定時器中斷呢?初始化定時器時,PWM的頻率為37.5kHz,這個頻率也是定時器中斷的頻率,目的是讓PWM引腳重新載入電平數(shù)值。所以,每次時鐘中斷一次約26 us,這樣判斷中斷引腳的高電平持續(xù)時間就由count決定。當count=40時,高電平的持續(xù)時間約為1ms.當count=80時,高電平的持續(xù)時間約為2ms。這些數(shù)據(jù)都確認完畢后,通過OCROA-(count-40)×4+90, 這個程序語句,就輸幽了對應的脈寬。OCROA指的就是A通道實際PWM輸出的大小,最大為255(100%電壓輸出),最小為0(0%電壓輸出)。coun僦是剛才說的中斷次數(shù),90代表電機啟動電壓(30%電壓輸出),通過修改90這個參數(shù)可以改變機的啟動電壓。同時修改4這個比例常量,來限制電機的最高負荷電壓,另外一個通道也是同樣的原理。程序不多僅僅有幾十行(一頁都不到),相信大家很容易讀懂。有不完善的地方,請大家自己修改。
程序中2路PWM都依賴定時器TO進行自動匹配輸出,這樣時鐘就不會停下來,一但停下來PWM輸出就會出現(xiàn)問題,不是0%輸出,就是100%輸出。所以,程序經過了一系列的巧愛上制作妙中斷,最后計算得到PWM數(shù)值。過程如下:單片機收到來自接收機的高電平后,就產生電平變化中斷。在電平變化中斷函數(shù)中,先關閉電平變化中斷允許,并開啟定時器溢出中斷允許,然后退出本次中斷,經過26 us左右,定時器產生中斷。在定時器中斷函數(shù)中,用count這個變量進行自加1計數(shù)。解釋一下,為什么26 us產生定時器中斷呢?初始化定時器時,PWM的頻率為37.5kHz,這個頻率也是定時器中斷的頻率,目的是讓PWM引腳重新載入電平數(shù)值。所以,每次時鐘中斷一次約26 us,這樣判斷中斷引腳的高電平持續(xù)時間就由count決定。當count=40時,高電平的持續(xù)時間約為1ms.當count=80時,高電平的持續(xù)時間約為2ms。這些數(shù)據(jù)都確認完畢后,通過OCROA-(count-40)×4+90, 這個程序語句,就輸幽了對應的脈寬。OCROA指的就是A通道實際PWM輸出的大小,最大為255(100%電壓輸出),最小為0(0%電壓輸出)。coun僦是剛才說的中斷次數(shù),90代表電機啟動電壓(30%電壓輸出),通過修改90這個參數(shù)可以改變機的啟動電壓。同時修改4這個比例常量,來限制電機的最高負荷電壓,另外一個通道也是同樣的原理。程序不多僅僅有幾十行(一頁都不到),相信大家很容易讀懂。有不完善的地方,請大家自己修改。
剛編寫好程序時,我發(fā)現(xiàn)PWM達到30%時,ESP36-48SN電機才能緩緩地轉動起來。后來想想也是,電機啟動一般需要較高啟動電壓,低于30%的PWM根本驅動不了電機,’這就要通過程序做相應調整了。不過,不同的電機可能啟動電壓也不一樣,圖4中所示的最小的電機啟動電壓就小很多,然而,還要注意別把電機給燒了。小電機的最高持續(xù)驅動電壓僅為4.5V左右,過高的電壓將影響它的壽命,所以,程序中還耍限制它的最離輸出電壓。方法也是通過調整PWM來實現(xiàn),即調整高電平脈寬,周期內始終低于一定比例。好了,說了這么多,看看程序是怎么實現(xiàn)的吧。
程序中2路PWM都依賴定時器TO進行自動匹配輸出,這樣時鐘就不會停下來,一但停下來PWM輸出就會出現(xiàn)問題,不是0%輸出,就是100%輸出。所以,程序經過了一系列的巧愛上制作妙中斷,最后計算得到PWM數(shù)值。過程如下:單片機收到來自接收機的高電平后,就產生電平變化中斷。在電平變化中斷函數(shù)中,先關閉電平變化中斷允許,并開啟定時器溢出中斷允許,然后退出本次中斷,經過26 us左右,定時器產生中斷。在定時器中斷函數(shù)中,用count這個變量進行自加1計數(shù)。解釋一下,為什么26 us產生定時器中斷呢?初始化定時器時,PWM的頻率為37.5kHz,這個頻率也是定時器中斷的頻率,目的是讓PWM引腳重新載入電平數(shù)值。所以,每次時鐘中斷一次約26 us,這樣判斷中斷引腳的高電平持續(xù)時間就由count決定。當count=40時,高電平的持續(xù)時間約為1ms.當count=80時,高電平的持續(xù)時間約為2ms。這些數(shù)據(jù)都確認完畢后,通過OCROA-(count-40)×4+90, 這個程序語句,就輸幽了對應的脈寬。OCROA指的就是A通道實際PWM輸出的大小,最大為255(100%電壓輸出),最小為0(0%電壓輸出)。coun僦是剛才說的中斷次數(shù),90代表電機啟動電壓(30%電壓輸出),通過修改90這個參數(shù)可以改變機的啟動電壓。同時修改4這個比例常量,來限制電機的最高負荷電壓,另外一個通道也是同樣的原理。程序不多僅僅有幾十行(一頁都不到),相信大家很容易讀懂。有不完善的地方,請大家自己修改。
程序中2路PWM都依賴定時器TO進行自動匹配輸出,這樣時鐘就不會停下來,一但停下來PWM輸出就會出現(xiàn)問題,不是0%輸出,就是100%輸出。所以,程序經過了一系列的巧愛上制作妙中斷,最后計算得到PWM數(shù)值。過程如下:單片機收到來自接收機的高電平后,就產生電平變化中斷。在電平變化中斷函數(shù)中,先關閉電平變化中斷允許,并開啟定時器溢出中斷允許,然后退出本次中斷,經過26 us左右,定時器產生中斷。在定時器中斷函數(shù)中,用count這個變量進行自加1計數(shù)。解釋一下,為什么26 us產生定時器中斷呢?初始化定時器時,PWM的頻率為37.5kHz,這個頻率也是定時器中斷的頻率,目的是讓PWM引腳重新載入電平數(shù)值。所以,每次時鐘中斷一次約26 us,這樣判斷中斷引腳的高電平持續(xù)時間就由count決定。當count=40時,高電平的持續(xù)時間約為1ms.當count=80時,高電平的持續(xù)時間約為2ms。這些數(shù)據(jù)都確認完畢后,通過OCROA-(count-40)×4+90, 這個程序語句,就輸幽了對應的脈寬。OCROA指的就是A通道實際PWM輸出的大小,最大為255(100%電壓輸出),最小為0(0%電壓輸出)。coun僦是剛才說的中斷次數(shù),90代表電機啟動電壓(30%電壓輸出),通過修改90這個參數(shù)可以改變機的啟動電壓。同時修改4這個比例常量,來限制電機的最高負荷電壓,另外一個通道也是同樣的原理。程序不多僅僅有幾十行(一頁都不到),相信大家很容易讀懂。有不完善的地方,請大家自己修改。