最近用到了低壓大功率有刷直流電機, 需要調速控制, 時間緊急,來不及加速度反饋, 直接使用pwm開環控制了。 根據功率估算了電流大概在10a左右,沒時間畫電路板,於是** 找了下整合驅動模組, 發現也就bts7960 板橋晶元的模組合適,於是買了3個, 模組每個有2個 bts7960, 組成乙個h橋, 驅動一路電機, 需要2路。 由於之前沒有實際驅動過h橋, 看來下幾種驅動方式, 決定使用單橋臂 pwm調製 方法, 另一橋臂作為方向使用, 這種情況下只有一路橋臂需要pwm引腳,實際分配引腳方便些, 但是有個問題,控制方向的橋臂驅動高電平時, pwm 橋臂側最小時 輸出低電平的話,其實是最大輸出, 想到2種辦法,一是更改輸出極性, 二是 使用最大pwm值減去計算的pwm值作為 pwm輸出, 不想再初始化定時器,於是採用 減pwm的方法寫的。
考慮 方向橋臂有可能使用 繼電器 或 接觸器代替, 切換方向時 關閉使能了一段時間,避免驅動電機過程中切換方向,引起電弧,產生浪湧電壓,損壞器件。 另外需要注意 大功率電機 需要新增加減速控制邏輯, 加速過程會避免大電流衝擊, 減速過程能再生制動。 **如下:
typedef enum dir_enum // 方向列舉
direnum;
/ 定義了個 最小pwm: base_pwm_val, pwm 對映到 百分比: base_pwm_perc ~ 100
// 0 不要對映, 做 停止pwm用
u16 percconv(u32 pwm)
// pcout(6)
// run_motr_en paout(8)
// 最少10ms 呼叫一次, 換向時 30ms內 無pwm輸出
void setlrpwm(u16 reapwml, u16 reapwmr, direnum dirl, direnum dirr)
if(lastdirr != dirr)
dir_l = dirl;
dir_r = dirr;
if(reinl < 4)
run_motl_en = 0;
else
else
tim_setcompare3(tim4, full_pwm_val - reapwml);
if(0 == reapwml) run_motl_en = 0;
else run_motl_en = 1;
}if(reinr < 3)
run_motr_en = 0;
else
else
tim_setcompare4(tim4, full_pwm_val - reapwmr);
if(0 == reapwmr) run_motr_en = 0;
else run_motr_en = 1;
} // lastpwml = reapwml; lastpwmr = reapwmr;
reinl++; reinr++;
if(reinl > 200) reinl = 200;
if(reinr > 200) reinr = 200;
}
直流電機H橋驅動電路
一 h橋驅動電路 圖4.12中所示為乙個典型的直流電機控制電路。電路得名於 h橋驅動電路 是因為它的形狀酷似字母h。4個三極體組成h的4條垂直腿,而電機就是h中的橫槓 注意 圖4.12及隨後的兩個圖都只是示意圖,而不是完整的電路圖,其中三極體的驅動電路沒有畫出來 如圖所示,h橋式電機驅動電路包括4個...
直流電機pwm 直流電機的調速方法
直流電機的調速方法 一 概述 一是調節電樞電壓,二是調節勵磁電流,1 常見的微型直流電機,其磁場都是固定的,不可調的永磁體,所以只好調節電樞電壓。調節電樞電壓方法 常用的一是可控矽調壓法,再就是脈寬調變法 pwm pwm的h型屬於調壓調速。pwm的h橋只能實現大功率調速。國內的超大功率調速還要依靠可...
網易 小車直流電機H橋驅動方案的選擇
一。首先要否決的是大家用的最多的乙個h橋驅動晶元 l928n 是的,這個晶元是很簡單,很便宜,而且很容易買到,乙個晶元裡面就整合了2路的h橋電路,還帶pwm控制和電流採集。但是它有2個嚴重的缺點 1 手冊要求電機驅動電壓要比控制邏輯電壓高2.5v。不適合單電源供電的小車。而實際上我們做的小車為了維護...