|
首先,需要的哪些工具:
1、 arduino UNO R3 x1
2、 L298N电机驱动模块 x1
3、 HC06 蓝牙模块 x1
4、 小车底盘 x1
5、 12V电源(7~9V)x1
6、 导线 若干
7、 蓝牙遥控app
第二:L298模块介绍
第三:App的下载
http://shouji.baidu.com/software/11629425.html
第四:HC-06模块的介绍:
说一下具体电路连接:
第一步:12V 18650充电电池 接到 L298N 电机驱动模块的 +12V 以及 GND,+5V 电源输出给Arduino UNO R3板子供电。有些人可能说如果电机供电以及板子供电是同一个电源,可能电机转动会影响到板子供电。目前我测试是没有发现问题。可能原因是本来板子耗电量也不是很大,并且12V电池本身电量还是足够,不会出现供电不足问题。
第二步:左电机连接到OUT3和OUT4,右电机连接到OUT1和OUT2
第三步:就是L298N的IN控制引脚和Arduino板子的连接。IN1连接到引脚6,IN2连接到引脚7,IN3连接到引脚4,IN4连接到引脚5.
蓝牙测试代码
功能:蓝牙小车测试按键值程序
- 蓝牙测试代码
- 功能:蓝牙小车测试按键值程序
- void setup() {
- // put your setup code here, to run once:
- Serial.begin(9600);
- }
- void loop() {
- // put your main code here, to run repeatedly:
- if(Serial.available()>0){
- char ch = Serial.read();
- if(ch == '1'){
- //前进
- Serial.println("up");
- }else if(ch == '2'){
- //后退
- Serial.println("back");
- }else if(ch == '3'){
- //左转
- Serial.println("left");
- }else if(ch == '4'){
- //右转
- Serial.println("right");
- }else if(ch=='0'){
- //停车
- Serial.println("stop");
- }else{
- //其他编码
- Serial.println(ch);
- }
- }
- }
- 蓝牙小车代码:
- #define IN1 6 // 7 6 右轮
- #define IN2 7
- #define IN3 4 // 5 4 左轮
- #define IN4 5
- #define LEFT '3' //左转编码
- #define RIGHT '4'//右转编码
- #define GO '1'//前进编码
- #define BACK '2'//后退编码
- #define STOP '0'//停止编码
- void setup() {
- // put your setup code here, to run once:
- Serial.begin(9600);
- pinMode(IN1,OUTPUT);
- pinMode(IN2,OUTPUT);
- pinMode(IN3,OUTPUT);
- pinMode(IN4,OUTPUT);
- initCar();
- }
- void loop() {
- // put your main code here, to run repeatedly:
- if(Serial.available()>0){
- char ch = Serial.read();
- if(ch == GO){
- //前进
- go();
- }else if(ch == BACK){
- //后退
- back();
- }else if(ch == LEFT){
- //左转
- turnLeft();
- }else if(ch == RIGHT){
- //右转
- turnRight();
- }else if(ch=='0'){
- //停车
- stopCar();
- }
- }
- }
- void initCar(){
- //默认全是低电平 停止状态
- digitalWrite(IN1,LOW);
- digitalWrite(IN2,LOW);
- digitalWrite(IN3,LOW);
- digitalWrite(IN4,LOW);
- }
- /**
- * 左转
- */
- void turnLeft(){
- digitalWrite(IN1,HIGH);
- digitalWrite(IN2,LOW); //右轮前进
- digitalWrite(IN3,LOW);
- digitalWrite(IN4,LOW); //左轮不动
- }
- /**
- * 右转
- */
- void turnRight(){
- digitalWrite(IN1,LOW);
- digitalWrite(IN2,LOW); //右轮不动
- digitalWrite(IN3,HIGH);
- digitalWrite(IN4,LOW); //左轮前进
- }
- /**
- * 前进
- */
- void go(){
- 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 stopCar(){
- initCar();
- }
复制代码
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available()>0){
char ch = Serial.read();
if(ch == '1'){
//前进
Serial.println("up");
}else if(ch == '2'){
//后退
Serial.println("back");
}else if(ch == '3'){
//左转
Serial.println("left");
}else if(ch == '4'){
//右转
Serial.println("right");
}else if(ch=='0'){
//停车
Serial.println("stop");
}else{
//其他编码
Serial.println(ch);
}
}
}
|
评分
-
查看全部评分
|