hc-05蓝牙模块与arduino连接实现手机控制蓝牙智能小车

本人比较懒,纯文本

首先材料,L298N,步进电机,杜邦线,HC-05蓝牙模块,arduino模块

制作智能小车的连线部分网上都有,

这里只说蓝牙部分,首先你要依照网上所说的把hc-05进入AT调成从模式,别的随意

然后就是arduino与蓝牙模块的连接:5v---5v ,GND----GND,tx---rx,rx---tx

然后就是代码了:

#define IN1 2
#define IN2 4
#define IN3 5
#define IN4 7
#define ENA 3
#define ENB 6
#define TURNSPEED 100
#define RUNSPEED 60
void go_forward();
void turn_left();
void turn_right();
void go_back();
void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(ENA, OUTPUT);
  pinMode(ENB, OUTPUT);
  Serial.begin(9600); 
  Serial.println("BT is ready!");
}
  int val;
void loop() {
  if (Serial.available()) {
  val = Serial.read();
  switch(val){
  case '0':
  stop_s();delay(100);break;
  case '1':
  go_forward(RUNSPEED,RUNSPEED);delay(100);break;
  case '2':
  turn_left(TURNSPEED,TURNSPEED);delay(100);break;
  case '3':
  go_back(RUNSPEED,RUNSPEED);delay(100);break;
  case '4':
  turn_right(TURNSPEED,TURNSPEED);delay(100);break;
  default:
  Serial.println("error");delay(100);break;
           }
    }
}
void stop_s(){
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,LOW);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,LOW);    
  }
void go_forward(int L,int R){
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
  analogWrite(ENA, L);//control speed
  analogWrite(ENB, R);//control speed
}
//the connection of my L298N is wrong
//IN1,IN2 is right,IN3,IN4 is left;
void turn_left(int L,int R){
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
  analogWrite(ENA, L);
  analogWrite(ENB, R);
}
void turn_right(int L,int R){
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
  analogWrite(ENA, L);
  analogWrite(ENB, R);
}
void go_back(int L,int R){
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
  analogWrite(ENA, L);
  analogWrite(ENB, R);
}


手机上下载蓝牙串口spp,键盘的界面进行设置信号输入到arduino的信号按钮,呵呵

在我尝试的过程中发现使用使用if语句达不到效果必须要使用case语句。

还有我的电机的连线是反的,IN1和IN2控制的是右边的电机。

最后感谢贴吧和CSDN的大佬们,也希望这篇文章对小伙伴们也有所帮助。







猜你喜欢

转载自blog.csdn.net/changer_WE/article/details/78168825
今日推荐