紧接上篇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