SG90舵机学习资料Word下载.doc
- 文档编号:7771823
- 上传时间:2023-05-09
- 格式:DOC
- 页数:7
- 大小:460.04KB
SG90舵机学习资料Word下载.doc
《SG90舵机学习资料Word下载.doc》由会员分享,可在线阅读,更多相关《SG90舵机学习资料Word下载.doc(7页珍藏版)》请在冰点文库上搜索。
PWM控制
六:
注意事项
(1)舵机的转动需要时间的,因此,程序中a值的变化不能太快,不然舵机跟不上程序。
根据需要,选择合适的延时,用一个a递增循环,可以让舵机很流畅的转动,而不会产生像步进电机一样的脉动。
(2)当舵机SG90无法正常工作一般为两个原因,工作电压不稳定或PWM值不正确
七:
程序实现
在此设计的定时100us中断中:
角度Angle 度数
5 0
9 45
13 90
17 135
21 180
#include<
reg52.h>
sbitP32=P3^2;
//K1(P32),按下时舵机向左转
sbitP33=P3^3;
//K2(P33),按下时舵机向右转
sbitP10=P1^0;
//P17与舵机的信号线相接
unsignedintTime=0;
//定义周期并初始化为0,其量程范围为0~175,即周期为 175*100us≈20ms
//也可不写此语句,可在T0中断函数中写此语句:
staticunsigned charTime=0;
unsignedcharAngle=5;
//定义角度,其可为任意角度,所以此处不需初始化
voidT_0() interrupt1 //用PWM方式控制舵机的转动及其角度,即导通时间比上周 期,只要改变导通的时间,即可改变其转动的角度
{
TH0=0x9c;
TL0=0x9c;
//初值为156,即计数100us
if(Time<
Angle)
{
P10=1;
//舵机控制线置高电平
}
else
P10=0;
//舵机控制线置低电平
Time++;
if(Time==175)
Time=0;
//周期查询及周期清0
}
voiddelay(unsignedinti) //此软件延时函数用于按键的防抖动
for(;
i<
0;
i--);
}
voidmain(void)
P3=0xff;
//P3并行口寄存器初始化
/*********************************
*下面的程序语句是对进行PWM
*调制的定时器T0进行初始化
*********************************/
TMOD=0x02;
//00000010,T0、软启、定时、工作方式二(8位自动重载)
//初值为156,即计数100us
TR0=1;
//启动定时器T1
ET0=1;
EA=1;
//切记开源、总允位
/**********************************************
*下面的程序语句是对按键进行扫描并执行相应按键的动作
*因按下弹性按键(因其是机械按键)时会在在抖动,所以要
*进行判断并去抖
*************************************/
while
(1)
{
if(P3!
=0xff) //判断有按键按下与否,没有时全部为高电平
{
delay(2500);
//软件编程防抖动,大约10ms
if(P3!
=0xff) //再次判断有按键按下与否,没有时全部为高电平
{
switch(P3)
{
case0xfb:
Angle=21;
break;
//按下K1(P32),左转
case0xf7:
Angle=5;
//按下K2(P33),右转 }
}
}
}
收集于网络,如有侵权请联系管理员删除
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SG90 舵机 学习 资料