===== 蓝牙小车 =====
先晒一下我的小车
{{:ideas:6c8d146d55fbb2fb267202984a4a20a44723dc46.jpg?200|}}
{{:ideas:080e7cfbb2fb43160b4620f025a4462308f7d346.jpg?200|}}
{{:ideas:60989bfb43166d22282e4f1e432309f79152d246.jpg?200|}}
{{:ideas:4.jpg?200|}}
昨天搞了一天的蓝牙小车终于好了,现在在这里分享一下经验,和大家交流相互学习一下,希望大神多多指教哈 。首先呢,先来说一下,制作所需要的材料。硬件方面:L298驱动模块、蓝牙模块(我用的是HC-05)、小车底盘、当然了还少不了Arduino UNO、软件方面: 蓝牙串口助手(app store里面就可以下载,如果实在找不到,可以找我), 下面上图片
{{:ideas:5.jpg?200|}}
{{:ideas:6.jpg?200|}}
{{:ideas:7.jpg?200|}}
原谅我盗了几张图
对于L298驱动模块的话,相信大家都不会陌生,才子精品教程里面讲的很详细,这里我就不多说了,
那就来说说蓝牙模块吧啊,在蓝牙模块使用之前一定要先设置好,否则根本连不上手机
设置的话有多种方法,我是通过Arduino设置的,将代码下载到Arduino里,然后将蓝牙模块接到Arduino上,然后按一下Arduino上的复位按钮(这里需要注意的是先下载程序,然后接蓝牙,顺序不能搞错,否则的话会下载错误)
代码如下:
#define AT 2
#define LED 13
void setup()
{
pinMode(LED,OUTPUT);
pinMode(AT,OUTPUT);
digitalWrite(AT,HIGH);
Serial.begin(38400);//这里应该和你的模块通信波特率一致
delay(100);
Serial.println("AT");
delay(100);
Serial.println("AT+NAME=OPENJUMPER-Bluetooth");//命名模块名
delay(100);
Serial.println("AT+ROLE=0");//设置主从模式:0从机,1主机
delay(100);
Serial.println("AT+PSWD=1234");//设置配对密码,如1234
delay(100);
Serial.println("AT+UART=9600,0,0");//设置波特率9600,停止位1,校验位无
delay(100);
Serial.println("AT+RMAAD");//清空配对列表
}
void loop()
{
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
这里注意下蓝牙模块的接线:
蓝牙模块:RX——TX:Arduino
TX——RX
state——2
GND——GND
VCC——VCC
当你看到Arduino 上的LED闪烁的时候说明蓝牙模块已经设置好了
接下来就是接线的问题了,闲话少说上图
{{:ideas:8.jpg?200|}}
{{:ideas:9.jpg?200|}}
{{:ideas:10.jpg?200|}}
{{:ideas:11.jpg?200|}}
{{:ideas:12.jpg?200|}}
{{:ideas:13.jpg?200|}}
{{:ideas:14.jpg?200|}}
几个主要的问题已经解决差不多了
刚才的图片看的好像效果不是太好,再来二张
{{:ideas:16.jpg?200|}}
{{:ideas:15.jpg?200|}}
最后上代码,我用的是4,5,6,7, 四个I/O口,如果用其他的,只需要将代码稍作改动即可。
各个数字作用如下: 1——左转,2——前进,3——右转,4——左转圈,5——急停,6——右转圈,7——向后左,8——向后,9——向后右。共九个指令。
代码如下:
#define IN1 4
#define IN2 5
#define IN3 6
#define IN4 7
void forward();
void back();
void turnLeft();
void turnRight();
void turnbackLeft();
void turnbackRight();
void turnLeftOrigin();
void turnRightOrigin();
void _stop();
void setup()
{ pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
Serial.begin(9600);
}
int i;
void loop()
{ if(Serial.available())
{ i= Serial.read();
switch(i)
{ case'1':{ turnLeft();break;}
case'2':{ forward();break;}
case'3':{turnRight();break;}
case'4':{turnLeftOrigin();break;}
case'5':{_stop();break;}
case'6':{turnRightOrigin();break;}
case'7':{turnbackLeft();break;}
case'8':{back();break;}
case'9':{turnbackRight();break;}
}
}
}
void forward()
{ digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void back()
{ digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void turnLeft()
{ digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void turnbackLeft()
{ digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void turnRight()
{ digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
void turnbackRight()
{ digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
void turnLeftOrigin()
{ digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void turnRightOrigin()
{ digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void _stop()
{ digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
接下来打开手机上的蓝牙串口助手软件,连接HC-05,密码为1234,
连接成功后发送指令就可以了
补一下电源的接线图
{{:ideas:19.jpg?200|}}
原文链接:http://tieba.baidu.com/p/3817870670?see_lz=1