Buenos días a todos, estoy desarrollando una aplicación con el Arduino Mega 2560 que necesita recibir los códigos correspondientes a la tecla pulsada en la pantalla y en función del valor recibido mandar un comando a la pantalla, para cambiar de pantalla, o presentar un valor en la pantalla.
La parte de la recepción de datos de la pantalla funciona perfectamente, pero no consigo que se ejecuten los comandos enviados desde el arduino a la pantalla, por ejemplo para que esta cambie a otra pantalla o presente un dato en la pantalla.
El comando que se debe enviar para esto es: ST<{"cmd_code":"open_win","type":"window","widget":"clv4"}>ET
Dicho comando probado en el simulador de la pantalla ejecuta el cambio de pantalla correctamente, pero cuando lo mando a través del puerto TX1 no causa ningún efecto en la pantalla,también mando el comando por el puerto monitor, para ver en el PC si el comando que se manda es el correcto, pudiendo comprobar que el comando enviado es correcto, a continuación pego el programa simplificado de pruebas con el que solo intento cambiar a la pantalla clv4.
La conexión es del TX1 de Arduino mega al RX1 (D1) de la pantalla STONE.
Si alguien me puede aportar alguna pista de por que no causa ningún efecto en la pantalla se lo agradecería, ya que estoy atascado en el proyecto, al no conseguir que la pantalla reaccione a los comandos enviados desde Arduino.
A continuación incluyo el programa que he confeccionado para centrarme solo en el envío de comandos que es la parte que no consigo solucionar.
#include <stone.h>
#include <ArduinoJson.hpp>
#include <ArduinoJson.h>
//#include <SoftwareSerial.h>
void setup ()
{
Serial1.begin(115200); // puerto serie 1 para comunicar con la pantalla
Serial1.flush();
Serial.begin(115200); // puerto serie monitor
Serial.flush();
SerializeObject();
}
void loop(){}
void SerializeObject()
{
/*
El comando que debe llegar a la pantalla STWCO43LT-01 para que cambie a la pantalla
DE nombre clv4 es el siguiente:
ST<{"cmd_code":"open_win","type":"window","widget":"clv4"}>ET
*/
String json;
StaticJsonDocument<100> doc;
doc["cmd_code"] = "open_window";
doc["type"] = "window";
doc["widget"] = "clv1";
//Envío del comando a la 'pantalla
Serial1.write("ST<");
serializeJson(doc, Serial1);
Serial1.write(">ET\n");
/*
Replica en el puerto monitor para verificar la construcción correcta del comando a enviar
a la pantalla STONE
*/
Serial.write("ST<");
serializeJson(doc, Serial);
Serial.write(">ET\n");
}