有两种可能:一:智能车给舵机的信号一直是让舵机转到特定的位置上;
二:舵机本身出了问题
舵机问题分析:首先先懂得舵机在什么情况下才会转懂,舵机又是怎么定位的
舵机当你给它一个脉宽信号(一般t=20ms,占空比在:900us-2100us之间),它就会转动。定位是依靠舵机内部的定位器来锁定舵机所走动的角度。
你的舵机一通电就转到以个方向去了,说明又么是你的舵机一上电就接受到的信号,使得舵机转动。又么是你的舵机内部电位器坏了。
q541947673
这个是舵机抖舵了,抖舵的原因很多,包括但不限于以下情况:
1、阻力大于舵机转动力矩,舵机堵转
2、舵机本身问题,例如内部电位器接触不良
3、电源电压电流不够 ,供电不足
4、程序造成舵机进入死区,舵机转动不是线性的,在一定角度时会是死区。
请从上面原因逐一排查
舵机一般故障判断:
1)炸机后舵机电机狂转、舵盘摇臂不受控制、摇臂打滑------------------可以断定:齿轮扫齿了,换齿轮。
2)炸机后舵机一致性锐减,现象是炸坏的舵机反应迟钝,发热严重,但是可以随着控的指令运行,但是舵量很小很慢-------------基本断定:舵机电机过流了,拆下电机后发现电机空载电流很大(>150MA),失去完好的性能(完好电机空载电流≤60-90MA),换舵机电机。
3)炸机后舵机打舵后无任何反应---------------基本确定舵机电子回路断路、接触不良或舵机的电机、电路板的驱动部分烧毁导致的,先检查线路,包括插头,电机引线和舵机引线是否有断路现象,如果没有的话,就进行逐一排除,先将电机卸下测试空载电流,如果空载电流小于90MA,则说明电机是好的,那问题绝对是舵机驱动烧坏了,9-13克微型舵机电路板上面就有2个或四个小贴片三极管,换掉就可以了,有2个三极管的那肯定是用Y2或IY直接代换,也就是SS8550,如果是有四个三极管的H桥电路,则直接用2个Y1(SS8050)和2个(SS8550)直接代换,65MG的UYR ---- 用Y 1(SS8050 IC=15A); UXR------用Y2(SS8550,IC=15A)直接代换。
4)舵机故障是摇臂只能一边转动,另外一边不动的话-----------判断:舵机电机是好的,主要检查驱动部分,有可能烧了一边的驱动三极管,按照(3)维修即可。
5)维修好舵机后通电,发现舵机向一个方向转动后就卡住不动了,舵机吱吱地响--------------说明舵机电机的正负极或电位器的端线接错了,电机的两个接线倒个方向就可以了。
6)崭新的舵机买回来后,通电发现舵机狂抖,但用一下控的摇臂后,舵机一切正常----------说明舵机在出厂的时候装配不当或齿轮精度不够,这个故障一般发生在金属舵机上面,如果不想退货或者更换的话,自行解决的方法:卸下舵机后盖,将舵机电机与舵机减速齿轮分离后,在齿轮之间挤点牙膏,上好舵机齿轮顶盖,上好减速箱螺丝后,安上舵机摇臂,用手反复旋转摇臂碾磨金属舵机齿轮,直至齿轮运转顺滑、齿轮摩擦噪音减小后,将舵机齿轮卸下汽油清洗后,装齿轮上硅油组装好舵机,即可解决舵机故障。
7)有一种故障舵机表现很古怪:摇动控的遥感,舵机有正常的反应,但是固定控的遥感某一位置后,故障舵机摇臂还在慢慢的运行,或者摇臂动作拖泥带水,并来回动作------------------经过多次维修后发现问题所在:应该紧密卡在舵机末级齿轮中电位器的金属转柄,与舵机摇臂大齿轮(末级)结合不紧,甚至发生打滑现象,导致舵机无法正确寻找控发出的位置指令,反馈不准,不停寻找导致的,解决了电位器与摇臂齿轮的紧密结合后,故障可以排除。按照改方法检修后故障仍旧存在的话,也有可能是舵机电机的问题或电位器的问题,需要综合分析逐一排查!
8)故障舵机不停的抖舵,排除无线电干扰,动控摇臂仍旧抖动的话----------电位器老化,换之,或直接报废掉,当配件!
9)数码斜盘舵机装机过后发现舵机运行不正常,快慢不一,退回厂家,后来换回3个后还是一致性差,最后才知道是什么原因-----有些数码舵机对BEC要求,加装5V3A 外置 BEC后,故障排除,与舵机质量无关。
以后程序记得写清楚点,规范化一点,还有,需要有必要的注释好不好,不然人家怎么知道你的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();
}
}
以上就是关于舵机通电后为什么会不停地震动全部的内容,包括:舵机通电后为什么会不停地震动、六轴机械臂测试时机械抖动很厉害是怎么回事、舵机的故障修理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)