Ligando Bluetooth nas portas 14 Tx e 15 Rx Arduino Mega

Boa noite

Estou utilizando um bluetooth para meu projeto e preciso utilizar ele nas portas 14(Tx) e 15(Rx) do Arduino Mega, porque as portas 0 e 1 ja estão em uso. 

Como posso fazer no código a definição para ele funcionar nestas portas?

Exibições: 4659

Responder esta

Respostas a este tópico

/*

utilizando o softwareSerial vc faz isso

Exemplo:

*/

#include <SoftwareSerial.h>

SoftwareSerial bluetooth(14, 15); // RX, TX

int led =  13;

void setup()  
{
  Serial.begin(9600);   // sua comunicação ja usada
  bluetooth.begin(9600);  // comunicação com o bluetooth
  pinMode(led, OUTPUT);
}

void loop()
{
  char caracter = bluetooth.read(); // faz a leitura da serial do bluetooth


  if(caracter == 'a')  // se o caracter que chegar na serial for igual a "a"
  {
    digitalWrite(led, HIGH);  // coloca sinal alto no pino do led
  }
  else
      if(caracter == 'b')  // se o caracter que chegar na serial for igual a "a"
    {
      digitalWrite(led, LOW);  // coloca sinal baixo no pino do led
    }        
  delay(1000); // para retorno do loop
}

Olá Eduardo

consegui fazer funcionar nos pinos 10 e 11, mas quando junto com o código geral do projeto ele não funciona. 

Dentro do loop tenho um void chamando todo o resto do projeto, se eu coloco o código do bluetooh da forma que esta ai, quando envio o 'a' ele nao faz nada. Fiz um teste colocando serial.read e enviando o 'a' pelo monitor serial, funcionou normalmente, mas pelo bluetooth não funciona.

eu aconteceu mesma coisa  , conseguiu resolver

Bom dia Josemar,

No caso, o Arduino Mega tem 3 barramentos UART adicionais: Serial1, Serial2 e Serial3.

Os pinos 14 e 15 do Mega estão ligados ao Serial3. Então, basta usá-lo como se fosse usar o Serial.

Não é preciso utilizar a lib SoftwareSerial.

Bom dia Geovane,

Eu tentei desta forma tambem, mas não funcionou. Só consegui funcionar o 10 e 11 usando o exemplo do Eduardo.

Josemar, vc tentou fazer um sketch simples usando esse barramento, para verificar se há algum sinal de saída? Tente ligar um led (com resistor, claro) nas portas RX e TX, com um sketch simples:

void setup() {

  Serial3.begin(9600);

}

void loop() {

  Serial3.println("teste");

}

Se o led não piscar, pode ser que o barramento esteja danificado.

Os outros barramentos (Serial1 e Serial2) funcionam normalmente?

Geovani

Utilizei o Serial3 para controlar a luz do fundo do display de LCD, que antes estava no pino 10, mas não declarei desta forma Serial3.begin e tal... usei direto, só declarei como Backlight o pin 14.

O serial 1 e 2 tambem não funcionaram diretamente nem com o Software Serial.

Entendi.

Nesse caso, Josemar, eu recomendaria que deixasse os pinos de barramentos específicos (UART, I2C, SPI) para uso específico desses barramentos. Eles são inicializados pelo bootloader, e também têm detalhes no hardware do microcontrolador.

Experimente utilizar as portas 22 até 49, no barramento lateral para o backlight, acho que será mais fácil.

Em relação ao Serial, poderia postar o sketch que está dando problema?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço