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