基于PIC单片机的仿生机器鱼的舵机控制
[10-10 20:38:44] 来源:http://www.88dzw.com 单片机学习 阅读:8624次
文章摘要: } } PORTDbits.RD0=1; // 输出脉冲宽度为2ms,周期为20ms 的脉冲信号 delay(8); PORTDbits.RD0=0; delay(72); 从上面的程序可知,通过改变delay 函数的形参j,可以根据需要,得到具有相应脉冲宽度和周期的脉冲信号。例如,改变以上程序段的1 至4 行为: PORTDbits.RD0=1; delay(4); PORTDbits.RD0=0; delay(76); 得到输出脉冲宽度为1ms,周期为20ms 的脉冲信号,然后借助for 循环,将能得到所需要
基于PIC单片机的仿生机器鱼的舵机控制,标签:单片机开发,单片机原理,http://www.88dzw.com}
}
PORTDbits.RD0=1; // 输出脉冲宽度为2ms,周期为20ms 的脉冲信号
delay(8);
PORTDbits.RD0=0;
delay(72);
从上面的程序可知,通过改变delay 函数的形参j,可以根据需要,得到具有相应脉冲宽度和周期的脉冲信号。例如,改变以上程序段的1 至4 行为:
PORTDbits.RD0=1;
delay(4);
PORTDbits.RD0=0;
delay(76);
得到输出脉冲宽度为1ms,周期为20ms 的脉冲信号,然后借助for 循环,将能得到所需要的周期性脉冲信号,驱动舵机输出轴达到-90°到90° 之间的转角。
3.2.2 多舵机不同角度的控制:
通过多舵机不同角度的控制,可以控制几个舵机同时向不同角度扭转,以达到预期的控制目的。
具体的实现方法是:在定时器延时函数中设定一个计时值t(在程序中t 在初始化时值为0),使t 在每次定时器计时完毕时加1。例如,定时器一周期的定时时间为0.25ms,则t值每加1 就相当于0.25ms。当t 的代表值达到20ms 也就是当t 等于80 时清零,这样就可以将脉冲周期控制在20ms,再通过使用if 语句查询方式,可以调节同一周期脉冲的脉冲宽度,即能使多舵机同时向不同角度旋转。
程序示例:(晶振为:4MHZ,脉冲从PORTDbits.RD0,PORTDbits.RD1,PORTDbits.RD2三个端口中输出)
if(t=0) //端口初始化
{
PORTDbits.RD0=1
PORTDbits.RD1=1
PORTDbits.RD2=1
}
INTCONbits.TMR0IF=0; //清TMR0 中断标志位
T0CON=0XCF; //设定TMR0L 工作于8 位定时器方式、内部时钟、TMR0不用分频
TMR0L=0X14; //设定TMR0 每0.25ms 产生一次中断
L1: if(INTCONbits.TMR0IF==1)
{
INTCONbits.TMR0IF==0; //清TMR0 中断标志位,关计时器
T0CON=0X4F;
t++
}
else goto L1;
if(t=4)
PORTDbits.RD0=0; //脉冲宽度为:1ms
else if(t=6)
PORTDbits.RD1=0; //脉冲宽度为:1.5ms
else if(t=8)
PORTDbits.RD2=0; //脉冲宽度为:2ms
else(t=80)
t=0; //脉冲周期为:0.25ms*80=20ms
Tag:单片机学习,单片机开发,单片机原理,维修教程知识 - 单片机学习
《基于PIC单片机的仿生机器鱼的舵机控制》相关文章
- › 基于PICl6F873制作数字温度计
- › 基于PIC单片机的新型医用呼叫对讲系统设计
- › 基于PICl2F508的交流接触器节电器设计
- › 基于PIC单片机的仿生机器鱼的舵机控制
- › 基于PIC单片机与串行闪存的SPI接口设计
- › 基于PIC软件设计串行异步通信三倍速采样方法
- 在百度中搜索相关文章:基于PIC单片机的仿生机器鱼的舵机控制
- 在谷歌中搜索相关文章:基于PIC单片机的仿生机器鱼的舵机控制
- 在soso中搜索相关文章:基于PIC单片机的仿生机器鱼的舵机控制
- 在搜狗中搜索相关文章:基于PIC单片机的仿生机器鱼的舵机控制
最新更新