Banner publicitario de PCBWay

Hacer backup de Display con touch NX4827k043

Saludos a todo el amable foro.

Un familiar tiene un equipo para hacer Helados que ya tiene varios años de uso y despues de una tormenta electrica el equipo simplemente ya no encendio.

Al revisar, encontre la fuente de poder conmutada con un daño bastante obvio, procedi a cambiarla ya que es una fuente comercial muy comun de 12 y 5 volts a 4 amperes. Con este procedimiento el equipo ya enciende y el display con el que se comanda el equipo muestra su actividad habitual, sin embargo notamos que el Touch se encuentra totalmente descalibrado pero buscandole un poco se puede entrar a la opcion para seleccionar parametros como Temperatura, revoluciones por minuto, tiempo de batido e Inicio del funcionamiento. Sin embargo al enviar el comando de inicar simplemente no sucede nada.

El display/Touch es un NX4827k043 y al consultar su Datasheet lei que la communicacion es RS232 TTL y que los diseños graficos de botonoes, barras, iconos, etc se pueden preparar y editar en un software de la propia empresa que los fabrica.

1758417046200.jpeg


Con la sospecha que el Display se daño con la tormenta electrica, procedi a conectarlo via un adaptador USB a serie TTL con la idea de poder diagnosticar o verificar su actividad. una vez que realice la conexion y con una terminal Putty Serie, probando a diferentes baudios intente recibir algun tipo de informacion pero esto simplemente no sucedio por mas que comandaba tal como si estuviera conectado al equipo. con lo que sospecho que la linea TX del display esta dañada (siempre esta en alto esa linea 3.3 v)

Yo no tengo experiencia con este tipo de Display, ya vi que aunque esta descontinuado este modelo, podria conseguir una exactamente igual pero obviamente vendra sin el programa que esta embebido en su memoria y no he encontrado en el sitio de NEXTION si existe alguna forma de descargar o respladar el contenido y es por eso que acudo a ustedes si alguno tiene experiencia con estos Displays y si es posible lo que pretendo.

El Fabricante de la Maquina de Helados ya no existe y por mas que he buscado el display como refaccion; no me ha sido posible.

Se me habia pasado comentar que el Display esta conectado a un Arduino uno y ahi si que pude recuperar el Firmware con AVRDUDES y pasarlo a otro para probar el funcionamiento del mismo, con lo que descarto que el problema este en el lado del microcontrolador.

Mucho agradecere sus comentarios.

Sino logro hacer funcionar el display; tendre que investigar como hacer funcionar Tanto el compresor para enfriar la camara como el motor que hace girar el batidor con sus respectivos sensores de Temperatura y Presion con los que cuenta el equipo en un Sketch nuevo totalmente escrito por mi lo cual puede ser algo que podria toamr un buen de tiempo. o_O

Tengan un excelente dia mis estimados foristas.
 
Encontró alguna solución, como es el nombre del fabricante quizás haya uno similar que por lo general son de la India :unsure:
Estoy en espera de un display nuevo que me llegara en unos dias. La idea es retirar la Memoria Eprom 25Q256FV de la pantalla original (realizar un respaldo) y traspasarla a la nueva. Es muy importante asegurarse con el vendedor de la nueva pantalla; disponga con el hardware y disposicion exactamente al mismo de la usada.

Buscando en Diferentes proveedores viendo las fotos nos percamtamos que el mismo modelo tiene diferentes versiones.


1759339632335.jpeg1759339654329.jpeg

Ya les contare si tuvimos exito.

Saludos


En lo que esperamos que se resuelva el tema de la Pantalla Touch.

Levante a groso modo las conexiones que comparto:




1759341772916.png
Y con el siguiente Sketch de Arduino ya lo estamos comandando, pero aclaro que no hay nada de "Inteligencia" para Tomar decisiones en base a los parametros que arrojan sensores de temperatura, amperaje, y presion. Por lo que mi Familiar de manera manual; al puro sentimiento y experiencia ya esta fabricando Helados . (y)


