本實驗可以了解舵機是如何被控制轉動的。只要控制串口輸出的高低電平比例便可以控制舵機轉動的角度。壓縮包中有程序和仿真,程序中有清晰的注釋可以學習。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
捕獲.PNG (104.62 KB, 下載次數: 43)
下載附件
2021-7-19 15:14 上傳
51hei.gif (93.8 KB, 下載次數: 50)
下載附件
2021-7-19 15:15 上傳
單片機源程序如下:
- #include "reg51.h"
- #define u8 unsigned char
- #define u16 unsigned int
- sbit pwm3=P2^0;//發出PWM波
- //1ms=-90 2ms=+90
- //先轉到+90度,然后-90度
- //220V 50Hz=20ms 110V 60Hz
- void delay(u16 i){while(i--);}
- //先delay出20ms 900ms
- void main()//-90°到+90°
- {//30°誤差小于1°
- while(1)
-
- {
- pwm3=1;delay(250);
- pwm3=0;delay(1750);// +90度
- delay(60000);
- delay(60000);
-
- pwm3=1;delay(50);
- pwm3=0;delay(1950);// -90度
- delay(60000);
- delay(60000);
-
- pwm3=1;delay(128);
- pwm3=0;delay(1872);// -60度
- delay(60000);
- delay(60000);
- pwm3=1;delay(146);
- pwm3=0;delay(1854);// -30度
- delay(60000);
- delay(60000);
- pwm3=1;delay(165);
- pwm3=0;delay(1835);// 0度
- delay(60000);
- delay(60000);
- pwm3=1;delay(183);
- pwm3=0;delay(1817);// 30度
- delay(60000);
- delay(60000);
-
- pwm3=1;delay(202);
- pwm3=0;delay(1798);// 60度
- delay(60000);
- delay(60000);
-
-
- }
- //第2
-
- //第3
- }
復制代碼
51hei.png (11.66 KB, 下載次數: 32)
下載附件
2021-7-19 15:16 上傳
所有資料51hei提供下載:
舵機角度轉動.7z
(124.55 KB, 下載次數: 58)
2021-7-19 15:16 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|