手机控制通过蓝牙控制arduino

//这是从站代码,LED灯正极串联一个1K电阻,负极接Arduino的P13脚
#include <SoftwareSerial.h>   // 引用BT函数库
 
SoftwareSerial BT(2, 3); // 接收脚,传送脚
char val,_val;  // 存储接收的值
//int val;
const byte LED_PIN = 13;  // 定义LED引脚
 
void setup() {
   Serial.begin(9600);
  // 设定蓝牙模块初始波特率
  BT.begin(9600);//波特率9600,否则乱码
  pinMode(LED_PIN, OUTPUT);
}
 
void loop() {
  // 若收到值,则送到串口监视窗
  if (BT.available()) {
     
    val = BT.read();
    if (val == 'b') {
      digitalWrite(LED_PIN, LOW);
      // 回应命令发送端,开灯
      Serial.println("Serial LED OFF--");
      BT.println("LED ON");
    } else if (val == 'a') {
      digitalWrite(LED_PIN, HIGH);
      // 回应命令发送端,关灯
      Serial.println("Serial LED ON--");
      BT.println("LED OFF");
    }
  }

  if (Serial.available()) {
    _val = Serial.read();
    if(_val=='B'){
      digitalWrite(LED_PIN, LOW);
      // 回应命令发送端,开灯
      BT.println("LED OFF");
      Serial.println("Serial LED OFF");
      }
    else if(_val=='A'){
      digitalWrite(LED_PIN, HIGH);
      // 回应命令发送端,关灯
      BT.println("LED ON");
      Serial.println("Serial LED ON");
      }
       
  }

}

蓝牙模块的rx ->arduino的pin3(tx) 或者pin1(tx)
蓝牙模块的tx ->arduino的pin2(rx)或者pin0(rx)

pin2,pin3 走的是if (BT.available())
pin0,pin1走的是 if (Serial.available())

发布了26 篇原创文章 · 获赞 1 · 访问量 1945

猜你喜欢

转载自blog.csdn.net/jiekaile/article/details/104117592