C++:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH110X.h>
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire ourWire(2); //Se establece el pin 2 del Arduino para la lectura del sensor
DallasTemperature DS18B20(&ourWire); //Se declara una variable u objeto para el sensor
/* Uncomment the initialize the I2C address , uncomment only one, If you get a totally blank screen try the other*/
#define i2c_Address 0x3c //initialize with the I2C addr 0x3C Typically eBay OLED's
                         // e.g. the one with GM12864-77 written on it
//#define i2c_Address 0x3d //initialize with the I2C addr 0x3D Typically Adafruit OLED's
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1   //   QT-PY / XIAO
Adafruit_SH1106G display = Adafruit_SH1106G(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
//Definimos la asignacion de Pins del microcontrolador
#define RLY1 3// Relevador que Acciona el Variador FC-51 a travez del Pin 18
#define RLY2 4//Relevador que Activa el Compresor para enfria la camara
#define RLY3 5//Relevador que que activa (pendiente de saber que funcion hace)
#define PWM 6// Señal PWM que controla la Velocidad En el Variador FC-51 a travez del pin 42
#define Puerta 7// Switch Magnetico que da aviso si la puerta de la camara esta abierta
#define BtnRojo 8// Boton Rojo del panel de control
#define BtnAzul 9// Boton Azul del panel de control
#define BtnNegro 10// Boton negro del panel de control
#define BtnVerde 11// Boton Verde del panel de control

#define Rebote 50 //se define en milisegundos; la espera para evitar el posible rebote para las rutinas de gestion en los botones

void setup() {
  // Configuramos elmodo de operacion de los Pines del microcontrolador
  pinMode(RLY1, OUTPUT);
  pinMode(RLY2, OUTPUT);
  pinMode(RLY3, OUTPUT);
  pinMode(PWM, OUTPUT);
  pinMode(Puerta, INPUT_PULLUP);
  pinMode(BtnRojo, INPUT_PULLUP);
  pinMode(BtnAzul, INPUT_PULLUP);
  pinMode(BtnNegro, INPUT_PULLUP);
  pinMode(BtnVerde, INPUT_PULLUP);

  digitalWrite(RLY1,HIGH);
  digitalWrite(RLY2,HIGH);
  digitalWrite(RLY3,HIGH);
  analogWrite(PWM,0);



DS18B20.begin(); //Se inicia el sensor de temperatura
 
DS18B20.requestTemperatures(); //Se envía el comando para leer la temperatura
float tem= DS18B20.getTempCByIndex(0); //Se obtiene la temperatura en ºC

  delay(250); // Esperamos a que el Display Oled este disponible
  display.begin(i2c_Address, true); // Inicializamos el Display Oled
 //display.setContrast (0); // se configura el contraste
  //Limpiamos el Display
  display.clearDisplay();
  display.display();
 
  display.clearDisplay();

 // Mostramos la Bienvenida e inicio del sistema
  display.setTextSize(1);
  display.setTextColor(SH110X_WHITE);
  display.setCursor(0, 0);
  display.println("Inicializando...");
  display.setTextColor(SH110X_BLACK, SH110X_WHITE); // 'inverted' text
  display.println("");
  display.println("");
  display.setTextSize(2);
  display.setTextColor(SH110X_WHITE);
  display.println(" MIBORBOLLA");// display.println(tem);
  display.setTextSize(1);
  display.println("");
  display.println("  -Miguel Borbolla-");
  display.display();
  delay(2000);// esperamos para dar tiempo a que se pueda leer el mensage de bienvenida
  display.clearDisplay();

 
}

void loop() {
 
  //Se obtienen los valores de los diferentes Transductores
  DS18B20.requestTemperatures(); //Se envía el comando para leer la temperatura
  float tem= DS18B20.getTempCByIndex(0); //Se obtiene la temperatura en ºC
  int amp=(analogRead(A0));// se obtiene el consumo de corriente en Amperes desde el Variador FC-51 (pin 42)
  int ps1=map(analogRead(A1),0,1023,0,500);//sensor de presion Keller 21C (Entrada del compresor)
  int ps2=map(analogRead(A2),0,1023,0,500);//sensor de presion Keller 21C (Salida del compresor)
  int vel=map(analogRead(A6),0,1023,0,255);//Potenciometro del Panel de control para obtener velocidad deseada hacia el variador
  float tem2=map(analogRead(A7),0,1023,-8,30);//Potenciometro del Panel de control para fijar la temperatura deseada
  analogWrite(PWM,vel);// Fijamos la velocidad del variador FC-51 por PWM

//Mostramos la informacion en Display
  display.setTextSize(1);
  display.setTextColor(SH110X_WHITE);
  display.setCursor(0, 0);
  display.setTextColor(SH110X_BLACK, SH110X_WHITE); // invertimos el "color" del texto
  display.println("    -Informacion-    ");
  display.setTextSize(1);
  display.setTextColor(SH110X_WHITE);
  display.print("Temperatura :"); display.println(tem);
  display.print("Tmp deseada :"); display.println(tem2);
  display.print("Velocidad:"); display.println(vel);
  display.print("Corriente:"); display.println(amp);
  display.print("Presion 1:"); display.println(ps1);
  display.print("Presion 2:"); display.println(ps2);
  display.display();
 
  display.clearDisplay();
//


if (digitalRead(Puerta)==0) {
  digitalWrite(RLY1,HIGH);
  digitalWrite(RLY2,HIGH);
  digitalWrite(RLY3,HIGH);
  display.print("Puerta Abierta");
}
    //while (digitalRead(Puerta)==0){delay(Rebote);}}

if (digitalRead(BtnRojo)==0) {
  digitalWrite(RLY1,HIGH);
  digitalWrite(RLY2,HIGH);
  digitalWrite(RLY3,HIGH);
  display.print("Parada de Todo");
   }  //while (digitalRead(BtnRojo)==0){delay(Rebote);}}  
 
if (digitalRead(BtnAzul)==0) {
  digitalWrite(RLY2,!digitalRead(RLY2));//invertimos el estado del Relay
 
    while (digitalRead(BtnAzul)==0){delay(Rebote);}display.print("Compresor");}  
 

if (digitalRead(BtnNegro)==0) {
  digitalWrite(RLY3,!digitalRead(RLY3));//invertimos el estado del Relay
 
    while (digitalRead(BtnNegro)==0){delay(Rebote);}display.print("BtnNegro");}

if (digitalRead(BtnVerde)==0) {
  digitalWrite(RLY1,!digitalRead(RLY1));//invertimos el estado del Relay
   
    while (digitalRead(BtnVerde)==0){delay(Rebote);}display.print("Variador");}


}

Pero la idea es que si logramos sustituir la pantalla dañada; logremos su operacion original.
 
Última edición:
Finalmente llego la pantalla nueva, despues de probarla con un archivo de"demostracion" que baje del sitio de Nextion y asegurarse que es exactamente igual que la dañada, tal como pensamos se procedio a retirar la memoria 25Q256FV de la pantalla dañada y con un grabador de memorias CH341 USB realizamos un backup y por seguridad la grabamos en otra memoria igual y esta ultima la subtituimos en la pantalla nueva.

Y wala; todo resulto con exito ya que en la pantalla nueva arranco con el programa exactamente igual que en la dañada, asi que procedi a montarla en la Heladera con su arduino original y la maquina regreso a su operacion original.

Asi que pues doy por cerrado el tema dejando el procedimiento en caso de que a alguien le suceda algo similar.

Saludos y felices reparaciones.
 
Atrás
Arriba