本實驗可以了解舵機是如何被控制轉動的。只要控制串口輸出的高低電平比例便可以控制舵機轉動的角度。壓縮包中有程序和仿真,程序中有清晰的注釋可以學習。
完整代碼和proteus仿真文件:
舵機角度轉動.zip
(142.23 KB, 售價: 3 E幣)
2021-7-20 18:58 上傳
點擊文件名下載附件
售價: 3 E幣 [記錄]
[ 購買]
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.png (113.06 KB)
下載附件
2021-7-20 18:56 上傳
2.png (113.06 KB)
下載附件
2021-7-20 18:56 上傳
3.gif (86.29 KB)
下載附件
2021-7-20 18:56 上傳
單片機部分源程序如下:完整源程序請下載附件
- #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);
-
-
- }
復制代碼
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|