51单片机舵机转动实验程序与Proteus仿真图

[复制链接]
查看25 | 回复0 | 2021-7-20 18:59:10 | 显示全部楼层 |阅读模式
本实验可以了解舵机是如何被控制转动的。只要控制串口输出的高低电平比例便可以控制舵机转动的角度。压缩包中有程序和仿真,程序中有清晰的注释可以学习。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
1.png 2.png 3.gif

单片机部分源程序如下:完整源程序请下载附件
  1. #include "reg51.h"
  2. #define u8 unsigned char
  3. #define u16 unsigned int
  4. sbit pwm3=P2^0;//发出PWM波
  5. //1ms=-90  2ms=+90
  6. //先转到+90度,然后-90度
  7. //220V 50Hz=20ms   110V 60Hz
  8. void delay(u16 i){while(i--);}
  9. //先delay出20ms   900ms
  10. void main()//-90°到+90°
  11. {//30°误差小于1°
  12.         while(1)
  13.                
  14.         {
  15.         pwm3=1;delay(250);
  16.         pwm3=0;delay(1750);// +90度
  17.           delay(60000);
  18.                 delay(60000);
  19.       
  20.         pwm3=1;delay(50);
  21.         pwm3=0;delay(1950);// -90度
  22.           delay(60000);
  23.                 delay(60000);
  24.       
  25.         pwm3=1;delay(128);
  26.         pwm3=0;delay(1872);// -60度
  27.           delay(60000);
  28.                 delay(60000);
  29.                         pwm3=1;delay(146);
  30.         pwm3=0;delay(1854);// -30度
  31.           delay(60000);
  32.                 delay(60000);
  33.                         pwm3=1;delay(165);
  34.         pwm3=0;delay(1835);// 0度
  35.           delay(60000);
  36.                 delay(60000);
  37.                         pwm3=1;delay(183);
  38.         pwm3=0;delay(1817);// 30度
  39.           delay(60000);
  40.                 delay(60000);
  41.       
  42.         pwm3=1;delay(202);
  43.         pwm3=0;delay(1798);// 60度
  44.           delay(60000);
  45.                 delay(60000);
  46.       
  47.       
  48.         }
复制代码
完整代码和proteus仿真文件: 舵机角度转动.zip (142.23 KB, 售价: 2 工控币)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则