
1、多数情况下是电流的声音因为在电机启动的时候出现了一些微小的问题,导致电动车低速扭矩下可能没有那么大力,这电流就比较大所以就会发出嗡嗡的声响。
2、控制器出现了问题,导致电动车内控制器的输出的波形不规则,或者输出的状态不理想都会造成电动车电机嗡嗡的响声。
51单片机驱动直流电机程序(用的是l298n芯片):
#include<reg51.h>
#include<math.h>
#defineuintunsignedint
#defineucharunsignedchar
#defineN100
sbit s1=P1^0//电机驱动口
sbits2=P1^1//电机驱动口
sbits3=P1^2//电机驱动口
sbits4=P1^3//电机驱动口
sbiten1=P1^4//电机使能端
sbiten2=P1^5//电机使能端
sbitLSEN=P2^0//光电对管最左
sbitLSEN1=P2^1//光电对管左1
sbitLSEN2=P2^2//光电对管左2
sbitRSEN1=P2^3//光电对管右1
sbitRSEN2=P2^4//光电对管右2
sbitRSEN=P2^5//光电对管最右
uintpwm1=0,pwm2=0,t=0
voiddelay(uintxms)
{
uinta
while(--xms)
{
for(a=123a>0a--)
}
}
voidmotor(ucharspeed1,ucharspeed2)
{
if(speed1>=-100&&speed1<=100)
{
pwm1=abs(speed1)
if(speed1>0)
{
s1=1
s2=0
}
if(speed1==0)
{
s1=1
s2=1
}
if(speed1<0)
{
s1=0
s2=1
}
}
if(speed2>=-100&&speed2<=100)
{
pwm2=abs(speed2)
if(speed2>0)
{
s3=1
s4=0
}
if(speed2==0)
{
s3=1
s4=1
}
if(speed2<0)
{
s3=0
s4=1
}
}
}
voidgo_forward(uintspeed)
{
s1=1
s2=0
s3=1
s4=0
pwm1=speed
pwm2=speed
}
voidgo_back(uintspeed)
{
s1=0
s2=1
s3=0
s4=1
pwm1=speed
pwm2=speed
}
voidstop()
{
s1=1
s2=1
s3=1
s4=1
pwm1=0
pwm2=0
}
voidturn_right(uintP1,uintP2)//右转函数
{
s1=1
s2=0
s3=0
s4=1
pwm1=P1
pwm2=P2
}
voidturn_left(uintP1,uintP2)//左转函数
{
s1=0
s2=1
s3=1
s4=0
pwm1=P1
pwm2=P2
}
voidtracking()
{
if((LSEN1==0)&&(LSEN2==0)&&(RSEN1==0)&&(RSEN2==0))//没有检测到
{
go_forward(100)
}
if((LSEN1==1)&&(LSEN2==0)&&(RSEN1==0)&&(RSEN2==0))//左一检测到
{
turn_left(40,80)//左转右轮》左轮
delay(N)
}
if((LSEN1==0)&&(LSEN2==1)&&(RSEN1==0)&&(RSEN2==0))//左二检测到
{
turn_left(40,60)//左转右轮》左轮
delay(N)
}
if((LSEN1==0)&&(LSEN2==0)&&(RSEN1==1)&&(RSEN2==0))//右一检测到
{
turn_right(60,4)//右转左轮》右轮
delay(N)
}
if((LSEN1==0)&&(LSEN2==0)&&(RSEN1==0)&&(RSEN2==1))//右二检测到
{
turn_right(80,40)//右转左轮》右轮
delay(N)
}
if((LSEN1==1)&&(LSEN2==1))
{
turn_left(0,100)
delay(1000)
}
if((RSEN1==1)&&(RSEN2==1))
{
turn_right(100,0)
delay(1000)
}
}
voidavoidance()
{
}
voidinit()
{
TMOD=0x02//timer0同时配置为模式2,8自动重装计数模式
TH0=156//定时器初值设置100us中断
TL0=156
ET0=1
EA=1
TR0=1//开启总中断
}
voidmain()
{
init()
while(1)
{
tracking()
}
}
voidtimer0()interrupt1//电机驱动提供PWM信号
{
if(t<pwm1)
en1=1
else
en1=0
if(t<pwm2)
en2=1
else
en2=0
t++
if(t>100)
t=0
}
扩展资料
L298N是一种双H桥电机驱动芯片,其中每个H桥可以提供2A的电流,功率部分的供电电压范围是2.5-48v,逻辑部分5v供电,接受5vTTL电平。一般情况下,功率部分的电压应大于6V否则芯片可能不能正常工作。
参考资料来源:百度百科-l298n
接好线,编好驱动电机的程序,但是电机不运行?应该怎么查?非汽车在运动控制系统,经常遇见,线接完了,驱动电机运动的程序也写好了,但是电机就是不动,这是什么原因呢,该如何查呢?
其可能存在原因为:
线未接对
相关器件设置不对
相关器件有故障
以下是相关排查手段,不全,但是可以排查一些问题。
在排查之前,先说一下运动控制器系统的配置(其运动控制系统可能为配置1、配置2、配置3,见本文图:下拉就可以看到图了)
确定控制系统后,想办法进行对比测试,如 可以运行的系统和目前存在问题的系统比对,其详细步骤如下。
步骤1:线路是否正常
检查线路,是否有错接、漏接,如24V电源,5V电源,共地等,仔细核查和电气接线图是否一致
测试通断,线缆1、线缆2 、端子板无问题,
测试线路的电阻,如果需要加限流电阻而未加,请加上,如果不需要加限流电阻,而加了,请除去限流电流
如果步骤1,已经测试完成,并且无问题,则进入步骤2
步骤2:检查驱动器和电机本身,保证其无问题
驱动器驱动电机试运转(如果可以的话),则进行此部分 *** 作,试运转成功,进行下一步 *** 作,否则更换电机或驱动器重新测试。
确定驱动器设置无问题,有些驱动器可以设置是内部触发脉冲、外部触发脉冲,请多留意
如果是步进驱动器,检查细分、电流设定是否准确无误。
步骤3:控制器设置
1.使能,如果您可以听到驱动器有响应,则代表使能成功
2.设置好脉冲输出方式 DIR PLUSE 或 CW CCW ,确定其输出方式与驱动器接收脉冲方式一致
步骤4.开始测试其运转过程,如无法运转,跳到步骤6
1.点动。判断防线是否对
2.点位运行。
3.持续运动。
3.看编码器是否有反馈值,其进给距离是否和设定的一致,如设定1000个脉冲走1mm。不一致,则重新设置。
步骤5 :测试完成,开始准备编写所有程序或系统调试
步骤6:做完返回步骤4
1.用示波器连接端子板的输出,确定其有输出,并判断和想要的是否一致。
2.如果不一致,则更换对应的器件,进行测试 *** 作。
配置1
配置2
配置3
控制器:硬PLC 、运动控制卡 、软PLC。
驱动器:步进驱动器、伺服驱动器或其它驱动器。
电机:步进电机、伺服电机或其它电机。
线缆1:为了延长设备可接入距离的一些物理电缆。
线缆2:为了延长设备可接入距离的一些物理电缆。
端子板:为了配线 接线方便,而设计的端子。
阅读原文
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)