admin管理员组文章数量:1122853
舵机
首先是一些关于舵机的介绍
舵机控制原理本次使用的舵机是MG995和MG90S,个人认为这两个舵机还是没什么区别的 , MG995的功率比较大, MG90S功率比较小,以下有一个关于MG995的使用文章
在网上看到的程序总感觉太难读,在这里贴一下自己的程序 主控用的51单片机。。然后用简单的延时函数实现的
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char .//sbit jia=P3^4;
//sbit jian=P3^7;
sbit PWM=P0^0; //使用P0^0是使用了10K的排阻进行上拉//uint count;
//uint jd;void Timer0_Init(void);
void Delay1ms();
void Delay1500us();//1.5ms
void Delay100us();//0.1ms
void Delay2500us();//2.5ms//void anjian();void main()
{
// count=0;
// jd=1;Timer0_Init();while(1){// anjian();}
}void Timer0_Init(void) //20毫秒@11.0592MHz
{//AUXR &= 0x7F; //定时器时钟12T模式
TMOD = 0x01; //设置定时器模式
TL0 = 0xff; //设置定时初值
TH0 = 0xB7; //设置定时初值
// TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0=1;
EA=1;
}
void tm0_isr() interrupt 1
{ TL0 = 0xff; //设置定时初值
TH0 = 0xB7; //设置定时初值
//if(count<jd)
PWM=1;
//Delay1ms(); //延时1ms right 90°
Delay1500us(); //延时1.5ms right 45°
//Delay1500us(); Delay100us();Delay100us(); //延时1.7ms 0°
//Delay1500us(); Delay100us();Delay100us();Delay100us();//延时1.8ms left45°//Delay2500us(); //延时2.5ms left 90°
PWM=0;
}void Delay1ms() //@11.0592MHz
{
unsigned char i, j; _nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}void Delay1500us() //@11.0592MHz
{
unsigned char i, j; i = 3;
j = 173;
do
{
while (--j);
} while (--i);
}void Delay100us() //@11.0592MHz
{
unsigned char i; _nop_();
i = 43;
while (--i);
}void Delay2500us() //@11.0592MHz
{
unsigned char i, j; i = 5;
j = 120;
do
{
while (--j);
} while (--i);
}//void anjian()
//{
// P3=0xff;
// if(jia==0)
// {
// Delay10ms();
// if(jia==0)
// {
// jd++,count=0;
// if(jd==6)jd=5;
// while(!jia);
// Delay10ms();
// while(!jia);
// }
// }
//
//
// if(jian==0)
// {
// Delay10ms();
// if(jian==0)
// {
// jd--,count=0;
// if(jd==0)jd=1;
// while(!jian);
// Delay10ms();
// while(!jian);
// }
// }
//}
本文标签: 舵机
版权声明:本文标题:舵机 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1701017537a330647.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论