小猪会轮滑 发表于 2012-9-28 20:54:52

l298n电机驱动的问题

本帖最后由 小猪会轮滑 于 2012-10-17 14:25 编辑

我按照卖家资料:)说是连接 in1 in2 in3 in4这四个角 驱动俩电机。
   
但是   我自己用   ENA IN1接电机1      ENB IN4 接电机2       两个电机才能都 转    什么原因?:(


in3in4都干什么去了呢。:'(   两个引脚要怎么接两个电机?:dizzy:

maojidan 发表于 2012-9-28 21:45:26

是不是程序问题?

小猪会轮滑 发表于 2012-9-28 22:10:26

maojidan 发表于 2012-9-28 21:45 static/image/common/back.gif
是不是程序问题?

是的,不知道怎么写程序。:Q:Q

小猪会轮滑 发表于 2012-9-28 22:17:35

我把inain1 in2 in3 in4 inb分别连接 2,3,4,5,6,7脚   
这样写   



          void motor(char pin,char pwmpin,char state,int val)
{   
pinMode(pin, OUTPUT);   
if(state==8)                           //当state为1时正转
{   
    analogWrite(pwmpin,val);   digitalWrite(pin,1);
    }
    else if(state==9)
    {
      analogWrite(pwmpin,val);
      digitalWrite(pin,0);
      }
      else if(state==0)                     //当state为0时停止
      {
         analogWrite(pwmpin,0);   digitalWrite(pin,0);
       }
   }
   void setup()
   {}
   void loop()
   {
       motor(2,3,8,180);      //电机1以180的速度正转,45口控制电机1   
       motor(6,7,8,180);
       delay(1000);   
       motor(2,3,9,180);      //电机1以180的速度反转
       motor(6,7,9,180);      //电机2以180的速度反转   
       delay(1000);
       }



       为什么是    2,3,   和6,7 脚啊      :Q:Q

坤遠遊森林 发表于 2012-9-28 23:31:29

没看懂

IN1~IN4是负责直流电流输入
ENAENB是负责功能判断~简单理解为改变正反,。同时也可以介入PMW

小猪会轮滑 发表于 2012-9-29 12:39:52

恩我再看看

绿林网页 发表于 2012-10-5 20:38:53

本帖最后由 绿林网页 于 2012-10-5 20:41 编辑

http://img04.taobaocdn.com/imgextra/i4/31019850/T2.WpPXbdbXXXXXXXX_!!31019850.jpg 如图:
模块接线方法:IN1-IN4接单片机,ENA,ENB可以用跳线帽选择直接接高电平或者用单片机控制,IN1-IN4提供4个跳线帽选择是否接上10K的上拉电阻,OUT1-OUT2接直流电机1,OUT3-OUT4接电机2,VCC,GND分别接电池盒正负极,当VCC电压大于6V时,+5为输出,可以方便给5V的单片机供电,当VCC电压小于6V时,需拔掉5V_EN跳线帽,外部给 +5提供一个5V电压保证298N芯片的正常工作。

mio8390 发表于 2012-11-15 23:30:12

坤遠遊森林 发表于 2012-9-28 23:31 static/image/common/back.gif
没看懂

IN1~IN4是负责直流电流输入


據我知Enaenb1和2都是用來控制馬達的速度,而IN1~IN4用接馬達,IN1和2接A馬達,IN3和4接B馬達,下面的例子是轉載于這個網址 http://www.hkepc.com/forum/viewthread.php?tid=1320090
// motor A
int In1 = 13;
int In2 = 12;
int EnA = 10;

// motor B
int In3 = 11;
int In4 = 8;
int EnB = 9;

unsigned long time;
int startspeed;
int topspeed;
int dir;
int value;

void setup() {
pinMode(In1, OUTPUT);
pinMode(In2, OUTPUT);
pinMode(In3, OUTPUT);
pinMode(In4, OUTPUT);

// set plus direction (馬達的轉向用High和low有決定,如果倒轉位置,馬達就會反方向轉動)
digitalWrite(In1, HIGH);
digitalWrite(In2, LOW);
digitalWrite(In3, HIGH);
digitalWrite(In4, LOW);
      
}

void loop() {
// set start speed(控制馬達的速度)

startspeed = 15;
topspeed = 255 + startspeed;
         // set 4 duty cycles for testing
      for(value = startspeed ; value <= 255; value+=120)
      {
      
      analogWrite(EnA, value);
      analogWrite(EnB, topspeed - value);
      // delay to see the result or waiting the fan to stop completely
      delay(12000);
      }
}

luojie_1986 发表于 2013-5-5 15:29:31

ENA,ENB可以直接接高电平,IN1-IN4接入四路PWM,可以直接控制两个电机正转、反转、停止、调速

无极限 发表于 2014-4-18 15:31:40

int ln1=34;
int ln2=35;
int ln3=36;
int ln4=37;
void setup()
{
   pinMode(ln1,OUTPUT);
   pinMode(ln2,OUTPUT);
   pinMode(ln3,OUTPUT);
   pinMode(ln4,OUTPUT);
   void ZhiQian();
   void ZhiHou();
   void Zuoqian();
   void Youqian();
   void Zuotui();
   void Youtui();
   void Stop();
}
void ZhiQian()
{
   digitalWrite(ln2,HIGH);
   digitalWrite(ln3,HIGH);
   digitalWrite(ln1,LOW);
   digitalWrite(ln4,LOW);
    delay(2000);
}
void ZhiHou()
{
   digitalWrite(ln1,HIGH);
   digitalWrite(ln4,HIGH);
   digitalWrite(ln2,LOW);
   digitalWrite(ln3,LOW);
   delay(2000);
}
void Zuoqian()
{
   digitalWrite(ln2,HIGH);
   digitalWrite(ln1,LOW);
   digitalWrite(ln3,LOW);
   digitalWrite(ln4,LOW);
   delay(2000);
}
void Youqian()
{
   digitalWrite(ln3,HIGH);
   digitalWrite(ln1,LOW);
   digitalWrite(ln2,LOW);
   digitalWrite(ln4,LOW);
   delay(2000);
}
void Zuotui()
{
digitalWrite(ln2,HIGH);
digitalWrite(ln4,HIGH);
digitalWrite(ln1,HIGH);
digitalWrite(ln4,HIGH);
    delay(2000);
}
void Youtui()
{
   digitalWrite(ln1,HIGH);
   digitalWrite(ln3,HIGH);
   digitalWrite(ln2,LOW);
   digitalWrite(ln4,LOW);
   delay(2000);
}
void Stop()
{
   digitalWrite(ln1,LOW);
   digitalWrite(ln2,LOW);
   digitalWrite(ln3,LOW);
   digitalWrite(ln4,LOW);
   delay(2000);
}
   void loop()
{
   void ZhiQian();
   void Zuoqian();
    void Youqian();
    void ZhiQian();
    void Stop();
   void ZhiHou();
   void Zuotui();
   void Youtui();
}

无极限 发表于 2014-4-18 15:32:11

不懂5V那个怎么连的?能不能讲解下,谢谢啦
页: [1]
查看完整版本: l298n电机驱动的问题