Impirmir


WebQuest

reutilizar un LCD de un fax ROHM RCM2055R

Introducción

.

Como reutilizar un LCD de un fax ROHM RCM2055R

 

Area

Tecnología e Informática - Informática

Edad

7-8 / 8-9 / 9-10

Herramientas

  • Hoja de Cálculo
  • Simulaciones
  • Robots
  • Sensores y Sondas
  • Otras

Tarea

Este módulo tiene 24 pines, y están numerados en dos columnas iniciando al frente del PCB, en la esquina inferior izquierda con el pin 1. 

Procesos

El display cuenta con una sección de una línea de 16 caracteres 5x8 puntos, una de 4 caracteres de 7 segmentos, y otros símbolos propios del fax

La única dificultad que encontré en la reutilización de este LCD con un microcontrolador de la serie PIC 16F  es que la numeración de los pines no coincide con ningún tutorial qe  se pueda  encontrar  en internet para lcd, que generalmente son de 14 pines, 

Recursos

.

Sin éxito al buscar en la web, encontré otra  alternativa al revisar la rotulación del chip del lcd, y como regularmente se usa el mismo para la mayoría de display antiguos, tuve suerte, pues era un HD4478, así que me di a la tarea de buscar el datasheet para ubicar los pines RS,RW, y E.

      

 

Teniéndolos ubicados y también las entradas de bits, bastó con identificar con el multimetro la ubicación de los mismos entre los 24 pines del modulo quedando identificados de la siguiente manera, y solo para la línea de 16 caracteres de 5x8 puntos.

 

 

Inmediatamente solde unos pequeños cables para hacer las pruebas correspondientes, y nuevamente encontré un detalle, el LCD, solo trabajaba con 4 bits, así que desolde, desde D0 hasta D3,  y cómo solo había trabajado anteriormente con 8 bits, no entendia por que no se visualizaban adecuadamente los textos. Reconfigure el código en basic compiler del PIC SIMULATOR IDE 6.9 (que por cierto acabo de adquirir una licencia por 15 euros) para que trabajará a 4 bits y con el reloj interno del PIC16F833 a 8mhz. Y finalmente lograre ver el texto en el LCD de una línea de 16 caracteres.

 

                Este es  el  código para  un prototipo  de espejo parabólico para  concentrar  energía calorífica solar  que se  enfoca automáticamente,   que se  trabaja  con los  alumnos de la  Preparatoria  174  del  municipio de  Atlacomulco  en  el  Estado de México.

 

Puede pegarse   en  Basic Compiler  del Pic  simulator  IDE   y simularse con un pic16f883

__________________________________________

AllDigital

Define CONF_WORD = 0x28f4  'el  reloj interno debe  ponerse  a  8  mhz 

Define CONF_WORD_2 = 0x3eff

Config RC3 = Output

 

 

Config PORTA = Input

TRISA = 0xff

ADCON1 = 1

Config RB5 = Output

Config RB4 = Output

Config RB3 = Output

 

Define LCD_BITS = 4

Define LCD_DREG = PORTC

Define LCD_DBIT = 4

Define LCD_RSREG = PORTB

Define LCD_RSBIT = 5

Define LCD_RWREG = PORTB

Define LCD_RWBIT = 4

Define LCD_EREG = PORTB

Define LCD_EBIT = 3

 

Dim a As Word

Dim b As Word

Dim e As Word

Dim adc_0 As Word  'ldr

Dim adc_1 As Word  'lrd2

Dim adc_2 As Word  'temperatura

a = 0

b = 0

e = 0

adc_0 = 0

adc_1 = 0

adc_2 = 0

RC3 = 1

Lcdinit LcdCurBlink

WaitMs 500

Lcdcmdout LcdClear

Lcdout "SEGUIDOR"  'solo 8 caracteres  a la vez

Lcdcmdout LcdLine2Home

Lcdout " SOLAR"  'aparecene en una  linea por ser de  4  bits

 

WaitMs 1000

RC3 = 0

Lcddefchar 0, 11, 10, 10, 11, 8, 8, 28, 28  'temperatura

Lcddefchar 1, 0, 0, 10, 10, 0, 17, 14, 0  'sonrisa

