Bluetooth 如何使用Arduino通过蓝牙模块HC-05发送数据? /* ==主代码== */ #包括 软件串行BTSerial(10,11);//RX | TX #定义LED引脚9 int state=0; int-Vry=0; int-Vrx=0; 无效设置(){ Serial.begin(9600); 引脚模式(LED引脚,输出); 数字写入(ledPin,低电平); BTSerial.begin(38400);//HC-05 AT命令中的默认速度更多 } void循环(){ 如果(BTSerial.available()>0){//检查数据是否从串行端口提交 state=BTSerial.read();//从串行端口读取数据 } //控制LED /*如果(状态='1'){ digitalWrite(发光二极管,高);//发光二极管亮起 状态=0; } else if(状态='0'){ digitalWrite(发光二极管,低);//发光二极管亮起 状态=0; } */ //读取电位计 //Vry=模拟读数(A0); /* Vrx=模拟读数(A1); int VrxMapped=map(Vrx,01023,0255); //int Vry_mapped=map(Vrx,0,1023,0,255); //int Vrx_mapped=map(Vry,0,1023,0,255); 串行打印(“Vrx”); Serial.println(VrxMapped); //连续打印(“Vry”); //连续打印(Vry); */ Vrx=模拟读数(A1); BTSerial.write(Vrx); 串行打印(“Vrx:”); Serial.println(Vrx); //BTSerial.write(Vry); 延迟(2000年); }

Bluetooth 如何使用Arduino通过蓝牙模块HC-05发送数据? /* ==主代码== */ #包括 软件串行BTSerial(10,11);//RX | TX #定义LED引脚9 int state=0; int-Vry=0; int-Vrx=0; 无效设置(){ Serial.begin(9600); 引脚模式(LED引脚,输出); 数字写入(ledPin,低电平); BTSerial.begin(38400);//HC-05 AT命令中的默认速度更多 } void循环(){ 如果(BTSerial.available()>0){//检查数据是否从串行端口提交 state=BTSerial.read();//从串行端口读取数据 } //控制LED /*如果(状态='1'){ digitalWrite(发光二极管,高);//发光二极管亮起 状态=0; } else if(状态='0'){ digitalWrite(发光二极管,低);//发光二极管亮起 状态=0; } */ //读取电位计 //Vry=模拟读数(A0); /* Vrx=模拟读数(A1); int VrxMapped=map(Vrx,01023,0255); //int Vry_mapped=map(Vrx,0,1023,0,255); //int Vrx_mapped=map(Vry,0,1023,0,255); 串行打印(“Vrx”); Serial.println(VrxMapped); //连续打印(“Vry”); //连续打印(Vry); */ Vrx=模拟读数(A1); BTSerial.write(Vrx); 串行打印(“Vrx:”); Serial.println(Vrx); //BTSerial.write(Vry); 延迟(2000年); },bluetooth,arduino-uno,Bluetooth,Arduino Uno,从机代码如下: /* == MASTER CODE == */ #include <SoftwareSerial.h> SoftwareSerial BTSerial(10, 11); // RX | TX #define ledPin 9 int state = 0; int Vry = 0; int Vrx = 0; void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); digitalWrite

从机代码如下:

    /*
 == MASTER CODE ==
*/
#include <SoftwareSerial.h>

