搭了個(gè)H橋電路,控制電機(jī)的正反轉(zhuǎn)和PWM調(diào)速,程序是網(wǎng)上的,改改引腳就能用,電路和源程序如下:
功能:P1.1按鍵停止,P1.2左轉(zhuǎn),P1.3右轉(zhuǎn),P1.0調(diào)速
#include#define uchar unsigned char #define uint unsigned int sbit PW1=P0^0 ; sbit PW2=P0^1 ; //控制電機(jī)的兩個(gè)輸入 sbit accelerate=P1^0 ; //調(diào)速按鍵 sbit stop=P1^1 ; //停止按鍵 sbit left=P1^2 ; //左轉(zhuǎn)按鍵 sbit right=P1^3 ; //右轉(zhuǎn)按鍵 #define right_turn PW1=0;PW2=1 //順時(shí)針轉(zhuǎn)動(dòng) #define left_turn PW1=1;PW2=0 //逆向轉(zhuǎn)動(dòng) #define end_turn PW1=1;PW2=1 //停轉(zhuǎn) uint t0=25000,t1=25000; //初始時(shí)占空比為50% uint a=25000; // 設(shè)置定時(shí)器裝載初值 25ms 設(shè)定頻率為20Hz uchar flag=1; //此標(biāo)志用于選擇不同的裝載初值 uchar dflag; //左右轉(zhuǎn)標(biāo)志 uchar count; //用來標(biāo)志速度檔位 void keyscan(); //鍵盤掃描 void delay(uchar z); void time_init(); //定時(shí)器的初始化 void adjust_speed(); //通過 調(diào)整占空比來調(diào)整速度 //**********************************// void main() { time_init(); //定時(shí)器的初始化 while(1) { keyscan(); //不斷掃描鍵盤程序,以便及時(shí)作出相應(yīng)的響應(yīng) } } //*************************************// void timer0() interrupt 1 using 0 { if(flag) { flag=0; end_turn; a=t0; //t0的大小決定著低電平延續(xù)時(shí)間 TH0=(65536-a)/256; TL0=(65536-a)%256; //重裝載初值 } else { flag=1; //這個(gè)標(biāo)志起到交替輸出高低電平的作用 if(dflag==0) { right_turn; //右轉(zhuǎn) } else { left_turn; //左轉(zhuǎn) } a=t1; //t1的大小決定著高電平延續(xù)時(shí)間 TH0=(65536-a)/256; TL0=(65536-a)%256; //重裝載初值 } } void time_init() { TMOD=0x01; //工作方式寄存器 軟件起動(dòng)定時(shí)器 定時(shí)器功能 方式1 定時(shí)器0 TH0=(65536-a)/256; TL0=(65536-a)%256; //裝載初值 ET0=1; //開啟定時(shí)器中斷使能 EA=1; // 開啟總中斷 TR0=0; } //****************************************// void delay(uchar z) //在12M下延時(shí)z毫秒 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } //******************************// void keyscan() { if(stop==0) { TR0=0; //關(guān)閉定時(shí)器0 即可停止轉(zhuǎn)動(dòng) end_turn; } if(left==0) { TR0=1; dflag=1; //轉(zhuǎn)向標(biāo)志置位則左轉(zhuǎn) } if(right==0) { TR0=1; dflag=0; //轉(zhuǎn)向標(biāo)志復(fù)位則右轉(zhuǎn) } if(accelerate==0) { delay(5) ; //延時(shí)消抖 if(accelerate==0) { while(accelerate==0) ; //等待松手 count++; if(count==1) { t0=20000; t1=30000; //占空比為百分之60 } if(count==2) { t0=15000; t1=35000; //占空比為百分之70 } if(count==3) { t0=10000; t1=40000; //占空比為百分之80 } if(count==4) { t0=5000; t1=45000; //占空比為百分之90 } if(count==5) { count=0; } } } }
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
51單片機(jī)
+關(guān)注
關(guān)注
274文章
5705瀏覽量
123905 -
PWM調(diào)速
+關(guān)注
關(guān)注
2文章
34瀏覽量
10961 -
控制電機(jī)
+關(guān)注
關(guān)注
0文章
240瀏覽量
18177
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
直流電機(jī)正反轉(zhuǎn)控制電路的工作原理
直流電機(jī)的正反轉(zhuǎn)控制可以通過改變電機(jī)的電流方向來實(shí)現(xiàn)。常用的正反轉(zhuǎn)控制電路包括
發(fā)表于 03-27 15:28
?1.6w次閱讀
求助,H橋電路PWM控制電機(jī)轉(zhuǎn)速時(shí)MOS管燒毀!
自己做的一個(gè)H橋電路,想控制電機(jī)正反轉(zhuǎn)以及轉(zhuǎn)速,給控制
發(fā)表于 12-27 21:15
PWM控制ULN2003怎么實(shí)現(xiàn)正反轉(zhuǎn)
現(xiàn)在在整個(gè)控制直流電機(jī)的樣品,能實(shí)現(xiàn)正反轉(zhuǎn),還可以調(diào)速?哪位兄弟有好的方法啊,說說吧,多謝!我準(zhǔn)備用MOS管組成H
發(fā)表于 04-23 06:35
PWM調(diào)速原理分享,如何實(shí)現(xiàn)電機(jī)的正轉(zhuǎn)反轉(zhuǎn)調(diào)速?
,就可以改變直流電機(jī)兩端的平均電壓,從而實(shí)現(xiàn)直流電機(jī)的調(diào)速。前文說過,改變電機(jī)兩端的電源極性可以改變電機(jī)的轉(zhuǎn)速,那么
發(fā)表于 12-10 11:06
Proteus仿真H橋控制電機(jī)正反轉(zhuǎn)是怎樣支持pwm調(diào)速的
Proteus仿真H橋控制電機(jī)正反轉(zhuǎn),支持pwm調(diào)速
發(fā)表于 06-28 13:07
MS管搭建的H橋電路如何去實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)控制
直流有刷電機(jī)有哪些優(yōu)缺點(diǎn)?步進(jìn)電機(jī)有哪些優(yōu)缺點(diǎn)?直流減速電機(jī)驅(qū)動(dòng)該如何去設(shè)計(jì)?MS管搭建的H橋電路
發(fā)表于 09-03 07:13
PWM如何實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)以及調(diào)速呢
直流電機(jī)的調(diào)速原理是什么?PWM信號(hào)調(diào)速的原理是什么?PWM如何實(shí)現(xiàn)電機(jī)的
發(fā)表于 09-23 07:31
2路直流電機(jī)驅(qū)動(dòng)模塊正反轉(zhuǎn)PWM調(diào)速+雙H橋步進(jìn)電機(jī)迷你電機(jī)驅(qū)動(dòng)
2路直流電機(jī)驅(qū)動(dòng)模塊正反轉(zhuǎn)PWM調(diào)速+雙H橋步進(jìn)電機(jī)
發(fā)表于 07-21 08:48
?90次下載
pwm控制電機(jī)正反轉(zhuǎn),PWM直流電機(jī)調(diào)速程序
PWM調(diào)速開關(guān)控制方式控制電機(jī),廣泛應(yīng)用于玩具、小車、機(jī)器人等項(xiàng)目,通過串口預(yù)設(shè)正反轉(zhuǎn)速度,可以
發(fā)表于 10-30 15:00
?2w次閱讀
使用單片機(jī)實(shí)現(xiàn)直流電機(jī)正反轉(zhuǎn)及PWM調(diào)速控制的C語言實(shí)例
本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)直流電機(jī)正反轉(zhuǎn)及PWM調(diào)速控制的C語言實(shí)例
發(fā)表于 03-31 17:24
?70次下載
評(píng)論