//这是从站代码,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())