Control pantalla táctil tft STONE

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");  
  
}

Debes ser paciente, hay preguntas que no son fáciles de responder.
No habras mas hilos del mismo tema porque eso se considera doble posteo.
Cuando pueda responderé.

No conozco la pantalla así que no sé cual puede ser el problema pero con seguridad tu código envía correctamente los datos.
Al menos lo mismo que envía por Serial es lo que envía por Serial1, comprobado.

Pido disculpas, sinceramente abrí el segundo post por que después de haber abierto el 1º, pensé que era mas adecuada hacer la consulta como software que como hardware, pido disculpas nuevamente, no fue por tema de impaciencia, simplemente pensé que la pregunta era mas adecuada como software y no sabía como cerrar o anular el post ya abierto.

Eso es lo que me desconcierta, que aparentemente el código es correcto, se envía correctamente y por el pin adecuado, pero tanto ese comando como otros, para cambiar valores de un campo en la pantalla o llamar otra pantalla, por ejemplo, no producen ningún efecto y aparentemente todo está correcto. He buscado mucho por internet, pero por desgracia de esa pantalla solo veo ejemplos de envíos de datos a Arduino, pero no de envío de datos DESDE Arduino.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.