基于Arduino的智能小车-代码部分

紧接上篇Arduino智能小车,这篇主要是智能小车的代码部分

首先

定义相关模块引脚:(注:这里只是粘贴了部分代码)

int sp1=8;//定义舵机接口数字接口8
int pulsewidth;//定义脉宽变量
int v;
int val1;
int myangle1;
const int IN_A1=4;
const int IN_A2=5;
const int IN_B1=6;

初始化

  void setup()

{pinMode(sp1,OUTPUT);//设定舵机接口为输出接口
  pinMode(IN_A1,OUTPUT);
  pinMode(IN_A2,OUTPUT);
  pinMode(IN_B1,OUTPUT);
  pinMode(IN_B2,OUTPUT);
  pinMode(A0, OUTPUT);}

小车前进

 void go(){   //向前
  analogWrite(9,105);
  digitalWrite(IN_A1,1);
  digitalWrite(IN_A2,0);
  analogWrite(10,121);
  digitalWrite(IN_B1,1);
  digitalWrite(IN_B2,0);  
}

小车向右

void right(){   //向右
  analogWrite(9,85);
  digitalWrite(IN_A1,1);
  digitalWrite(IN_A2,0);
  analogWrite(10,0);
  digitalWrite(IN_B1,0);
  digitalWrite(IN_B2,0);  
}

超声波测距函数

void ceju(){//超声波测距
  digitalWrite(A0, LOW);
  delayMicroseconds(2);
  digitalWrite(A0, HIGH);
  delayMicroseconds(10);// 维持10毫秒高电平用来产生一个脉冲
  digitalWrite(A0, LOW);
  dist = pulseIn(A1, HIGH)/58.00;// 读取脉冲的宽度并换算成距离
}

循迹函数部分程序

void xunji(){//循迹
  int num2=digitalRead(sensor2);
  int num3=digitalRead(sensor3);
  if(num3==1&&num2==0){
    left();
  }
  else if(num2==1&&num3==0){
    right();
  }
}

通过手机APP连接蓝牙模块,发送不同指令,控制小车以不同模式工作

蓝牙模块部分程序如下

 case 'Q': while(Serial.available() == 0){//前
//                      Serial.println("go");
                      go();
          }break;
          case 'H': while(Serial.available() == 0){//后
//                      Serial.println("back");
                      back();

通过发送Q,控制前进,发送H,控制后退

完整项目代码,我已放在百度网盘里面了,想参考的可以自己下载

链接:https://pan.baidu.com/s/1kRQoXmbPbzfR1QZbZYcDvA 
提取码:1234

你可能感兴趣的:(Arduino基础项目,单片机,c语言,嵌入式硬件)