怎么让舵机停下来

怎么让舵机停下来,第1张

以后程序记得写清楚点,规范化一点,还有,需要有必要的注释好不好,不然人家怎么知道你的d1是干嘛的?
这里我当做是你的笔误吧

// duoji1();


前面的“//”应该没有的吧
你的意思应该是:
不断执行duoji1();
同时不断检测按键之类的。
你想想,你进入了duoji1();
当你按下d1后,它怎么能停下来呢,因为d1放在了duoji1();的后面
而且你想要实现及时反应的话,你的算法本身就有问题。
想过另外一个算法吧。
要不就把问题补充详细点,我帮你想一个。
对了我这里有个自己以前做巡线小车的程序,拿去看看吧
#include<reg52h> //头文件
#define uchar unsigned char //宏定义
#define uint unsigned int
sbit infl1=P3^4; //inf代表红外对管,1为外,2为内。
sbit infl2=P3^5;
sbit infr2=P3^6;
sbit infr1=P3^7;
sbit pwm=P1^0; //信号线
uchar jd,count;
void time_init() //中断初始化
{
TMOD=0x01;
TH0=0xff; //高电平单位脉冲时间定为方式1,晶振频率为110592,01ms
TL0=0xa3;
IE=0x82;
TR0=1;
}
void time_ini()interrupt 1 //中断函数
{
TH0=0xff; //重新赋新值
TL0=0xa3;
if(count<jd)
pwm=1;
else pwm=0;
count++;
count=count%200; //脉冲周期20ms
}
void keyscan() //按键扫描
{
if(infr1==0)
{
jd=11;
count=0;
while(infr1==0);
}
if(infr2==0)
{
jd=13;
count=0;
while(infr2==0);
}
if(infl1==0)
{
jd=19;
count=0;
while(infl1==0);
}
if(infl2==0)
{
jd=17;
count=0;
while(infl2==0);
}
}
void main()
{
jd=15; //舵机初始角度为90度,自己定义为0度
count=0;
time_init();
while(1)
{
keyscan();
}
}

停转。宏观上的效果就是舵机很听话,选出低频信号(指令信号)这个PPM(脉冲位置调制信号)经译码器把它变为脉宽变化的PWM信号(脉冲占空比信号)。
舵机的输入信号是一个接收机译码器输出的1-2毫秒脉宽变化的信号,就会出现正差或者是负差。注。注:你搬动发射机摇杆---改变舵机输入脉宽----舵机电路发现有差---电机转向消除差的方向---最终差消除,但是极性是和输入的1-2毫秒信号相反,这个电位器的变化就改变了自身信号源的脉宽,这个时候舵机进入平衡位置:低频信号不能空中传播,经载频放大器的调制)把低频数字信号装载到载频信号上)向空中辐射。
讲的不够专业。电机本身还联动一个电位器,电机的转动最终会使输入和输出信号等宽。有描述错的地方请多多指教,这个差就是左右舵机电机正反转的依据5毫秒处就是中点,就是舵机的中立位置,高频信号可以空中传播,它产生的脉宽也是1-2毫秒,并把这个数字信号转换为脉冲位置变化的脉冲信号(PPM信号,1,并剔除载频(高频)信号:这个PWM信号宽度变化范围是1-2毫秒,我也是业余的发射机编码的作用是把模拟信号经AD(A模拟量-D数字量)转换为数字信号,你指哪,而舵机本身也有一个自身的信号源,这个PWM信号就是舵机的输入信号,又叫脉冲位置调制信号)。把这两个信号比对,它就打哪。
控制过程。所以在这里使用了看似没用的载频(高频)
接收机通过高频选频电路把这个信号接收下来

舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为15ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。编程的时候也很简单,你将一根管脚初始化为低电平,然后写一个while循环,在循环中将该脚职位高电平,延时,再拉为低电平,如此不停的循环就是PWM波,你需要控制的是高电平产生的时间,根据高电平的时间来控制舵机的角度的,希望能帮的上你

通过级联减速齿轮带动电位器旋转。
将舵机方波信号进行细分,一定时间内让信号变宽一点点,这样就可以控制舵机转速了,想要多慢都行。控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。
它内部有一个基准电路,产生周期为20ms,宽度为15ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/13313083.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-12
下一篇 2023-07-12

发表评论

登录后才能评论

评论列表(0条)

保存