一、实验准备
arduino开发板
电机驱动模块
电机和车轮子
电池和电池盒
杜邦线若干
车架(可自己设计打印)
蓝牙模块
蓝牙调试器(一个蓝牙调试APP,可在商店应用下载)
面包板
二、器材组装
如下图:
正面:
左面:
右面:
原理图(连线图):
略(懒得画了,不懂的可以私信我😃)
三、原理分析
使用手机下载“蓝牙调试器”,并用蓝牙调试器连接蓝牙模块,使用蓝牙调试器向蓝牙模块发送消息,arduino通过接收到的消息,去控制小车的运动,只要改变左右相应电机的转速,就可以达到控制小车运动的效果。
四、源码
char serialData;
#define LeftMotor1 4 //Arduino的4号引脚
#define LeftMotor2 5 //Arduino的5号引脚
#define RightMotor1 6 //Arduino的6号引脚
#define RightMotor2 7 //Arduino的7号引脚
//初始化函数
void setup() {
Serial.begin(9600);//设置波特率为9600
//电机引脚初始化,设置为输出模式
pinMode(LeftMotor1, OUTPUT);
pinMode(LeftMotor2, OUTPUT);
pinMode(RightMotor1, OUTPUT);
pinMode(RightMotor2, OUTPUT);
}
//前进函数
void moveForward() {
digitalWrite(LeftMotor1, HIGH);
digitalWrite(LeftMotor2, LOW);
digitalWrite(RightMotor1, LOW);
digitalWrite(RightMotor2, HIGH);
}
//后退函数
void moveBackward() {
digitalWrite(LeftMotor1, LOW);
digitalWrite(LeftMotor2, HIGH);
digitalWrite(RightMotor1, HIGH);
digitalWrite(RightMotor2, LOW);
}
//左旋转函数
void turnLeft() {
digitalWrite(LeftMotor1, LOW);
digitalWrite(LeftMotor2, LOW);
digitalWrite(RightMotor1, LOW);
digitalWrite(RightMotor2, HIGH);
}
//右旋转函数
void turnRight() {
digitalWrite(LeftMotor1, HIGH);
digitalWrite(LeftMotor2, LOW);
digitalWrite(RightMotor1, LOW);
digitalWrite(RightMotor2, LOW);
}
//停止函数
void turnStop() {
digitalWrite(LeftMotor1, LOW);
digitalWrite(LeftMotor2, LOW);
digitalWrite(RightMotor1, LOW);
digitalWrite(RightMotor2, LOW);
}
void loop(){
//如果接收到来自蓝牙的消息
if( Serial.available()){
serialData = Serial.read();//读取蓝牙的消息
Serial.println(serialData);//将消息打印到串口监视器,方便调试代码
//根据接收到的指令控制小车运动
if (serialData == 'G') {
moveForward();
} else if (serialData == 'K') {
moveBackward();
} else if (serialData == 'H') {
turnLeft();
} else if (serialData == 'J') {
turnRight();
}
else if (serialData == 'I') {
turnStop();
}
}
}