Есть две Arduino, одна Iskra Mega + HC-05 в режиме мастер, вторая Iskra Leonardo + HC-05 в режиме слейв.
При передаче через Bluetooth по Softserial от Mega к Leonardo принимающая сторона получает бред.
Скетч Mega (отправитель)
Скетч Leonardo (получатель)
Скорости обеих YC-05 одинаковые, настроены через терминальные команды.
Пробовал подключаться к Leonardo через смартфон, посылал команды из терминала - отрабатывает все правильно. Получается проблема в отправителе. А вот в в чем проблема - не могу понять.
Буду весьма признателен за помощь.
При передаче через Bluetooth по Softserial от Mega к Leonardo принимающая сторона получает бред.
Скетч Mega (отправитель)
Код:
#define PN_BRIDGE_BT_TX 18
#define PN_BRIDGE_BT_RX 19
#include <SoftwareSerial.h>
SoftwareSerial Serial22(PN_BRIDGE_BT_RX, PN_BRIDGE_BT_TX);
void setup()
{
pinMode(PN_BRIDGE_BT_RX, INPUT);
pinMode(PN_BRIDGE_BT_TX, OUTPUT);
Serial.begin(9600);
Serial.println("Arduino is ready");
Serial22.begin(9600);
Serial.println("Bluetooth is ready");
}
void loop()
{
Serial22.print("0,45;");
Serial.println("0,45;");
delay(2000);
Serial22.print("0,90;");
Serial.println("0,90;");
delay(2000);
Serial22.print("0,180;");
Serial.println("0,180;");
delay(2000);
}
Код:
#define PN_BT_TX 10
#define PN_BT_RX 11
#define PIN_SERVO 8
#include <SoftwareSerial.h>
#include <Servo.h>
#include <GParser.h>
#include <parseUtils.h>
#include <unicode.h>
#include <url.h>
int ang = 0;
Servo srv;
SoftwareSerial BT_Serial(PN_BT_RX, PN_BT_TX);
void setup()
{
pinMode(PN_BT_RX, INPUT);
pinMode(PN_BT_TX, OUTPUT);
pinMode(PIN_SERVO, OUTPUT);
srv.attach(PIN_SERVO);
Serial.begin(9600);
BT_Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop()
{
if(BT_Serial.available())
{
char buf[50];
int num = BT_Serial.readBytesUntil(';', buf, 50);
buf[num] = NULL;
GParser data(buf, ',');
int ints[10];
data.parseInts(ints);
switch (ints[0])
{
case 0:
srv.write(ints[1]);
Serial.print("1st;");
Serial.print(num);
Serial.print(",");
Serial.print(ints[0]);
Serial.print(",");
Serial.println(ints[1]);
break;
case 1:
Serial.println("one");
break;
}
}
}
Скорости обеих YC-05 одинаковые, настроены через терминальные команды.
Пробовал подключаться к Leonardo через смартфон, посылал команды из терминала - отрабатывает все правильно. Получается проблема в отправителе. А вот в в чем проблема - не могу понять.
Буду весьма признателен за помощь.