【Arduino】蓝牙遥控小车设计

文章目录

  • 前言
  • 一、小车的控制
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结



提示:以下是本篇文章正文内容,下面案例可供参考

一、小车的控制

二、使用步骤

1.引入库

代码如下(示例):

#include 

2.读入数据

代码如下(示例):

#include 

//这是软串口通讯arduino和esp8266-Mode连接的库函数

SoftwareSerial youSerial(50, 51); //RX=50,TX=51 需分配Mega 和 Mega 2560 上并非所有引脚都支持更改中断,因此只有以下引脚可用于 RX:10、11、12、13、14、15、50、51、52、53、A8 (62)、A9 (63)、A10 (64)、A11 (65)、A12 (66)、A13 (67)、A14 (68)、A15 (69)。

int Left_motor_go=8;     //左电机前进(IN1)

int Left_motor_back=9;     //左电机后退(IN2)

int Right_motor_go=10;    // 右电机前进(IN3)

int Right_motor_back=11;    // 右电机后退(IN4)

char getstr;

  int moshi = 0;

void setup()

{

  pinMode(Left_motor_go,OUTPUT); // PIN 8 8脚无PWM功能

  pinMode(Left_motor_back,OUTPUT); // PIN 9 (PWM)

  pinMode(Right_motor_go,OUTPUT);// PIN 10 (PWM) 

  pinMode(Right_motor_back,OUTPUT);// PIN 11 (PWM)

  Serial.begin(9600);

  youSerial.begin(9600);

}

void run()     // 前进

{

  digitalWrite(Right_motor_go,HIGH);  // 右电机前进

  digitalWrite(Right_motor_back,LOW);     

  digitalWrite(Left_motor_go,HIGH);  // 左电机前进

  digitalWrite(Left_motor_back,LOW);

  analogWrite(Right_motor_go,200);//PWM比例0~255调速,左右轮差异略增减

  analogWrite(Right_motor_back,0); 

  analogWrite(Left_motor_go,200);//PWM比例0~255调速,左右轮差异略增减

  analogWrite(Left_motor_back,0);

}

void back()     // 后退

{

  digitalWrite(Right_motor_go,LOW);  // 右电机后退

  digitalWrite(Right_motor_back,HIGH);     

  digitalWrite(Left_motor_go,LOW);  // 左电机后退

  digitalWrite(Left_motor_back,HIGH);

  analogWrite(Right_motor_go,0);//PWM比例0~255调速,左右轮差异略增减

  analogWrite(Right_motor_back,200); 

  analogWrite(Left_motor_go,0);//PWM比例0~255调速,左右轮差异略增减

  analogWrite(Left_motor_back,200);

}

void left()     // 左转

{

  digitalWrite(Right_motor_go,HIGH);  // 右电机前进

  digitalWrite(Right_motor_back,LOW);     

  digitalWrite(Left_motor_go,LOW);  // 左电机后退

  digitalWrite(Left_motor_back,HIGH);

  analogWrite(Right_motor_go,200);//PWM比例0~255调速,左右轮差异略增减

  analogWrite(Right_motor_back,0); 

  analogWrite(Left_motor_go,0);//PWM比例0~255调速,左右轮差异略增减

  analogWrite(Left_motor_back,100);//内圆,幅度小

}

void right()     // 右转

{

  digitalWrite(Right_motor_go,LOW);  // 右电机后退

  digitalWrite(Right_motor_back,HIGH);     

  digitalWrite(Left_motor_go,HIGH);  // 左电机前进

  digitalWrite(Left_motor_back,LOW);

  analogWrite(Right_motor_go,0);//PWM比例0~255调速,左右轮差异略增减

  analogWrite(Right_motor_back,100); 

  analogWrite(Left_motor_go,200);//PWM比例0~255调速,左右轮差异略增减

  analogWrite(Left_motor_back,0);

}

void stop()     // 停止

{

  digitalWrite(Right_motor_go,LOW);  // 右电机停止

  digitalWrite(Right_motor_back,LOW);    

  analogWrite(Left_motor_go,0);//PWM比例0~255调速,左右轮差异略增减

  analogWrite(Left_motor_back,0); 

  digitalWrite(Left_motor_go,LOW);  // 左电机停止

  digitalWrite(Left_motor_back,LOW);

  analogWrite(Left_motor_go,0);//PWM比例0~255调速,左右轮差异略增减

  analogWrite(Left_motor_back,0); 

  analogWrite(Left_motor_go,0);//PWM比例0~255调速,左右轮差异略增减

  analogWrite(Left_motor_back,0);

}

void moshiqiehuang()

{

  }

void zhongzhi()

{

  }

void loop()

{

  if(youSerial.available() > 0)

  {

  getstr=youSerial.read();

  }



  switch(getstr){

   case 'w': 

     Serial.println("run");

     run();break;

   case 'a': 

     Serial.println("left");

     left();break; 

   case 'd': 

     Serial.println("right");

     right();break;

   case 's': 

     Serial.println("back");

     back();break;  

   case 't': 

     Serial.println("stop");

     stop();break; 

   case 'q':

     Serial.println("moshiqiehuang");

//     moshiqiehuang();

break;

   case 'z':

     Serial.println("zhongzhi");

     zhongzhi();break;

  }

}

总结


例如:以上就是今天的内容,本文仅仅简单介绍了Arduino小车的使用。有空再细写,希望分享对你有用。

你可能感兴趣的:(arduino,开发语言,c语言)