SG90舵机学习资料.doc
- 文档编号:5915324
- 上传时间:2023-05-09
- 格式:DOC
- 页数:7
- 大小:460.04KB
SG90舵机学习资料.doc
《SG90舵机学习资料.doc》由会员分享,可在线阅读,更多相关《SG90舵机学习资料.doc(7页珍藏版)》请在冰点文库上搜索。
SG90舵机
精品文档
SG90舵机
一:
实物图、引脚及其参数
二:
内部电路
三:
结构
四:
工作原理
五:
PWM控制
六:
注意事项
(1)舵机的转动需要时间的,因此,程序中a值的变化不能太快,不然舵机跟不上程序。
根据需要,选择合适的延时,用一个a递增循环,可以让舵机很流畅的转动,而不会产生像步进电机一样的脉动。
(2)当舵机SG90无法正常工作一般为两个原因,工作电压不稳定或PWM值不正确
七:
程序实现
在此设计的定时100us中断中:
角度Angle 度数
5 0
9 45
13 90
17 135
21 180
#include
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 { 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位自动重载) TH0=0x9c; TL0=0x9c; //初值为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;break;//按下K2(P33),右转 } } } } } 收集于网络,如有侵权请联系管理员删除
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SG90 舵机 学习 资料