Вопрос по Bluetooth

incdpr
Offline
Зарегистрирован: 28.11.2020

Доброго дня всем.

Исходные данные Android, Arduino, Bluetooth HC-05

Моя задача со смартфона передавать и принимать данные от Arduino через BLUETOOTH

Подскажите пожалуйста по Bluetooth.

1) По подключению. На некоторых сайтах на картинках контакты RX TX от модуля подключаются к D3 D2 на ардуино. Как правильно? Подключать крест на крест RX TX у HC-05 и Arduino? Или можно подключать к цифровым пинам и в коде сделать 

int gRxPin = 2;
int gTxPin = 3;

SoftwareSerial BTSerial(gRxPin, gTxPin);

2) Если можно  переназначить RX TX на цифровые пины, чем это может отразиться в будущем. Что будет с настоящими RX TX у Ардуино? Они просто будут незадейстованными, или каким то образом изменится работа ARDUINO

3) На какой скорости подключать HC-05 к ардуино? 9600 или 38400. На разных ресурсах по разному

4) Как обращаться к HC-05 из кода? Через Serial? Или есть другой способ? Serial это наверное RX TX и есть?

5) Есть вот такой код

 

#include <SoftwareSerial.h>

int gRxPin = 10;
int gTxPin = 11;

SoftwareSerial BTSerial(gRxPin, gTxPin);

void setup() {
  BTSerial.begin(38400);
  Serial.begin(9600);
}

Как этот код понять? Я предполагаю, что RX TX в коде мы переназначаем на цифровые пины (как в 1-м вопросе).

Только делаем этот Serial порт программным.

Если это так, тогда вопрос, если я подключу к пинам 10 и 11 свою HC-05, то Arduino будет через BTSerial обращаться на скорости 38400 с HC-05?

А тогда Serial.begin(9600); что считывает в данном примере?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

incdpr пишет:

А тогда Serial.begin(9600); что считывает в данном примере?

Ничего не считывает.

RTFM!

kalapanga
Offline
Зарегистрирован: 23.10.2016

У ардуино (неплохо кстати было бы сказать, какая у Вас модель!) есть аппаратный последовательный порт (один или несколько). Например у Arduino Uno он один и живет на выводах 0 (RX) и 1 (TX). Всегда. И они не меняются, не переназначаются.

Иногда удобно, чтобы устройство имело ещё один последовательный порт. Библиотека SoftwareSerial как раз и позволяет организовать программный последовательный порт на выбранных пинах - в вопросе в п.1 это 2 и 3 или в п.5 это 10 и 11. Она (библиотека) ни коим образом не трогает, не меняет, не переназначает пины аппаратного последовательного порта. Если конечно не додуматься использовать для программного порта пины 0 и 1. Но так скорее всего просто ничего работать не будет.

Итого в п.5 имеются два последовательных порта. Аппаратный на пинах 0 и 1, к нему обращаются по имени "Serial" и программный на пинах 10 и 11 который назвали "BTSerial".