Saludos.
Disculpen, tengo un problema al momento de querer enviar una palabra al bluetooth.
El bluetooth no lo reconoce correctamente, estoy tratando que se imprima en el monitor serie.
Adjunto el código y las respuestas del monitor serial, al igual que la aplicación por que envío:
La aplicación es Arduino Bluetooth Controller.
Disculpen, tengo un problema al momento de querer enviar una palabra al bluetooth.
El bluetooth no lo reconoce correctamente, estoy tratando que se imprima en el monitor serie.
Adjunto el código y las respuestas del monitor serial, al igual que la aplicación por que envío:
C++:
#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include "Arial_black_16.h"
#include "Arial_Black_16_ISO_8859_1.h"
#include "Arial14.h"
#include "SystemFont5x7.h"
#include <SoftwareSerial.h>
#define DISPLAYS_ACROSS 3 // Número de paneles P10 usados, de lado a lado.
#define DISPLAYS_DOWN 1
DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN);
SoftwareSerial bluetooth(2, 3); // Módulo Bluetooth
char Text[50]; // Array para almacenar el texto
bool bluetoothConnected = false; // Variable para verificar la conexión Bluetooth
void ScanDMD() {
dmd.scanDisplayBySPI();
}
void setup(void) {
Timer1.initialize(1000);
Timer1.attachInterrupt(ScanDMD);
dmd.clearScreen(true);
Serial.begin(9600);
// Inicialización del Bluetooth
bluetooth.begin(9600); // Módulo Bluetooth
bluetooth.setTimeout(1000);
// Mensaje inicial en el puerto serie
Serial.println("Esperando conexión Bluetooth...");
}
void loop(void) {
if (bluetooth.available() > 0) {
// Leer el texto desde el puerto serie hasta el salto de línea
String inputText = bluetooth.readStringUntil('\n');
inputText.toCharArray(Text, sizeof(Text)); // Convertir String a char array
// Marcar la conexión Bluetooth después de recibir el primer mensaje
if (!bluetoothConnected) {
bluetoothConnected = true;
Serial.println("Conexión Bluetooth establecida.");
}
// Asegúrate de que solo se envían caracteres ASCII válidos
for (int i = 0; i < sizeof(Text); i++) {
if (Text < 0 || Text > 127) {
Text = '?'; // Reemplaza caracteres no válidos con '?'
}
}
// Mostrar el texto recibido en el DMD
dmd.selectFont(Arial_Black_16_ISO_8859_1);
dmd.drawMarquee(Text, strlen(Text), (32 * DISPLAYS_ACROSS) - 1, 0);
// Enviar el texto al módulo Bluetooth
bluetooth.println(Text); // Envía el texto recibido al Bluetooth
Serial.println("Texto enviado: " + inputText); // Imprime el texto recibido
long start = millis();
long timer = start;
boolean ret = false;
int interval = 10;
while (!ret) {
if ((timer + interval) < millis()) {
ret = dmd.stepMarquee(-1, 0);
timer = millis();
}
}
}
}
Código:
14:10:29.214 -> Esperando conexión Bluetooth...
14:10:40.816 -> Conexión Bluetooth establecida.
14:10:40.852 -> Texto enviado: N
14:11:28.448 -> Texto enviado: �
18:31:29.859 -> Esperando conexión Bluetooth...
18:31:55.436 -> Conexión Bluetooth establecida.
18:31:55.582 -> Texto enviado: ���
18:31:58.287 -> Texto enviado: ccc�
18:32:01.306 -> Texto enviado: c
Última edición por un moderador: