l298n电机驱动的问题
本帖最后由 小猪会轮滑 于 2012-10-17 14:25 编辑我按照卖家资料:)说是连接 in1 in2 in3 in4这四个角 驱动俩电机。
但是 我自己用 ENA IN1接电机1 ENB IN4 接电机2 两个电机才能都 转 什么原因?:(
in3in4都干什么去了呢。:'( 两个引脚要怎么接两个电机?:dizzy: 是不是程序问题? maojidan 发表于 2012-9-28 21:45 static/image/common/back.gif
是不是程序问题?
是的,不知道怎么写程序。:Q:Q 我把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 没看懂
IN1~IN4是负责直流电流输入
ENAENB是负责功能判断~简单理解为改变正反,。同时也可以介入PMW 恩我再看看 本帖最后由 绿林网页 于 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芯片的正常工作。 坤遠遊森林 发表于 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);
}
} ENA,ENB可以直接接高电平,IN1-IN4接入四路PWM,可以直接控制两个电机正转、反转、停止、调速 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();
} 不懂5V那个怎么连的?能不能讲解下,谢谢啦
页:
[1]