我用了一个l298n驱动,现在会使用,会前进后退,左右转弯,只是无法直行因为左右电机转速不同,请问

作者&投稿:壬钥 (若有异议请与网页底部的电邮联系)
51单片机怎么对直流电机调速,做了个遥控小车~

既然是技巧的话那就不提供详细的代码了,首先要看你这个小车是几轮几驱动的,首先假设你只用一个L298n驱动板的话,那么再假设只含左右两个轮,只对左右两个轮进行控制的话,那么就简单了,首先你要知道L298N驱动板怎么用,不同的驱动板功能都不一定相同,不过控制引脚一般来说都是4根,可以控制两个直流电机的正反转,同时还有两个PWM接口,可以控制两个电机的转速。假设4个控制引脚分为A1、A2和B1、B2,A1、A2控制第一个直流电机,B1、B2控制第二个直流电机,当A1和A2接不同方向的电流后直流电机会正转或反转,同理B1和B2也是一样。PWM是通过控制占有率来控制电机速度的,即控制高电平和低电平的时间的,不同,这样在规定时间内,如果高电平的时间占有比例越高则电机转速越快,输出功率越高。知道以上内容了那么之后的内容就更容易理解了前进:两个直流电机朝正方向同时转动即可后退:两个直流电机朝反方向同时转动即可原地左转:类似原地打转,只需让两个电机一个正转一个反转即可,即左转为左边电机反转,右边电机正转原地右转:与原地左转相反即可固定轮转:固定左边令右侧轮前进即可实现固定轮转向的目的,例如左转的话令左边电机停止,右侧电机正向转动即可,向右转的话与左转相反。至于keil程序,这个要根据具体的硬件来写,别人的无法通用,不过这些都不难,只要原理弄懂了,稍微花一点儿时间还是能很容易写出来的,先从控制电机的转向开始。别人的程序的话可能会越看越难理解,还是自己动手比较好,先不考虑调速的情况下完成了之后再去看看有关PWM调速的内容。

昔日的柔情蜜意已离我远去
而不爱上帝。他们不会
有秩序地挂在湿床单上——每个叶子
披了一身雪花。
这里,海湾在磨损的岩岸后面闪烁。
他是一粒中尘,哈哈

