废话不多说,先上代码:
#include <SoftwareSerial.h>
SoftwareSerial BT(10, 11);
char val;
int Red = 6;
int Green = 5;
int Blue = 4;
int pin1 = 8;
int pin2 = 9;
int speeda = 127;
char str1[]="speed:";
char str2[]="r/min";
void setup() {
Serial.begin(9600);
pinMode(Red, OUTPUT);
pinMode(Green, OUTPUT);
pinMode(Blue, OUTPUT);
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
Serial.println("bluetooth is ready!");
BT.begin(9600);
}
void LAMP(int i, int j, int k){
analogWrite(Red,i);
analogWrite(Green,j);
analogWrite(Blue,k);
}
void speed(int speed1, int speed2){
analogWrite(pin1, speed1);
analogWrite(pin2, speed2);
}
void loop() {
if (Serial.available()) {
val = Serial.read();
BT.print(val);
}
if (BT.available()) {
val = BT.read();
if(val == 'r') LAMP(255, 0, 0);
else if(val == 'g') LAMP(0, 255, 0);
else if(val == 'b') LAMP(0, 0, 255);
else if(val == 'z') speed(0, speeda);
else if(val == 'y') speed(speeda, 0);
else if(val == '+') speed(0, min(speeda+40,255));
else if(val == '-') speed(max(speeda-40,0), 0);
else if(val == 's') speed(0, 0);
Serial.print(val);
}
}
首先设置好蓝牙的从模块模式之后,进行配置手机上的按钮如下图所示:
进行验证
使用手机连接蓝牙,在蓝牙编辑器上设置相应的按钮,如图2所示,当按下按钮“红灯亮”时,手机端向蓝牙发送字符‘r’,试验台红灯亮,当按下按钮“绿灯亮”时,手机端向蓝牙发送字符‘g’,试验台绿灯亮,当按下按钮“蓝灯亮”时,手机端向蓝牙发送字符‘b’,试验台蓝灯亮,当按下按钮“电机左”时,手机端向蓝牙发送字符‘z’,试验台电机左转,当按下按钮“电机右”时,手机端向蓝牙发送字符‘y’,试验台电机右转,当按下按钮“电机加速”时,手机端向蓝牙发送字符‘+’,试验台电机进行加速,当按下按钮“电机减速”时,手机端向蓝牙发送字符‘-’,试验台电机进行减速,当按下按钮“STOP”时,手机端向蓝牙发送字符‘s’,试验台电机停止转动。
图 4红灯亮
图 5绿灯亮
图 6蓝灯亮