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?
Tags:
/*
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?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por