zz19111584 发表于 2015-8-17 11:41:37

L298n如何使用驱动两个直流电机

本帖最后由 zz19111584 于 2015-8-17 17:39 编辑


如图,ena enb 是什么意思?
in1 in2 in3 in4 应该是4个信号输入
看资料上写的还有板子供电 应该怎么接
还有如果外界电源的时候怎么接线,请大神指点

zhb1190 发表于 2015-8-17 12:36:54

ena,enb,in1,in2,in3,in4,out1,out2,out3,out4这几个看l298n的手册就知道了。ena和enb分别是两个直流电机信号的使能开关。

+12V是驱动电机的电源,+5v是把12v降压成5v做为输出供单片机及外围电路用。

asdfcgdc 发表于 2015-8-17 14:13:25

/*
EXcode 8-1
*/
// motor A
int dir1PinA = 13;
int dir2PinA = 12;
int speedPinA = 10;
// motor B

int dir1PinB = 9;
int dir2PinB = 8;
int speedPinB = 6;

int speed;
int dir;

void setup()
{
pinMode(dir1PinA,OUTPUT);
pinMode(dir2PinA,OUTPUT);
pinMode(speedPinA,OUTPUT);
   pinMode(dir1PinB,OUTPUT);
pinMode(dir2PinB,OUTPUT);
pinMode(speedPinB,OUTPUT);


speed = 0;
dir = 1;
}

void MOTORDRIVE(int speed,int dir)
{
   analogWrite(speedPinA,speed);
   if (dir == 1)
   analogWrite(speedPinB,speed);
   if (dir == 1)
   
      {
      digitalWrite(dir1PinA,LOW);
      digitalWrite(dir2PinA,HIGH);
         digitalWrite(dir1PinB,LOW);
      digitalWrite(dir2PinB,HIGH);
      }
   else
      {
      digitalWrite(dir2PinA,HIGH);
      digitalWrite(dir2PinA,LOW);
         digitalWrite(dir2PinB,HIGH);
      digitalWrite(dir2PinB,LOW);
      
      }
}
void loop()
{
MOTORDRIVE(speed,dir);
speed += 20;
if (speed>225)
   speed=0;

if (1 == dir)
   dir = 0;
else
   dir = 1;
delay(1000);
}

asdfcgdc 发表于 2015-8-17 14:14:57

上面的代码和接线图应该能帮你

zz19111584 发表于 2015-8-17 17:38:38

本帖最后由 zz19111584 于 2015-8-17 17:41 编辑

asdfcgdc 发表于 2015-8-17 14:14 static/image/common/back.gif
上面的代码和接线图应该能帮你

现在点击能转了,正反都可以,但是怎么调速呢,看了你的代码 610 是调速,我这个板子不ena 是两根 短接上去了 A路就能用了,用10接ena A路点击就不转了   ,我右穿了个图,就是绿圈那个

zz19111584 发表于 2015-8-17 17:39:59

%5Battachimg%5D26763

asdfcgdc 发表于 2015-8-19 10:01:19

zz19111584 发表于 2015-8-17 17:38 static/image/common/back.gif
现在点击能转了,正反都可以,但是怎么调速呢,看了你的代码 610 是调速,我这个板子不ena 是两根 短 ...

图片看不到,调节延时有用么
页: [1]
查看完整版本: L298n如何使用驱动两个直流电机