Borrar la pantalla de lcd

0

Estoy utilizando la comunicación en serie para mostrar los datos a mi pantalla lcd de 4x20 . Cuando llené todas las líneas, por supuesto, necesito aclararlo. He buscado en la red y he encontrado algo como     %código%     %código%     %código%     %código% Pero no funciona. También encontré una solución como Serial.write(27); // ESC command pero esa solución (truco como la llamaron) solo funcionará en el monitor de serie . Entonces, ¿hay alguna solución posible para borrar la visualización o eliminar un solo carácter de ella?

    
pregunta NewInEverything

4 respuestas

1

La única información relevante que logré encontrar es esta discusión

Según el último comentario del propietario de la junta

  

Intenté imprimir la tabla ascii de 0 a 255.   CR, LF, BS, TAB funciona. Otros personajes no imprimibles son un no go. Sin embargo, otros personajes son perfectos (bueno, los caracteres extendidos son limitados).

Así que me pregunto si una secuencia CR + LF (retorno de carro, avance de línea) tiene un efecto de empujar los caracteres impresos fuera de la pantalla, es decir

for (int i=0; i < 4; i++) 
{
  Serial.print(13);  // carriage return (CR)
  Serial.print(10);  // line feed (LF)
}

o tal vez

for (int i=0; i < 4; i++) 
{
  Serial.write(13);  // carriage return (CR)
  Serial.write(10);  // line feed (LF)
}

Si esto no funciona, la alternativa que veo es aplicar la solución que se describe al inicio de la discusión vinculada y enviar 40 comandos de retroceso:

for (int i=0; i < 80; i++) 
{
  Serial.print(8);  // print 40 times backspace (BS)
}

o puede que necesites

for (int i=0; i < 80; i++) 
{
  Serial.write(8);  // print 40 times backspace (BS)
}
    
respondido por el alexan_e
1

Resumen

Probablemente pueda separar la pantalla LCD paralela estándar de la placa serie y usar la pantalla paralela directamente.

Visualización en serie

El E-Term parece que la sección de pantalla (tablero superior) tiene una pantalla LCD paralela de 16x4 caracteres de 16 pines en una placa que está unida por un conector de 16 patillas y separadores a un adaptador paralelo al serial (parte de la placa inferior ).

Sinotieneinformacióndesoftwareenlainterfazdecomandosdeladaptadorserie,serámuydifícildeusar.

Pantallasmejordocumentadas

Eseproveedorofreceotraspantallasquetienenmuchamásdocumentación.InclusoEjemplodebocetosdearduino.

Puedeprobarestosyversisuinterfazdepantallausaelmismosistemadecomandosounosimilar(usandoloscaracteresSTXyETXparaencajarloscomandosdentrodelosdatosquesepuedenmostrar).

Estopuedeterminarsiendounfrustrantecallejónsinsalida.

Partedevisualizaciónparalela

Hayunabuenaposibilidaddequelaplacasuperioruseuncontroladorparaleloestándarde16pinesy,deserasí,sepuedeseparardelaotraplacaysepuedemanejarconelArduino LiquidCrystal library.

Esta biblioteca tiene muchas funciones, incluyendo ...

  • borra la pantalla - clear()
  • posiciona el cursor - setCursor(column, row)
  • mover el cursor a la parte superior izquierda - home()

Dado que existen numerosos tutoriales para esto y un gran número de personas que lo utilizan, es posible que encuentre este camino más fácil.

Utiliza seis pines GPIO en lugar de dos. Es probable que todavía no te falten (aún) pines GPIO en tu clon de Arduino.

Tenga en cuenta que los pines A0-A5 (o más) de Arduino normales también pueden usarse como pines IO digitales.

Arduino Megas (y clones similares) tienen muchos más pines GPIO que también pueden usarse (siempre que cargues el "núcleo" relevante en el IDE y luego selecciones la placa derecha en el IDE)

Personalmente, espero que esta sea la forma más fácil de avanzar.

Ejemplo

Este es un Arduino Duemilanove antiguo: tiene pines GPIO limitados. Sin embargo, está activando un escudo MIDI que tiene dos puertos MIDI, 3 botones pulsadores y 2 potenciómetros analógicos.

No tuve problemas para encontrar 6 pines GPIO (más potencia y gnd) para conectar una pantalla LCD paralela. 4 datos (amarillo). habilitar (amarillo) RS (azul). Tu Arduino-clon tiene mucho más GPIO que esto, por lo que no deberías tener mucho problema.

La mini placa de pruebas está ahí para facilitar las conexiones y proporcionar control de contraste de LCD mediante potenciómetro.

    
respondido por el RedGrittyBrick
0

No sé la respuesta a tu pregunta específica, pero aquí es cómo funciona esto normalmente.

Normalmente, la mayoría de las placas LCD tienen un "Controlador LCD" que solo acepta comunicación en paralelo; el ejemplo más común sería el Hitachi HD44780 . A menudo, para una pantalla de 4 líneas, habrá dos controladores. Para las pantallas LCD que aceptan comunicación en serie, hay also un compañero microcontrolador en la placa del controlador LCD. Este microcontrolador está programado para aceptar comunicación en serie y convertirlo en los comandos paralelos adecuados en el controlador LCD.

En pocas palabras, no creo que haya ningún "estándar" y los comandos serie que se utilizan para borrar su pantalla o cambiar la posición del cursor dependen de cómo se haya programado el microcontrolador para que acepte esos comandos. Deberá ver si hay una guía del usuario que explique los detalles de cómo emitir esos comandos.

    
respondido por el Mark
0

En las Newhaven pantallas en serie que he usado, el comando "Borrar pantalla" es 0x01.

En las pantallas de Parallax , el comando (denominado "Form Feed") es 0x0C (12 decimal).

Si tiene un tipo de pantalla diferente, el comando puede volver a ser diferente.

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas