永发信息网

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

答案:1  悬赏:60  手机版
解决时间 2021-03-27 15:24
我用了一个l298n驱动,现在会使用,会前进后退,左右转弯,只是无法直行因为左右电机转速不同,请问
最佳答案
解决L298N驱动两直流电机要实现不跑偏的问题
直流电机采用有刹减速直流电机
附代码:
利用2051的T0产生双路PWM信号,推动L293D或L298N为直流电机调速,程序已通过调试。


#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit en1=P1^0;
sbit en2=P1^1;
sbit s1=P1^2;
sbit s2=P1^3;
sbit s3=P1^4;
sbit s4=P1^5;
uchar t=0;
uchar m1=0;
uchar m2=0;
uchar tmp1,tmp2;

void motor(uchar index, char speed)
{
if(speed>=-100 && speed<=100)
{
if(index==1)
{
m1=abs(speed);
if(speed<0)
{
s1=0;
s2=1;
}
else
{
s1=1;
s2=0;
}
}
if(index==2)
{
m2=abs(speed);
if(speed<0)
{
s3=0;
s4=1;
}
else
{
s3=1;
s4=0;
}
}
}
}
void delay(uint j)
{
for(j;j>0;j--);
}
void main()
{
uchar i;
TMOD=0x02;
TH0=0x9B;
TL0=0x9B;
EA=1;
ET0=1;
TR0=1;
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
{
if(t==0)
{
tmp1=m1;
tmp2=m2;
}
if(t if(t t++;
if(t>=100) t=0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如何学习并且真正理解基础经济学
济南交房费用问题 济南交房一般需要交哪些费
打开的excel无法关闭怎么回事
小米6关机重新启动后,米音会自动关闭是怎么
电水壶煮沸水后,其温控开关已断开,为什么按
工行的环球旅行卡威士多币卡和万事达多币卡与
社会维稳六类人员是什么?
53040000000里有什么个亿和什么个万
为什么说同学聚会聚的是“感情”,散的是“家
请问pscc突然只能打开一个图层了是怎么回事?
为什么第8题答案不存在,详解😊ԅ
如果人体失去所有DNA会怎样
不同的学校会不会分手
安义斐然生态园开车怎么走
有明文规定火车上的餐厅必须订餐才能坐吗?
推荐资讯
身材高壮的女生即厚背肩宽,怎么搭配衣服!最
visit my aunt 翻译成中文
2016年的一八开出数必奇,三头六臂是哪吒,太
这是什么植物的果核?外表是像一个青皮核桃一
单作用叶片泵和双作用叶片泵的区别?
高考之后还可以参加艺考吗
沙发跟墙的距离有20公分摆什么比较好
小学三年级咏柳,春日的古诗解释
密封包装食品,为何松动
dnf湖北5区,静心戒指拍卖行多少钱
公主头上戴的称之为什麼?
丰顺汤南的罗洁珊之前在长安街口上过班的。
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?