L298N沒動作-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6026|回复: 2

[已解决] L298N沒動作

[复制链接]
发表于 2014-2-4 22:23 | 显示全部楼层 |阅读模式
請問如果說L298N的模組在執行程式時兩邊的輸出指示燈有亮但馬達會發出聲音沒動作ENA和ENB接上5V,用電表量測接上馬達時的電壓大概0.5~1V左右拔掉馬達後測量大約4~5v這樣是代表我的L298N掛了嗎??剛買回來時有成功運作幾次不過隔天在用別的程式去跑第一次還有動作之後就沒動作了而現在用測試程式去跑也完全沒反應指示燈一樣有亮不過馬達卻發出像氣球洩氣一般的聲音


L298N模組是用9V電池
ARDUINO UNO R3板子是用電腦的USB供電
L298N的GND有接到ARDUINO的GND

以下是我用來測試的程式
/* Input for motorA:
   IN1      IN2      Action
   LOW      LOW      Motor Stop
   HIGH     LOW      Motor moves forward  
   LOW      HIGH     Motor moves backward
   HIGH     HIGH     Motor Stop
*/   
const int motorIn1 = 3;
const int motorIn2 = 4;
const int motorIn3 = 5;      
const int motorIn4 = 6;      

const int DELAY = 1000;

void setup()  
{
  pinMode(motorIn1, OUTPUT);
  pinMode(motorIn2, OUTPUT);
  pinMode(motorIn3, OUTPUT);
  pinMode(motorIn4, OUTPUT);   
}

void loop()
{
  selfTest();
}

void selfTest()
{
  forward();
  delay(DELAY);
  motorstop(); delay(500);
  
  backward();
  delay(DELAY);
  motorstop(); delay(500);
  
  right();
  delay(DELAY);
  motorstop(); delay(500);
  
  left();
  delay(DELAY);
  motorstop(); delay(500);  
}

void motorstop()
{
  digitalWrite(motorIn1, LOW);
  digitalWrite(motorIn2, LOW);
  digitalWrite(motorIn3, LOW);
  digitalWrite(motorIn4, LOW);
}

void forward()
{
  digitalWrite(motorIn1, HIGH);
  digitalWrite(motorIn2, LOW);
  digitalWrite(motorIn3, HIGH);
  digitalWrite(motorIn4, LOW);
}

void backward()
{
  digitalWrite(motorIn1, LOW);
  digitalWrite(motorIn2, HIGH);
  digitalWrite(motorIn3, LOW);
  digitalWrite(motorIn4, HIGH);
}

// Let right motor keep running, but stop left motor
void right()
{
  digitalWrite(motorIn1, HIGH);
  digitalWrite(motorIn2, LOW);
  digitalWrite(motorIn3, LOW);
  digitalWrite(motorIn4, LOW);
}

// Let left motor keep running, but stop right motor
void left()
{
  digitalWrite(motorIn1, LOW);
  digitalWrite(motorIn2, LOW);
  digitalWrite(motorIn3, HIGH);
  digitalWrite(motorIn4, LOW);
}





這是我所用的L298N

這是我所用的L298N
发表于 2014-2-9 22:32 | 显示全部楼层
我和你用的一样,也碰到你这样的问题过,换了下线,也改了下程序好了。用到现在没出现过问题,因为我菜鸟,也帮不了你,我也都是按照教程瞎弄的。后面大侠补充
发表于 2014-2-11 14:23 | 显示全部楼层
把const int DELAY = 1000 改小点。
改成1-5之间,试试。
另外看看电机的驱动序列是不是对的,有的驱动板作了逻辑反操作,就要把低电平改成高电平。呵呵
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-4 18:05 , Processed in 0.074536 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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