Я хочу выполнить связь Bluetooth между 2 Arduino с HC05 (ведущим) и HC06 (ведомый). Я добился успеха при спаривании двух модулей, но когда я отправляю байт, который я читаю с потенциометра, ведомое устройство получает другое значение, которое может быть 128, -1, 248. Ниже приведены коды ArduinoСвязь между двумя модулями Arduino с модулями HC05 и HC06
Arduino мастер HC05
#include <SoftwareSerial.h>
SoftwareSerial BTserial(2, 3); // RX | TX
// Connect the HC-05 TX to Arduino pin 2 RX.
// Connect the HC-05 RX to Arduino pin 3 TX through a voltage divider.
int potpin = 0; // analog pin used to connect the potentiometer
void setup()
{
// start the serial communication with the host computer
Serial.begin(9600);
Serial.println("Arduino with HC-05 is ready");
// start communication with the HC-05 using 9600
BTserial.begin(9600);
Serial.println("BTserial started at 9600");
}
void loop()
{
BTserial.println(analogRead(potpin));
delay(100);
Serial.println(analogRead(potpin));
}
Arduino раб HC06
#include <SoftwareSerial.h>
#include <Servo.h>
Servo myservo;
SoftwareSerial slave(2, 3); // RX | TX
// Connect the HC-05 TX to Arduino pin 2 RX.
// Connect the HC-05 RX to Arduino pin 3 TX through a voltage divider.
int c = 0;
int val;
void setup()
{
// start the serial communication with the host computer
Serial.begin(9600);
Serial.println("Arduino with HC-06 is ready");
// start communication with the HC-05 using 9600
slave.begin(9600);
Serial.println("BTserial started at 9600");
myservo.attach(9);
}
void loop()
{
if (slave.available())
{
val= slave.read();
Serial.println(val);
val = map(val, 0, 1023, 0, 180);
myservo.write(val);
delay(15);
}
}
Спасибо за каждый ответ
с функцией slave.parseInt() заставляет меня ничего не видеть на серийном –
Вы должны сохранить входящий символ в строке и распечатать его для отладки. Справочный пример для [StringToInt] (https://www.arduino.cc/en/Tutorial/StringToIntExample) соответствует тому, что вы хотите. –
, так что, если я это понимаю .... Я должен поместить parseInt() вместо read() для чтения информации в подчиненной программе и установить переменные в двух эскизах, например StringtoInt val; таким образом мы преобразуем информацию, посланную с println из строки в правильное значение int –