STM32F103C8直流電機學習

2021-10-01 11:28:38 字數 2072 閱讀 5139

電機如下:

通常電機需要正反轉會需要乙個電機驅動板,電機接到電機介面。

電機驅動板如下:

電機狀態表如下:

不同的電機驅動板可能會有略微不同,有的in1,in2之外可能還會有ena輸入訊號去pwm脈衝訊號來調速度,這個電機驅動板就沒有,就通過直接給in1,in2引腳pwm訊號,比如左輪正轉,in1輸入pwm的占空比一直為0,in1和in2同時為0就不轉,in2輸入不同占空比去調速,關於調速下面也會說到。

stm32板子連線電機驅動板,stm32f103c8t對應電機的引腳圖:

pwm波形如下:

占空比:

d = t1/t;

電機的平均轉速為:

va = vmax*d ;

其中va指的是電機的平均速度,vmax是指電機在全通電時最大速度,d指的是占空比。由上面的公式可見,當改變占空比d時,就可以得到不同電機平均速度va,從而達到調速的目的。

初始化電機pwm定時器,初始化定時器3和定時器4作為pwm控制電機,239的預分頻,1000的自動重裝載值,主時鐘是72m,定時器時鐘ck_cnt=72,000,000/(239+1),定時器時鐘是300,000hz,1/300000≈3.3us計數一次,計數達到1000次,產生一次中斷重新從0開始計數

//初始化電機pwm定時

void setup_car_pwm(void)

引腳配置如下圖:

初始化定時器3的pwm模式,pb0配置成定時器3的pwm模式通道3,pb1配置成定時器3的pwm模式的通道4

void tim3_pwm_init(u16 arr,u16 psc)

初始化定時器4的pwm模式,pb8配置成定時器4的pwm模式通道3,pb9配置成定時器4的pwm模式的通道4

void tim4_pwm_init(u16 arr,u16 psc)
小車pwm調速,右輪對應的是in3、in4控制,也就是pb8、pb9對應的定時器4的通道3和通道4。左輪對應是in1、in2控制,對應pb0、pb1定時器3的通道3和通道4。前進就兩個輪子左輪正轉右輪正轉,設定相同的1~1000範圍的crr調占空比調節速度。退後就是相反的。

//小車控制函式

//引數 左輪速度和右輪速度 範圍 -1000 到 1000

void car_pwm_set(int car_left, int car_right) else if(car_right<0) else

if(car_left>0) else if(car_left<0) else

return;

}

stm32電機控制之控制兩路直流電機!看完你會了嗎

小車使用的電機是12v供電的直流電機,帶編碼器反饋,這樣就可以採用閉環速度控制,這裡電機使用pwm驅動,速度控制框圖如下 由以上框圖可知,stm32通過定時器模組輸出pwm波來控制兩個直流電機的轉動,通過改變pwm占空比的大小可以改變電機的轉速,由於我們的控制目標是實現電機執行在速度範圍內任意給定的...

stm32電機控制之控制兩路直流電機!看完你會了嗎

手頭上有乙個差分驅動的小車,使用兩個直流電機驅動,要實現小車的在給定速度下運動,完成直線行駛,轉向,加速,剎車等複雜運動。使用的電機是12v供電的直流電機,帶編碼器反饋,這樣就可以採用閉環速度控制,這裡電機使用pwm驅動,速度控制框圖如下 由以上框圖可知,stm32通過定時器模組輸出pwm波來控制兩...

STM32神舟III號 驅動直流電機學習(二)

看到一篇講pwm講得比較詳細的stm32的pwm精講 實驗內容 利用stm32的乙個通用定時器 tim2 產生4路頻率相同 1khz 占空比不同的 pwm。ch1占空比75 ch2占空比50 ch3占空比25 ch4占空比10 四路 輸出分別對應pa埠的pa0,pa1,pa2,pa3。實驗目的 掌握...