找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 771|回复: 0
收起左侧

初学Arduino单片机的蓝牙小车,倒退时小车异常

[复制链接]
ID:564485 发表于 2019-11-7 21:40 | 显示全部楼层 |阅读模式
代码如下:#include <SoftwareSerial.h>

SoftwareSerial  mySerial(8,9);  //定义软串口对象

void setup() {
  // put your setup code here, to run once:
  mySerial.begin(115200);  //蓝牙接收串口
  int_car_pin();
  set_speed(140);
}
//前进--0xa
//后退--0xb
//前进--0xc
//后退--0xd
//停止--0x10
void loop() {
  // put your main code here, to run repeatedly:
  int ch = 0;

  mySerial.listen(); //表示监听我们的软串口数据

  while(mySerial.available() > 0)
  {
         Serial.println("Recv data : ");
        ch = mySerial.read(); //软串口读出,写到arduino开发板上
        switch(ch)
        {
            case 0xa:  
              car_forward();
              break;
            case 0xb:
              car_back();
               break;
            case 0xc:
              car_left();
              break;
            case 0xd:
              car_right();
              break;
            case 0x10:
              car_stop();
              break;
        }
  }
  return ;
}
--------------------------------------------------------------------------

//对应的四个电机驱动
int  IN1 = 13;  //右边轮子
int  IN2 = 12;  //右边轮子
int  IN3 = 11;  //左边轮子
int  IN4 = 10;  //左边轮子

int pwmleft  = 5;
int pwmright = 6;

void int_car_pin() {
  // put your setup code here, to run once:
  pinMode(IN1,OUTPUT);
  pinMode(IN2,OUTPUT);
  pinMode(IN3,OUTPUT);
  pinMode(IN4,OUTPUT);
}

void leftMotorForward() //左边正转
{
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);
}

void leftMotorBack() //左边反转
{
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);
}

void rightMotorForward() //右边正转
{//1
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
}

void rightMotorBack() //右边发转
{//2
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
}

void car_forward()
{
     leftMotorForward();
     rightMotorForward();
     delay(500);
}


void car_back()
{
      leftMotorBack();
      rightMotorBack();
      delay(500);
}

void car_left()
{
      leftMotorBack();
      rightMotorForward();
      delay(500);
      car_forward();
      delay(500);
}

void car_right()
{
      leftMotorForward();
      rightMotorBack();
      delay(500);
      car_forward();
      delay(500);
}

void car_stop()
{
     digitalWrite(IN1, LOW);
     digitalWrite(IN2, LOW);
     digitalWrite(IN3, LOW);
     digitalWrite(IN4, LOW);
     delay(500);
}
void set_speed(int speed_value)
{
     analogWrite(pwmleft, speed_value);
     analogWrite(pwmright, speed_value);
}

运行后,小车前行,哎左转,右转正常。
倒退时小车异常

求大神解决




回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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