===== 蓝牙小车 ===== 先晒一下我的小车 {{: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