Bluetooth JY-MCU V01.02

156 views
Skip to first unread message

Marcus Vinícius P. Moreira

unread,
May 12, 2013, 1:00:48 AM5/12/13
to arduino-...@googlegroups.com
Salve, galera!

Varri a internet atrás de uma solução pra obter (read) o valor via BT usando módulo slave JY-MCU v01.02 mas não consigo.

Ao disparar um comando do Monitor da IDE, a informação chega no destino, mas se eu mandar um dado pro Arduino ler via BT, não ocorre nada, como se não reconhecesse o caracter.

Uso também um celular Android com "S2 Bluetooth Terminal 2", conecto ao "linvor", consigo ver as transferências para ele, mas ao enviar, nada ocorre no Arduino, não reconhece o caracter.

Este é um dos códigos que tento reproduzir:

#include <SoftwareSerial.h>

int bluetoothTx = 45;
int bluetoothRx = 47;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup()
{
  //pinMode(45, OUTPUT);
  //pinMode(47, INPUT);
  pinMode(53, OUTPUT);
  //Setup usb serial connection to computer
  Serial.begin(9600);

  //Setup Bluetooth serial connection to android
  bluetooth.begin(115200);
  bluetooth.print("$$$");
  delay(100);
  bluetooth.println("U,9600,N");
  bluetooth.begin(9600);
}

void loop()
{
  //Read from bluetooth and write to usb serial
  if(bluetooth.available())
  {
    char toSend = (char)bluetooth.read();
    Serial.print(toSend);
    flashLED();
  }

  //Read from usb serial to bluetooth
  if(Serial.available())
  {
    char toSend = (char)Serial.read();
    bluetooth.print(toSend);
    flashLED();
  }
}

void flashLED()
{
  digitalWrite(53, HIGH);
  delay(500);
  digitalWrite(53, LOW);
}

--
Marcus Vinícius P. Moreira
"se podes olhar vê, se podes ver repara"

Tecnologia, Engenharia e Empreendedorismo!

Luiz Fellipe Ferreira

unread,
May 12, 2013, 9:58:02 AM5/12/13
to arduino-brasilia
Olá Marcus,

Esse bluetooth é aquele que já vem bonitinho em uma plaquinha né?

Uma confusão bem comum é a ligação do TX e RX, o RX do Bluetooth vai no TX que você declarou (no caso pino 45), o TX do Bluetooth vai no RX que você declarou (no caso pino 47).

Qual a razão de utilizar o bluetooth.begin(115.200) e depois  bluetooth.begin(9600) ? Recomendo deixar somente o 9600.

Também recomendo utilizar if(bluetooth.available()>0) ao invés do if(bluetooth.available()).

No mais o código me parece OK.


2013/5/12 Marcus Vinícius P. Moreira <marcusp...@gmail.com>

--
--
Você recebeu esta mensagem porque está inscrito no
Grupo "arduino-brasília" nos Grupos do Google.
E-mail: arduino-...@googlegroups.com
Url: http://groups.google.com.br/group/arduino-brasilia?hl=pt-BR
Sair: arduino-brasil...@googlegroups.com
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "arduino-brasilia" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para arduino-brasil...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

Glauco Marques

unread,
May 12, 2013, 10:45:45 AM5/12/13
to arduino-...@googlegroups.com
Apanhei muito com eessa plaquinhaa em!!!  e sabe o que eh pior ? pra voce receber os dados dela, voce deve usar o putty e conetar na porta, as que aparece na ide do arduino, nao recebe os dados.. rs.. demorei dois dia pra descobri essa treta..

recomendo usar ela na porta RX e TX do arduino, e claro invertendo, a do tx da bluetooth no rx do arduino e tx do bluetooth no rx do arduino.. porta TX1 e RX0
Atraves do putty conecta na porta COM5, se o led do bluetooth ficar ligado sem piscar é porque ja ta conectado. antes disso pareie o windows com o linvor, e digite a senha 1234

led parou de piscar é pq ta conectado, digite no console do putty o valor !a" sem as aspas, ele vai receber o comando e ligar o led da porta 13, led onboard.



Use este codigo:
#include <SoftwareSerial.h>

/* DIO used to communicate with the Bluetooth module's TXD pin */
#define BT_SERIAL_TX_DIO 6
/* DIO used to communicate with the Bluetooth module's RXD pin */
#define BT_SERIAL_RX_DIO 5

/* Initialise the software serial port */
SoftwareSerial BluetoothSerial(BT_SERIAL_TX_DIO, BT_SERIAL_RX_DIO);


const int portaled = 13;



void setup()
{
   Serial.begin(9600);
  /* Set the baud rate for the software serial port */
  BluetoothSerial.begin(9600);
  pinMode(portaled, OUTPUT);
 digitalWrite(portaled, LOW);
 
 
 }

void loop()
{
 
  if (BluetoothSerial.available())
    Serial.write(BluetoothSerial.read());
 
   /* If data is available from the hardware serial port then pass it on
      to the Bluetooth module. */
  if (Serial.available())
    BluetoothSerial.write(Serial.read());
   
   
      if (Serial.available()) {
    int c = Serial.read();
    if (c == 'a')
    { 
      digitalWrite(portaled, HIGH);
      Serial.println("ok ligado");
    }
    else if(c == 'b')
    {
      digitalWrite(portaled, LOW);
      Serial.println("ok desligado");
    }
   
  }
   
  delay(300);                                     //make it readable
}

Luiz Fellipe Ferreira

unread,
May 12, 2013, 11:04:06 AM5/12/13
to arduino-brasilia
Ah!

Uma observação, ele é tolerante a 5 volts porém em 3.3 ele é bem mai estável.


2013/5/12 Glauco Marques <4lin...@gmail.com>

Marcus Vinícius P. Moreira

unread,
May 15, 2013, 2:24:46 PM5/15/13
to arduino-...@googlegroups.com
Fala pessoal!

Como estou usando um MEGA, utilizei a "Serial1." (ou "Serial2." ou "Serial3.") na chamada da serial, invés de usar a 
lib SoftwareSerial explicitamente. Apesar de ser até óbvio, não sabia que tinha essa possibilidade.

Ex.: "Serial1.begin(9600);"

Alessandra Gomes

unread,
May 15, 2013, 8:48:58 PM5/15/13
to arduino-...@googlegroups.com
Olás,

Só brinquei um pouco com o módulo bluetooth e também não utilizei a biblioteca SoftwareSerial. Consegui enviar e receber dados tranquilamente.

[]s
Alessandra Gomes

Glauco Marques

unread,
Oct 5, 2013, 10:55:01 AM10/5/13
to arduino-...@googlegroups.com
Ola, vinicius, seus testes sem o softserial, usando a propria porta tx e rx do arduino voce conseguiu enviar e receber comando do arduino pelo putty ? porque aqui eu consigo mais ele nao envia nada pro arduino, ele estabiliza pela porta, porem a tela fica parada nao da pra por codigos.
Reply all
Reply to author
Forward
0 new messages