Подключение Bluetooth к Leonardo

alexnf
Offline
Зарегистрирован: 13.03.2015

Не могу разобраться с подключением.

Вот рабочий скетч:

int cnt = 0;    // счетчик
 
void setup() {
   Serial.begin(9600);   // инициализация порта
}
 
void loop() {
   cnt++;
   Serial.print("Hello BB from Arduino! Counter:");  // выводим надпись
   Serial.println(cnt);    // выводим значение счетчика и переводим на новую строку
   delay(1000);   // ждем 1 секунду
}

Он исправно выводит сообщения в монитор порта.

При подсоединении блютуза к пинам 0 и 1 и следующем скетче:


int cnt = 0;    // счетчик
 
void setup() {
   Serial1.begin(9600);   // инициализация порта
}
 
void loop() {
   cnt++;
   Serial1.print("Hello BB from Arduino! Counter:");  // выводим надпись
   Serial1.println(cnt);    // выводим значение счетчика и переводим на новую строку
   delay(1000);   // ждем 1 секунду
}

по идее должен выводить те же сообщения в терминал, при соединении через блютуз, но соединение устанавливается, а сообщений нет.

 

Попробовал вот такой скетч и соединение через 10 и 11 пин:

#include <SoftwareSerial.h>// import the serial library

SoftwareSerial Genotronex(10, 11); // RX, TX
int ledpin=13; // led on D13 will show blink on / off
int BluetoothData; // the data given from Computer

void setup() {
  // put your setup code here, to run once:
  Genotronex.begin(9600);
  Genotronex.println("Bluetooth On please press 1 or 0 blink LED ..");
  pinMode(ledpin,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
   if (Genotronex.available()){
BluetoothData=Genotronex.read();
   if(BluetoothData=='1'){   // if number 1 pressed ....
   digitalWrite(ledpin,1);
   Genotronex.println("LED  On D13 ON ! ");
   }
  if (BluetoothData=='0'){// if number 0 pressed ....
  digitalWrite(ledpin,0);
   Genotronex.println("LED  On D13 Off ! ");
  }
  
  Genotronex.println("Hello, world?");
}
delay(100);// prepare for next data ...
}

В этом случае все работает (пиходят сообщения и при отправлении мигает светодиод)

 

Что во втором скетче не так?

alexnf
Offline
Зарегистрирован: 13.03.2015

Почему то не могу отредактировать первое сообщение...

Дополню:

Если меняю 

SoftwareSerial Genotronex(10, 11); // RX, TX

на

SoftwareSerial Genotronex(0, 1); // RX, TX

то тоже не работает

dmitriykisliy
Offline
Зарегистрирован: 03.03.2015

почему Serial1?

блюпуп rx-> tx0 arduino

блюпуп tx -> rx0 arduino 

ну и питание, как без него

обычный Serial. на меге работает четко

dmitriykisliy
Offline
Зарегистрирован: 03.03.2015

почему Serial1?

блюпуп rx-> tx0 arduino

блюпуп tx -> rx0 arduino 

ну и питание, как без него

обычный Serial. на меге работает четко

alexnf
Offline
Зарегистрирован: 13.03.2015

Вот здесь написано:http://arduino.ru/Hardware/ArduinoBoardLeonardo

Последовательная шина: 0 (RX) и 1 (TX). Выводы используются для получения (RX) и передачи (TX) данных TTL. Данные выводы подключены к соответствующим выводам микросхемы последовательной шины ATmega32U4 USB-to-TTL. Обратите внимание что у Leonardo, класс Serial относится к последовательному соединению USB CDC. Последовательное соединение через выводы 0 и 1 осуществляется через класс Serial1.

Если меняю на serial, получаю  связь на компорт (через юсб)

dmitriykisliy
Offline
Зарегистрирован: 03.03.2015

посмоти

http://www.youtube.com/watch?v=45CQ2m-9FiY&feature=youtube_gdata_player

тут и скетч есть

а по поводу rx и tx ты прав, на меге проще чуток

alexnf
Offline
Зарегистрирован: 13.03.2015

Забыл отписаться:

второй скетч, тот что не работал 

int cnt = 0;    // счетчик
 
void setup() {
   Serial1.begin(9600);   // инициализация порта
}
 
void loop() {
   cnt++;
   Serial1.print("Hello BB from Arduino! Counter:");  // выводим надпись
   Serial1.println(cnt);    // выводим значение счетчика и переводим на новую строку
   delay(1000);   // ждем 1 секунду
}

успешно заработал.... Так и не понял в чем была проблема, но после нескольких испробованных вариантов скетча, заработал и этот.