一块L298N不能调节两个电机的速度吗?-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5618|回复: 12

[未解决] 一块L298N不能调节两个电机的速度吗?

[复制链接]
发表于 2020-2-20 15:26 | 显示全部楼层 |阅读模式
用一块L298N,控制两个直流电机,正转反转什么的都能实现,现在的问题是,用PWM来控制速度,如果两个电机的速度一样,那么一切正常,如果两个电机的PWM值不同,则两个电机都不动。而如果我给其中一个电机PWM为0,另外一个就可以正常调速。就不能让他们转速不同吗?
代码如下:
[pre]int MOTOR1EN = 8;
int MOTOR2EN = 9;
int MOTOR1IN1 = 22;
int MOTOR1IN2 = 23;
int MOTOR2IN1 = 24;
int MOTOR2IN2 = 25;
void setup()
{
    Serial.begin(9600);
    pinMode(MOTOR1EN,OUTPUT);
    pinMode(MOTOR1IN1,OUTPUT);
    pinMode(MOTOR1IN2,OUTPUT);
    pinMode(MOTOR2EN,OUTPUT);
    pinMode(MOTOR2IN1,OUTPUT);
    pinMode(MOTOR2IN2,OUTPUT);
}
void loop()
{
    analogWrite(MOTOR1EN, 150);
    delay(50);
    analogWrite(MOTOR2EN, 100);
    delay(50);
    digitalWrite(MOTOR1IN1,LOW);  
    digitalWrite(MOTOR1IN2,HIGH);
    digitalWrite(MOTOR2IN1,LOW);  
    digitalWrite(MOTOR2IN2,HIGH);
    delay(3000);
    digitalWrite(MOTOR1IN1,LOW);
    digitalWrite(MOTOR1IN2,LOW);
    digitalWrite(MOTOR2IN1,LOW);
    digitalWrite(MOTOR2IN2,LOW);
    delay(500);
    digitalWrite(MOTOR1IN1,HIGH);
    digitalWrite(MOTOR1IN2,LOW);
    digitalWrite(MOTOR2IN1,HIGH);
    digitalWrite(MOTOR2IN2,LOW);
    delay(3000);
    digitalWrite(MOTOR1IN1,LOW);
    digitalWrite(MOTOR1IN2,LOW);
    digitalWrite(MOTOR2IN1,LOW);
    digitalWrite(MOTOR2IN2,LOW);
    delay(500);
}[/pre]
现在的100和150就不动,如果都换成同样的就能转,这是为什么呢?
 楼主| 发表于 2020-2-20 21:12 | 显示全部楼层
emmm,有没有大佬指点一下啊。
发表于 2020-2-21 10:17 | 显示全部楼层
个人觉得你先检查一下硬件吧,比如是否共地,电源是否足够
发表于 2020-2-21 15:46 | 显示全部楼层
同意楼上说的,还包括arduino的供电,L298N比较坑爹的还有相同PWM两个输出端电压不相同。
 楼主| 发表于 2020-2-21 19:12 | 显示全部楼层
上海老王 发表于 2020-2-21 10:17
个人觉得你先检查一下硬件吧,比如是否共地,电源是否足够

不共地的话不应该无论如何都不会动吗? 电源是否足够的话,,我一个电源,两块L298N带四个电机,相同PWM,四个都能正反,只要有一个不一样。。就不转了。。
 楼主| 发表于 2020-2-21 19:17 | 显示全部楼层
wangsiqi91 发表于 2020-2-21 15:46
同意楼上说的,还包括arduino的供电,L298N比较坑爹的还有相同PWM两个输出端电压不相同。 ...

emmm,我这个不需要两个多精确, 而且相同PWM,他们确实转速还差不多,能接受,现在就是不能不同速度。。
发表于 2020-2-24 10:28 | 显示全部楼层
x491747768 发表于 2020-2-21 19:12
不共地的话不应该无论如何都不会动吗? 电源是否足够的话,,我一个电源,两块L298N带四个电机,相同PWM ...

无标题.jpg
1、关于是否共地问题,在L298上有点儿小复杂,上面是其内部框图,以L298左半边举例,假设未与控制器共地,因为L298是独立供电,而IN1、IN2、ENA在控制器(arduino)内是同一回路,所以IN1、IN2、ENA本身之间是存在电压差的,我觉得这种电压差是有可能会使L298内部的门电路导通乃至引起OUT1、OUT2有输出的,但这种输出绝不是预设的那样,这一点可以用示波器验证。
2、关于电源问题,是否足够,可以用满负荷输出去测试,即analogWrite输出都为255,此时看电机转速是否都为全速。

个人见解,仅供参考
发表于 2020-3-16 02:15 | 显示全部楼层
共地总没错,面包板共地接2根线也没错
发表于 2020-3-16 12:34 | 显示全部楼层
虽然帮不了你,但很想知道,你的代码是怎么可以复制成这样上传的,哈哈!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 07:47 , Processed in 0.158978 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表