|
|
新人第一次共享模擬舵機(jī)控制代碼,自己測(cè)試沒(méi)問(wèn)題,只要改變angle即可控制轉(zhuǎn)向
0.png (35.52 KB, 下載次數(shù): 93)
下載附件
2016-4-24 04:18 上傳
源程序:
- #include <reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- //變量與引腳定義
- sbit dj=P1^7; //與舵機(jī)信號(hào)線接的IO
- uchar pwm; //pwm計(jì)數(shù)變量
- uchar angle=4; //舵機(jī)擺臂默認(rèn)轉(zhuǎn)到45度,這是一個(gè)控制擺臂角度的變量,改變這個(gè)量就可以改變舵機(jī)擺臂的轉(zhuǎn)角位置,范圍是2~10,對(duì)應(yīng)0~180度
- //***********************************************************************************//
- //軟件延時(shí),約為z毫秒
- void delay(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- //定時(shí)器初始化,用以模擬驅(qū)動(dòng)舵機(jī)的PWM波
- void Timer_Init(void)
- {
- TMOD=0x02;
- TH0=6; //設(shè)為0.25ms觸發(fā)一次定時(shí)器中斷
- TL0=6;
- ET0=1;
- EA=1;
- TR0=1;
- }
- //***********************************************************************************//
- //主函數(shù)
- void main()
- {
- Timer_Init(); //定時(shí)器初始化
- angle=6;
- }
- //***********************************************************************************//
- //定時(shí)器中斷服務(wù)程序
- void Time0_Isr() interrupt 1
- {
- pwm++; //判斷值自加一
- if(pwm==angle) //與角度變量比較
- {
- dj=0; //接舵機(jī)的IO置0
- }
- if(pwm==80) //0.25*80=20ms的周期
- {
- pwm=0; //周期到,清零
- dj=1; //接舵機(jī)的IO置1
- }
- }
復(fù)制代碼
|
-
-
舵機(jī)參考程序.zip
2016-4-23 16:44 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
806 Bytes, 下載次數(shù): 24, 下載積分: 黑幣 -5
可以控制舵機(jī)轉(zhuǎn)向需要的拿去
評(píng)分
-
查看全部評(píng)分
|