1、概述
对于模块不了解的,可以先看一下我们的模块教程[传送门],了解掌握模块使用方法后,再尝试本小实验。因为综合实验一般涉及多个模块,我们仅对全部使用我司产品的客户做技术支持,若只是部分使用我司产品的,我们只对我司产品部分是否有故障进行排查。
2、所需材料
1、UNO主控板:官方板 或者 国产板
2、辅助配件:杜邦线、智能小车底盘套件
3、传感器和模块:L298N电机驱动板、蓝牙模块
PS:L298N外接供电最好是9-12V以内,电压太高容易烧毁板子!!!普通的五号电池,1.2V-1.5V左右,多节也很难带起来。建议还是购买店内14500锂电池。
3、制作步骤
第一步:将智能小车底盘套装按照说明书,拼装起来。
智能小车底盘套装里包含了,图中所示物品并附有说明书,按照说明书拼装即可。拼装完成后,如图所示:
第二步:将UNO主控板和L298N固定在小车底盘上。
这是我的固定方法,仅供参考。(如果L298N无法固定住,可以固定在反面。)
第三步:连接UNO+L298N+电机+蓝牙模块,上传程序并进行调试。
上传程序:
#include <SoftwareSerial.h>
#define IN1 10
#define IN2 11
#define IN3 12
#define IN4 13 //电机驱动脚
#define ENA 5
#define ENB 6 //PWM调速脚������
int Direction;
SoftwareSerial BT(8, 9); // 软串口,蓝牙接口
void MotorA(char Action, int speed1){
if (Action == 001){
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, speed1);
}
if (Action == 002)
{
digitalWrite(IN1,LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENB, speed1);
}
if (Action == 003)
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
} //001正转,002反转,003停止,下同
}
void MotorB(char Action, int speed2){
if (Action == 001){
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENB, speed2);
}
if (Action == 002)
{
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENB, speed2);
}
if (Action == 003)
{
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
}
void setup() {
Serial.begin(9600);
BT.begin(9600);
for (int i = 10; i <= 13; i++){
pinMode(i, OUTPUT);
}
}
void loop()
{
Direction = BT.read();
switch (Direction) {
case 'A':
MotorA(001,225);
MotorB(001,225);
break;
case 'C':
MotorA(001,175);
MotorB(002,175);
break;
case 'E':
MotorA(002,225);
MotorB(002,225);
break;
case 'G':
MotorA(002,175);
MotorB(001,175);
break;
case 'Z':
MotorA(003,0);
MotorB(003,0);
break;
}
}
#define IN1 10
#define IN2 11
#define IN3 12
#define IN4 13 //电机驱动脚
#define ENA 5
#define ENB 6 //PWM调速脚������
int Direction;
SoftwareSerial BT(8, 9); // 软串口,蓝牙接口
void MotorA(char Action, int speed1){
if (Action == 001){
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, speed1);
}
if (Action == 002)
{
digitalWrite(IN1,LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENB, speed1);
}
if (Action == 003)
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
} //001正转,002反转,003停止,下同
}
void MotorB(char Action, int speed2){
if (Action == 001){
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENB, speed2);
}
if (Action == 002)
{
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENB, speed2);
}
if (Action == 003)
{
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
}
void setup() {
Serial.begin(9600);
BT.begin(9600);
for (int i = 10; i <= 13; i++){
pinMode(i, OUTPUT);
}
}
void loop()
{
Direction = BT.read();
switch (Direction) {
case 'A':
MotorA(001,225);
MotorB(001,225);
break;
case 'C':
MotorA(001,175);
MotorB(002,175);
break;
case 'E':
MotorA(002,225);
MotorB(002,225);
break;
case 'G':
MotorA(002,175);
MotorB(001,175);
break;
case 'Z':
MotorA(003,0);
MotorB(003,0);
break;
}
}
第四步:在安卓手机上下载一个蓝牙APP软件(带键盘控制),进行设置。
我用的蓝牙APP软件:蓝牙SPP(串口)通信助手,可以在各大安卓市场里下载。下载
1、打开手机上已经 下载好的蓝牙SPP串口通信工具。
2、点击“连接”—–选择你小车上的蓝牙设备进行连接—–连接成功后点击“终端”随后点击旁边的“键盘”按钮。进行如下设置:
第五步:试验你的蓝牙小车
手机控制你的蓝牙小车,按前进,小车前进(轮子前转);按后退,小车后退(轮子后转);按左转小车左转;按右转小车右转;
特别声明:如果遇到无法走直线,是小车电机转速存在着差异。您可以适当的调试程序和小车轮子来减少这类情况。
注意事项:
供电电源不宜过大,不然会烧掉板子上的整流二极管。
请先
!