求教:L298n驱动板怎么连接控制器和具有四个电机的小车!...-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7681|回复: 2

求教:L298n驱动板怎么连接控制器和具有四个电机的小车!...

[复制链接]
发表于 2013-11-20 22:28 | 显示全部楼层 |阅读模式
本帖最后由 zxnwpu 于 2013-11-20 22:28 编辑

我买了一块板子是OpenJumper Arduino,连接以后,发现电机不能转,不知道啥问题,驱动板三个跳冒拔下,in1接2,in2接4,in3接7,in4接8,ENA接5,ENB接6。。12v电源我外接了四节1.5V干电池,中间接地,OUT1234接电机,我把小车左侧电机串联接OUT1,2,右侧电机串联接OUT3,4。。。蓝牙模块接板子上的5v,GND,TX,RX。。控制器接驱动板上的5v接口,地与12v的共用。。。,不知道哪里有什么问题,求教 151747hlqjt2hjjqj2mtmb.png file:///c:/users/admin/appdata/roaming/360se6/User Data/Temp/forum.php?mod=image&aid=3182&size=300x300&key=73c4b0462f52b355&nocache=yes&type=fixnone T2swTZXmtXXXXXXXXX_!!835985836.jpg 如下连接代码int PWMA =5; //连接小车右侧电机A的PWM控制端口到数字接口5
int IN1 =2; //连接小车右侧电机A的转向控制端口到数字接口4
int IN2=4;
int PWMB =6; //连接小车左侧电机B的PWM控制端口到数字接口6
int IN3 =7;  //连接小车左侧电机B的转向控制端口到数字接口7
int IN4=8;
int PWMR=150;//设置电机初始PWM功率值
int PWML=PWMR;
int flag;   //暂存变量,用于Arduino接受Andriod手机的控制字符

//初始化
void setup()
{
  Serial.begin(9600);    // 启动串口通信,波特率9600b/s
  pinMode(IN1, OUTPUT);   //直流电机驱动板的控制端口设置为输出模式
  pinMode(IN2,OUTPUT);
  pinMode(PWMA,OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4,OUTPUT);
  pinMode(PWMB, OUTPUT);
}
//对直流电机驱动板的使能端口和转向端口进行设置,以使小车
//执行前进、后退、左转、右转、停止和速度切换动作。
void advance()//小车前进
{  
     digitalWrite(IN1,HIGH);
     digitalWrite(IN2,LOW);
     analogWrite(PWMA,PWMR);
     digitalWrite(IN3,HIGH);
     digitalWrite(IN4,LOW);
     analogWrite(PWMB,PWML);
}
void back()//小车后退
{     
     digitalWrite(IN1,LOW);
     digitalWrite(IN2,HIGH);
     analogWrite(PWMA,PWMR);
     digitalWrite(IN3,LOW);
     digitalWrite(IN4,HIGH);
     analogWrite(PWMB,PWML);
}
void left()//小车左转
{
     digitalWrite(IN1,HIGH);
     digitalWrite(IN2,LOW);
     analogWrite(PWMA,90);
     digitalWrite(IN3,LOW);
     digitalWrite(IN4,HIGH);
     analogWrite(PWMB,90);
}
void right()//小车右转
{
     digitalWrite(IN1,LOW);
     digitalWrite(IN2,HIGH);
     analogWrite(PWMA,90);
     digitalWrite(IN3,HIGH);
     digitalWrite(IN4,LOW);
     analogWrite(PWMB,90);
}
void Stop()//小车停止
{
     digitalWrite(PWMA, LOW); //右电机停
     digitalWrite(PWMB, LOW); //左电机停
}   
//主程序
void loop()
{
  //如果Arduino控制器读缓冲区中存在Andriod手机下达的字符命令
  if (Serial.available()>0)
  {      flag = Serial.read(); //读出Arduino控制器读缓冲区的字节
      delay(5);     
      if(flag =='a')      //如果读出的字节为“前进”标志字符'a'
      {            
         Stop();           //小车先暂停
         delay(10);
         PWML=PWMR;
         advance();      //小车再前进  
       }
       else if( flag =='b') //如果读出的字节为“后退”标志字符'b'   
       {                 
         Stop();        //小车先暂停
         delay(10);
         PWML=PWMR;
         back();           //小车再后退      
       }                    
      else if(flag=='m')
      {
        PWMR=200;    //小车行驶速度切换为高速状态
        PWML=PWMR;
      }
      else if(flag=='n')
      {
        PWMR=150;   //小车行驶速度切换为低速状态
        PWML=PWMR;
      }
      else if(flag=='c') //如果读出的字节为“左转”标志字符'c'
      {
        left();       //小车左转
      }
      else if(flag=='d') //如果读出的字节为“右转”标志字符'd'
      {
        right();       //小车右转   
      }
      else if(flag=='s') //如果读出的字节为“停止”标志字符's'
      {
        Stop();        //小车停止  
      }
  }  





发表于 2013-11-29 11:08 | 显示全部楼层
12v电源我外接了四节1.5V干电池
明显电压不够
 楼主| 发表于 2013-11-29 19:41 | 显示全部楼层
12V是指6到12v,电压低点只是跑的不快,功能还是没有问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-1 19:47 , Processed in 0.082041 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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