五、測試效果
使用 pwm 電路來控制直流電機的正轉、反轉、加速和減速,並將轉向和轉速顯示出來。
//啟動/停止按鍵
sbit k2=p3^5;
//減速按鍵
sbit k3=p3^6;
//加速按鍵
sbit k4=p3^7;
//正反轉按鍵
sbit k5=p3^2;
//模式控制
//lcd1602控制引腳,其中p2為資料口
sbit rs=p0^5;
sbit rw=p0^6;
sbit e=p0^7;
sbit ena=p1^2;
//in1,in2使能訊號
sbit in1=p1^0;
//電機輸入線
sbit in2=p1^1;
bit model=1;
//手動/自動,預設啟動時顯示自動
bit direc=1;
//轉向標誌,預設啟動時為正轉 l
int rate=1;
//高電平時間常數
int num=0;
//1ms中斷記錄 統計脈衝個數
int count=0;
//1ms中斷記錄,自動模式加速時間常數
uchar code tab1=
" welcome "
;uchar code tab2=
" 2020/12/9"
;uchar code tab3=
" motor control "
;uchar code tab4=
"team:zhl yyq zyy"
;uchar code tab5=
"dire: mode: "
;uchar code tab6=
"rate: t:29 "
;
/********************** lcd顯示 ****************************/
void
w_com
(uint com)
//寫指令
void
w_data
(uint dat)
//寫資料
void
w_shuzu
(int addr,uchar code *p)
//顯示字串
}void
disp()
//顯示速度、轉向、模式
else
if(direc==1)
//正轉
else
//反轉
if(model==0)
//手動按鍵控制
else
//自動
}
/************* 主程式初始化 ************************/
void
init()
/*********************** 主程式 ***************************/
void
main()
/***************** 延時子程式 **************************/
void
delay_xus
(uint x)
//小延時 us
void
delay
(uint x)
//為12mhz晶振提供延時函式 ms級
/******************* 按鍵處理程式 ************************/
void
keyscan()
}if(k2==
0&&model==0)
//減速 減速鍵按下}if
(k3==
0&&model==0)
//加速 加速鍵按下}if
(k4==
0&&model==0)
//轉向}if
(k5==
0&&ena==0)
//模式選
}disp()
;//狀態改變,更新顯示資料
}
/******************* 中斷服務程式 *************************/
void
extern1
() interrupt 2
//外部中斷int1 按鍵掃瞄
void
timer0
() interrupt 1
//定時器0中斷
else in1=in2=0;
//低電平持續時間
}else
//否則 反轉
else in1=in2=0;
}if(model==1)
//自動模式下,執行,加速時間常數
} th0=
0xfc
;//重灌初值 (65536-1000)=fc18(12mhz的定時1ms)
剛啟動時,電機轉速較慢,轉向顯示l,逆時針在轉動,加速到轉速較大時,再改變電機的轉向,轉向顯示r,順時針轉動,實現控制電機正轉、反轉。
控制電機加速,輸出 pwm 矩形波高電平持續時間變長
控制電機減速,輸出 pwm 矩形波高電平持續時間變短
控制電機正轉、反轉
轉向顯示 l 時,p1.0口輸出 pwm 波,正轉;轉向顯示 r 時,p1.1口輸出 pwm 波,反轉
設計符合要求,**效果也挺好。
直流電機pwm 直流電機的調速方法
直流電機的調速方法 一 概述 一是調節電樞電壓,二是調節勵磁電流,1 常見的微型直流電機,其磁場都是固定的,不可調的永磁體,所以只好調節電樞電壓。調節電樞電壓方法 常用的一是可控矽調壓法,再就是脈寬調變法 pwm pwm的h型屬於調壓調速。pwm的h橋只能實現大功率調速。國內的超大功率調速還要依靠可...
直流電機驅動PWM頻率
1 沒有統一的標準,其實pwm的頻率和你的電機感抗和你需要的速度響應時間有很大的關係。一般的電機用14k就足夠了。當然自需要簡單的調速可以隨便選。如果電機轉速比較高,感抗比較小,可以使用比較高的頻率。一般最好不要超過20k 因為一般igbt最高20k的開關頻率。而mos 的開關頻率比較高,但是過高的...
基於PWM控制直流電機調速的設計
實驗現象 通過s2,s3按鍵,增加 減小pwm,控制led燈組的亮滅,同時當高於或低於pwm時,蜂鳴器將工作。include define uchar unsigned char define uint unsigned int sbit s2 p3 4 pwm sbit s3 p3 5 pwm s...