Lcddefchar 2, 4, 21, 14, 27, 14, 21, 4, 0  'sol

Lcddefchar 3, 0, 0, 0, 0, 0, 0, 0, 0

Lcddefchar 4, 28, 20, 28, 0, 3, 4, 4, 3  'grados centigrados

 

WaitMs 3000

 

loop:

Adcin 0, adc_0

Adcin 1, adc_1

Adcin 2, adc_2

a = a + adc_0

b = b + adc_1

e = e + adc_2

WaitMs 100

Adcin 0, adc_0

Adcin 1, adc_1

Adcin 2, adc_2

a = a + adc_0

b = b + adc_1

e = e + adc_2

WaitMs 100

Adcin 0, adc_0

Adcin 1, adc_1

Adcin 2, adc_2

a = a + adc_0

b = b + adc_1

e = e + adc_2

 

a = a / 30

b = b / 30

e = e / 6

 

 

Lcdcmdout LcdClear

Lcdout 2, #a, 3, 2, #b

 

Lcdcmdout LcdLine2Home

Lcdout 3, 0, #e, 4, 3, 3, 1

 

If a < 40 Then

RC3 = 1

Endif

 

If a > 40 Then

RC3 = 0

Endif

 

a = a - a

b = b - b

e = e - e

WaitMs 100

 

Goto loop

End           

 

Como simple aficionado sin preparación oficial en electrónica o programación, me  vi  en la  necesidad  de encontrar un código para generar caracteres especiales para este tipo de LCD, y sobre todo para el único compilador que se utilizar PICSIMULATOR IDE, y encontré pistas en la pagina http://infotronikblog.blogspot.mx/2009/11/caracteres-especiales-lcd.html

 

Me fascino la facilidad en la que se puede crear figuras para matriz de caracteres ser 5x8 puntos, y la simplicidad con que se graban en la GRAM del LCD.

 

Evaluación

.

“Caracteres especiales LCD

Aquí tenéis un sencillo tutorial sobre la creación de nuevos caracteres o símbolos en Displays alfanuméricos.
Estos LCDs tienen normalmente un controlador HD44780 o compatible y se componen de una matriz de 5 píxeles horizontales por 8 verticales por carácter. En su memoria CGRAM puede almacenar hasta 8 nuevos caracteres.

La aplicación de símbolos es muy utilizada para crear animaciones o en indicadores de estado, como podría ser el triángulo para Play, cuadrado para Stop, símbolo de batería, etc...

Esta matriz con cuadros nos ayudara a calcular los Bytes necesarios para crear un carácter o símbolo nuevo.

Los cuadrados coloreados en negro se suman de manera horizontal para formar una linea,
y cada linea se suma independientemente.
Ahora solo nos falta enviar la información al microcontrolador de la siguiente manera:

Lcddefchar 0, 0, 10, 31, 31, 31, 14, 4, 0”

 

*Retomado  de   http://infotronikblog.blogspot.mx/2009/11/caracteres-especiales-lcd.html

 

La  memoria  interna del  LCD  tiene  espacio para  8  caracteres    diseñados  por  uno mismo,   y  con el  comando Lcddefchar   se  define   en qué  posición   se   almacenará.

 

Por  ejemplo  un  en la  posición  1  un  recuadro  completamente  negro se  genera  con el  código

 

Lcddefchar 1, 31, 31, 31, 31, 31, 31,31, 31

 

Y  lo  proyectamos  como:

Lcdout 1


Con   algunas  fórmulas  en  Excel  se puede   hacer  una  plantilla   para  dibujar manualmente  los   caracteres, y  generar  la  secuencia  de   números  para  pegarla   después  de  Lcddefchar 0,  en  el Basic  compiler  del Pic  simulator IDE.

 

En mi plantilla,   solo   hay que  escribir   un “8” en cada   casilla  para que  se   vuelva  negra la celda.   Lo  comparto  en: https://www.dropbox.com/s/z05nnalvrdvrp71/Hacer%20caracteres%20%20para%20%20lcd.xlsx


Notas

.

Créditos

Autor: Joel Yañez

Fecha de publicación : 2013-02-12 00:00:00


Responsive image