极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16294|回复: 3

【求助】关于循迹小车代码的问题!

[复制链接]
发表于 2017-7-11 16:42:39 | 显示全部楼层 |阅读模式
int EN1=6;//使能引脚
int EN2=5;
int IN1=7;//驱动引脚
int IN2=4;
int IN3=2;
int IN4=3;



void Motor1(int pwm,boolean reverse)//电机1的PWM调速
{
  analogWrite(EN1,pwm);
  if(reverse)
  {
    digitalWrite(IN1,HIGH);
  }
  else
  {
    digitalWrite(IN2,LOW);
  }

}



void Motor2(int pwm,boolean reverse)//电机2的PWM调速
{
  analogWrite(EN2,pwm);
  if(reverse)
  {
    digitalWrite(IN3,HIGH);
  }
  else
  {
    digitalWrite(IN4,LOW);
  }

  
}


void turnleft()//电机左转
{
  Motor1(0,true);
  Motor2(100,true);
}
void turnleft_fast()//电机快速左转弯
{
  Motor1(0,true);
  Motor2(110,true);
}
void turnright()//电机右转
{
  Motor1(100,false);
  Motor2(0,false);
}
void turnright_fast()//电机快速右转
{
  Motor1(110,false);
  Motor2(0,false);
}
void forward()//直行
{
  Motor1(100,false);
  Motor2(100,true);
}
void forward_fast()//快速直行
{
  Motor1(110,false);
  Motor2(110,true);
}
void back()//后退
{
  Motor1(100,true);
  Motor2(100,false);
}
void back_fast()//快速后退
{
  Motor1(110,true);
  Motor2(110,false);
}

void _stop()//停止
{
  Motor1(0,false);
  Motor2(0,false);
}
void setup()//初始化输出引脚
{
  
  int i;
  for(i=2;i<=7;i++)
  pinMode(i,OUTPUT);
  pinMode(8,INPUT);//传感器信号输入引脚
  pinMode(9,INPUT);//引脚
  pinMode(10,INPUT);//引脚
  
}
void loop()
{
  //自主寻迹模式(库函数方法,反应慢)if((digitalRead(8)==1)&&(digitalRead(9)==0)&&(digitalRead(10)==1))
// forward();

  //if((digitalRead(8)==0)&&(digitalRead(9)==1)&&(digitalRead(10)==1))
  //turnleft();
  
  //if((digitalRead(8)==1)&&(digitalRead(9)==1)&&(digitalRead(10)==0))
  //turnright();
  
  //if((digitalRead(8)==1)&&(digitalRead(9)==1)&&(digitalRead(10)==1))
  //_stop();

  switch(PINB&0x07)//自主寻迹模式(寄存器方法,反应快)
  {
       case 0x05:forward();
       delay(10);break;
       case 0x06:turnleft();
       delay(10);break;
       case 0x03:turnright();
       delay(10);break;
       case 0x07:back();
       delay(10);break;
       default:break;
                          
  }
}
回复

使用道具 举报

 楼主| 发表于 2017-7-11 16:44:55 | 显示全部楼层
这是二轮驱动小车的代码,用的L298N驱动模块还有arduino,小车能跑,但是111的时候不后退,也就是红外检测为全白的时候不后退,还是前进,请问各位大神是哪里出来问题。
回复 支持 反对

使用道具 举报

发表于 2017-7-11 19:59:14 | 显示全部楼层
一般是EN引脚用来控制电机使能和失能,IN引脚输出PWM来控制速度和正反转
回复 支持 反对

使用道具 举报

发表于 2017-7-14 15:30:36 | 显示全部楼层
void back()//后退
{
  Motor1(100,true);
  Motor2(100,false);
}
如果Motor1这个函数的第二个参数true表示前进的话,后退应该都是false
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-13 13:56 , Processed in 0.035361 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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