解决L298N驱动两直流电机要实现不跑偏的问题
直流电机采用有刹减速直流电机
附代码:
利用2051的T0产生双路PWM信号,推动L293D或L298N为直流电机调速,程序已通过调试。
/* =======直流电机的PWM速度控制程序======== */
/* 晶振采用11.0592M,产生的PWM的频率约为91Hz */
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit en1=P1^0; /* L298的Enable A */
sbit en2=P1^1; /* L298的Enable B */
sbit s1=P1^2; /* L298的Input 1 */
sbit s2=P1^3; /* L298的Input 2 */
sbit s3=P1^4; /* L298的Input 3 */
sbit s4=P1^5; /* L298的Input 4 */
uchar t=0; /* 中断计数器 */
uchar m1=0; /* 电机1速度值 */
uchar m2=0; /* 电机2速度值 */
uchar tmp1,tmp2; /* 电机当前速度值 */
/* 电机控制函数 index-电机号(1,2); speed-电机速度(-100~100) */
void motor(uchar index, char speed)
{
if(speed>=-100 && speed<=100)
{
if(index==1) /* 电机1的处理 */
{
m1=abs(speed); /* 取速度的绝对值 */
if(speed<0) /* 速度值为负则反转 */
{
s1=0;
s2=1;
}
else /* 不为负数则正转 */
{
s1=1;
s2=0;
}
}
if(index==2) /* 电机2的处理 */
{
m2=abs(speed); /* 电机2的速度控制 */
if(speed<0) /* 电机2的方向控制 */
{
s3=0;
s4=1;
}
else
{
s3=1;
s4=0;
}
}
}
}
void delay(uint j) /* 延时函数 */
{
for(j;j>0;j--);
}
void main()
{
uchar i;
TMOD=0x02; /* 设定T0的工作模式为2 */
TH0=0x9B; /* 装入定时器的初值 */
TL0=0x9B;
EA=1; /* 开中断 */
ET0=1; /* 定时器0允许中断 */
TR0=1; /* 启动定时器0 */
while(1) /* 电机实际控制演示 */
{
for(i=0;i<=100;i++) /* 正转加速 */
{
motor(1,i);
motor(2,i);
delay(5000);
}
for(i=100;i>0;i--) /* 正转减速 */
{
motor(1,i);
motor(2,i);
delay(5000);
}
for(i=0;i<=100;i++) /* 反转加速 */
{
motor(1,-i);
motor(2,-i);
delay(5000);
}
for(i=100;i>0;i--) /* 反转减速 */
{
motor(1,-i);
motor(2,-i);
delay(5000);
}
}
}
void timer0() interrupt 1 /* T0中断服务程序 */
{
if(t==0) /* 1个PWM周期完成后才会接受新数值 */
{
tmp1=m1;
tmp2=m2;
}
if(t if(t t++;
if(t>=100) t=0; /* 1个PWM信号由100次中断产生 */
}


用L298N驱动一个6线步进电机抖动问题
电机的电感量太大,提高驱动器模块的电压,应该可以。

我用L298N控制两个电机,PIC的CCP口输出PWM波,使能端接地电机转,为什么...
因为你用电阻接地,电阻流过的电流会使实际接入使能端的电平抬高,且抬高到了逻辑1,使h桥关断了。

我用L298n驱动一个直流电机,但连好之后电机不转~~~如果只控制电机正反...
可以啊,你按手册上的逻辑表检查一下各管脚逻辑是否正确.

用l298n电机烫死了,怎么办?
电机过热是因为附在太高所致,要避免这种情况发生,可以换一个功率更高的电机,或者减少电机的负载量。

做一个四轮智能小车,用51单片机,现在只有一个L298N,能不能把同侧的两...
理论上可行否?理论上可行,实际上也行。电流过大会烧坏驱动?要看你的电机的工作电流和堵转电流。如果工作电流太大,烧坏驱动是一定的,如果堵转电流太大,烧坏驱动极有可能。

手边只有l298n,与单片机最小系统,如何用它驱动5v继电器模块,急求.不...
手边有l298n与单片机最小系统,用它驱动5v继电器模块已经足够了,真不需要用三极管。方法极其简单,你就把继电器当成电机,线圈接入l298n输出端,没有反正,然后程序对应驱动l298n就可以了,原来电机转就是继电器吸合,电机停转就是继电器释放。就这么简单。

我用AT89C51连接电机驱动芯片L298N,控制直流伺服电动机的转速,正传反转...
不是通过pwm调节占空比,是通过单片机来生成不同占空比的pwm波。不同占空比的pwm波(TTL电平)通过L298N的输入in口,转换成电压较高的pwm波加到电机上就相当于控制了电机的供电电,就实现了调速。 你生成pwm的占空比越大输出的电压就越大。 还有单纯的开环控制是不能实现转速恒定的,干扰一来就转速就变...

我用L298N驱动俩个电机时,使能端电压不相同,导致俩个电机速度不一样...
应该不是程序的原因,原因是两个电机的性能不一致,实际上型号一样的电机在相同的控制信号和电压下,转速也可能不一样。

l298n如果用pwm波控制电机转速,是对使能口赋值使它高低电压变化还是对...
使用l298n,需要给5,7脚,以及10,12脚的in口送pwm信号。另外需要给6,11脚使能en送高低电平

驱动直流电机怎么那么容易烧单片机,我用的L298N驱动,烧了三块单片机了...
问题很简答,问题就来源于直流电机是一个感性负载。感谢负载在断电和切换方向的时候,都会感应出很大的电动势,就这个感应电动势,反馈到了单片机端,瞬间击坏单片机。除了电机两端安装电容和压敏电阻外,最直接的方法是光耦隔离。

海南省19836079820: 我用了一个l298n驱动,现在会使用,会前进后退,左右转弯,只是无法直行因为左右电机转速不同,请问 -
干卫神衰: 解决L298N驱动两直流电机要实现不跑偏的问题 直流电机采用有刹减速直流电机 附代码: 利用2051的T0产生双路PWM信号,推动L293D或L298N为直流电机调速,程序已通过调试. /* =======直流电机的PWM速度控制程序======== */ /* 晶...

海南省19836079820: 51单片机怎么对直流电机调速,做了个遥控小车 -
干卫神衰: 既然是技巧的话那就不提供详细的代码了,首先要看你这个小车是几轮几驱动的,首先假设你只用一个L298n驱动板的话,那么再假设只含左右两个轮,只对左右两个轮进行控制的话,那么就简单了,首先你要知道L298N驱动板怎么用,不同的...

海南省19836079820: 用单片机驱动电机为什么只有在断电的一瞬间才会动一下?我用了l298n -
干卫神衰: l298可以控制两个电动机,有四个输入端,接在单片机的p0口上.还有两个使能端,接在p1口上把.很简单 我刚做完这个课设. 查看原帖>>

海南省19836079820: 用l298n驱动电机,但电机的两端电压正常,但电流很小,基本没有,电机不转动,求高手指点 -
干卫神衰: 1.先把其中一个电机摘除,试试剩下的那个行不行. 2.直接把电机接到12v和地上看看行不行. 这样可以排除电机问题、线路问题,L298N的问题. 做了以上之后,看看能否判断出问题所在解决后说一声怎么回事

海南省19836079820: STM32驱动L298N模块,但是电机不转,求助 -
干卫神衰: L298N是电机驱动芯片,建议不要和stm32直连,中间最好加上三极管或者光耦进行隔离,否则很容易烧毁stm32的.一个L298N可以驱动两个电机,只驱动一个电机的话至少要三根线,一个使能enable(6脚),两个in(5脚、7脚)控制正反转

海南省19836079820: 为什么我用l298n芯片驱动两个电机,电机同时正转时转速不一样,一个正转一个反转时转速却相同呢? -
干卫神衰: 如果有一个电机只能正转,可能是以下两种原因:1.程序没有写对,L298N有一个输出脚只能输出低电平,建议你可以将其它写反来,即:原来是高的改为低,原来低的写成高,这样就能反转了;2.可能是L298N芯片的问题,就如上面所说的那样40有一个输出脚只能输出低电平02当然还可能有一个问题那就是你电路搞错了这个我就说不清楚了0628你仔细看看看吧0

海南省19836079820: 请问各位高手我用L298N驱动直流电机时输入的Vs为12V,为什么芯片的输出只有3V? -
干卫神衰: L298可驱动2个电机,OUTl、OUT2和OUT3、OUT4之间分别接2个电动机.5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转.1298的逻辑功能如表1所列. 如图1所示,:Intel8253输出二组PWM...

海南省19836079820: 用L298N驱动电机,out1与out2电压差为6.5v,驱动普通电机,为什么转不起来呢?接入电机以后,电压就变为0v,为什 -
干卫神衰: L298N上面还有个ENA的端口,就算你有电压差,如果没有在使能端接高电平,电机也不会旋转的.所以要在使能端口接高电平、也就是说上面一共有六个端口接单片机或ARM,其中两个是两个电机的使能端口,四个分别是控制电机两线的高低电位.还不明白问我,我QQ:294224120

海南省19836079820: 用L298N驱动直流电机时,电机不能按所要求的程序启动.不能按要求正常正反转.为什么? -
干卫神衰: 首先检查芯片是否正常,其次要匹配一下自举电容等的参数,如果信号没给错的话 一般都不会有问题,所以,检查一下程序输出是否有问题,或者电源输出不足以驱动电机,298输出基本可以驱动30v以内的电机了

海南省19836079820: 网上买L298n电机驱动模块 -
干卫神衰: 其实那要看你自己的,光耦能保护你的电路,使数电部分与模电部分分开来,因为通常L298N为12V驱动的,而你的控制器可能为5V或者更小的3.3V,其实不要光耦也行的,也没有多大关系.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网