SoftwareSerial BTSerial(10, 11); // RX | TX
#define ledPin 9
int state = 0;
int Vry = 0;
int Vrx = 0;
void setup() {
  Serial.begin(9600);
 pinMode(ledPin, OUTPUT);
 digitalWrite(ledPin, LOW);
 BTSerial.begin(38400); // HC-05 default speed in AT command more
}
void loop() {
if(BTSerial.available() > 0){ // Checks whether data is comming from the serial port
 state = BTSerial.read(); // Reads the data from the serial port
}
// Controlling the LED
/*if (state == '1') {
 digitalWrite(ledPin, HIGH); // LED ON
 state = 0;
}
else if (state == '0') {
 digitalWrite(ledPin, LOW); // LED ON
 state = 0;
}

*/
// Reading the potentiometer
//Vry = analogRead(A0);
/*
Vrx = analogRead(A1);
int VrxMapped = map(Vrx, 0, 1023, 0, 255); 

//int Vry_mapped = map(Vrx, 0, 1023, 0, 255);
//int Vrx_mapped = map(Vry, 0, 1023, 0, 255);
Serial.print("Vrx");
Serial.println(VrxMapped);
//Serial.print("Vry");
//Serial.println(Vry);

*/
Vrx = analogRead(A1);
BTSerial.write(Vrx);
Serial.print("Vrx: ");
Serial.println(Vrx);

//BTSerial.write(Vry);
delay(2000);
}
/*
==从代码==
*/
#包括
#定义按钮8
软件串行BTSerial(5,3);//RX | TX
//将电机控制器引脚连接至Arduino数字引脚
//马达一
int=10;
intin1=9;
int in2=8;
int-enB=11;
int-in3=7;
int-in4=6;
int jx=A0;
int jy=A1;
int mx=0//右马达
int my=0//左马达
int state=0;
int i=0;
int buttonState=0;
int-ledPin=13;
无效设置(){
pinMode(enA,输出);
pinMode(in1,输出);
pinMode(in2,输出);
pinMode(enB,输出);
引脚模式(in3,输出);
pinMode(in4,输出);
BTSerial.begin(38400);//HC-05默认速度
Serial.begin(9600);
pinMode(按钮,输入);
引脚模式(LED引脚,输出);
}
void循环(){
//my=analogRead(BTSerial.read());
//mx=模拟读取(BTSerial.read());
如果(BTSerial.available()>0){//检查数据是否从串行端口提交
int state=BTSerial.read();//从串行端口读取数据
//序列号。打印('y');
//序列号。打印号(my+100,12月);
串行打印('x');
序列号println(州);
}  
如果(i==2){
i=0;
}
/*int-mapx=map(mx,01023,0255);
int mapy=map(my,01023,0255);
如果(mapx>127)
{
数字写入(in1,低);
数字写入(in2,高);
模拟写入(enA,mapx);
}
其他的
{
数字写入(in1,高);
数字写入(in2,低);
模拟写入(enA,127 mapx);
}
如果(mapy>127)
{
数字写入(in3,高);
数字写入(in4,低电平);
模拟写入(enB,mapy);
}
其他的
{
数字写入(in3,低电平);
数字写入(in4,高);
模拟写入(enB,127 mapy);
}
延迟(1000);
*/
/*序列号println(州);
如果(BTSerial.available()>0){//检查数据是否从串行端口提交
state=BTSerial.read();//从串行端口读取数据
}
如果(状态>120){
digitalWrite(发光二极管,高);//将发光二极管设置为亮起
延迟(1000);//等待一秒钟
digitalWrite(发光二极管,低);//关闭发光二极管
延迟(1000);
}
否则{
digitalWrite(发光二极管,高);//将发光二极管设置为亮起
延迟(1000);//等待一秒钟
}
//伺服电机的控制
//阅读按钮
buttonState=数字读取(按钮);
如果(按钮状态==高){
BTSerial.write('1');//将'1'发送到主机以打开LED
}
否则{
BTSerial.write('0');
}
*/
延迟(2000年);
}
这里的问题是,,
如果我从主机发送1,从机端得到130,我不知道串行通信是如何工作的,也不知道如何通过蓝牙设备接收数据

蓝牙串行读取功能返回字符

/*
 == SLAVE CODE ==
*/
#include <SoftwareSerial.h>
#define button 8
SoftwareSerial BTSerial(5, 3); // RX | TX
// connect motor controller pins to Arduino digital pins
// motor one
int enA = 10;
int in1 = 9;
int in2 = 8;
int enB = 11;
int in3 = 7;
int in4 = 6;
int jx = A0;
int jy = A1;
int mx = 0; //right motor
int my = 0; //left motor

int state = 0;
int  i = 0;
int buttonState = 0;
int ledPin = 13;
void setup() {
  pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
 BTSerial.begin(38400); // HC-05 default speed
 Serial.begin(9600);
 pinMode(button, INPUT);
 pinMode(ledPin, OUTPUT);
}

void loop() {

  //my = analogRead(BTSerial.read());

 // mx = analogRead(BTSerial.read());
if(BTSerial.available() > 0){ // Checks whether data is comming from the serial port
  int state = BTSerial.read(); // Reads the data from the serial port

  //Serial.print('y');
  //Serial.println(my+100,DEC);
  Serial.print('x');
  Serial.println(state);

}  
if  (i == 2){
  i=0;
}
  /*int mapx = map(mx,0,1023,0,255);
  int mapy = map(my,0,1023,0,255);
  if (mapx>127)
  {
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
    analogWrite(enA,mapx); 
  }
  else
  {
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
    analogWrite(enA,127-mapx); 
  }
  if (mapy>127)
  {
    digitalWrite(in3, HIGH);
    digitalWrite(in4, LOW);
    analogWrite(enB,mapy);
  }
  else
  {
    digitalWrite(in3, LOW);
    digitalWrite(in4, HIGH);
    analogWrite(enB,127-mapy); 
  }
  delay(1000);
*/
 /*Serial.println(state);
if(BTSerial.available() > 0){ // Checks whether data is comming from the serial port
 state = BTSerial.read(); // Reads the data from the serial port

}

if (state > 120){
  digitalWrite(ledPin, HIGH);   // sets the LED on
  delay(1000);                  // waits for a second
  digitalWrite(ledPin, LOW);    // sets the LED off
  delay(1000);
}
else{
  digitalWrite(ledPin, HIGH);   // sets the LED on
  delay(1000);                  // waits for a second

}
// Controlling the servo motor

// Reading the button
buttonState = digitalRead(button);
if (buttonState == HIGH) {
 BTSerial.write('1'); // Sends '1' to the master to turn on LED
}
else {
 BTSerial.write('0');
}
*/
delay(2000);
}