- display grafico LCD 128x64 displaytech 64128N
- Placa Arduino o similar
- libreria U8glib http://code.google.com/p/u8glib/
- Integrado LCX245 o similar ( 74HC4050, etc) (si usamos 5 voltios)
- Display monocromo
Lo primero y más importante de conocer es que este display se alimenta y usa señales de datos con un voltaje de 3.3v, cualquier intento de conectarlo a 5V puede destruir el display de manera irreversible.
Advertencia!!!: NO vale con conectar la alimentación del display a la salida de 3.3V de Arduino, se tiene que utilizar un conversor de niveles lógicos, o un microcontrolador operando a 3.3V.
Para las pruebas he elegido montar una PCB con un circuito conversor con el chip LCX245, igual que el que venden en esta tienda http://www.nkcelectronics.com/5v-to-33v-logic-level-shifter-bo.html , el esquema es muy simple y se puede configurar para una conversión de A[1-8] a B[1-8], o al contrario.
- Schematic realizado con Eagle
- Imagen de la PCB con el IC LCX245
- Paso importante, para configurar el display para conexion Serie SPI, es necesario soldar el puente J3 de la PCB
- Mapa de Conexiones de Arduino a LCD
- Pin1 > Gnd
- Pin4 > Mosi
- Pin5 > Scl
- Pin 14 > A0
- Pin15 > Rst
- Pin16 > Cs
- Pin17 > 3.3V
- Pin18 > Gnd
- Datos importantes sobre el backlight
Segun la hoja de especificaciones, el LED que ilumina el backlight del LCD tiene un "Voltaje Forward" de 3.2 voltios, y un consumo de 20miliamperios, con lo cual si lo alimentamos a 3.3 voltios se necesitaría una resistencia teórica de 5 ohmios para no fundir el LED.
según el consumo medido con un multímetro durante las pruebas el LED consume sin resistencia alrededor de 10miliamperios a 3.3 voltios, con lo cual antes de conectarlo conviene medir con un polímetro el consumo para no quemar el LED, o ante la duda, usar una resistencia standard de 220ohmios.
Segun la hoja de especificaciones, el LED que ilumina el backlight del LCD tiene un "Voltaje Forward" de 3.2 voltios, y un consumo de 20miliamperios, con lo cual si lo alimentamos a 3.3 voltios se necesitaría una resistencia teórica de 5 ohmios para no fundir el LED.
según el consumo medido con un multímetro durante las pruebas el LED consume sin resistencia alrededor de 10miliamperios a 3.3 voltios, con lo cual antes de conectarlo conviene medir con un polímetro el consumo para no quemar el LED, o ante la duda, usar una resistencia standard de 220ohmios.
- Esquema de cómo quedaría las conexiones en la protoboard
Una vez comprobado que tenemos las conexiones realizadas, es recomendable hacer una segunda comprobación siempre para evitar sorpresas ( por si acaso ).
- Obtener la version de desarrollo de U8glib, NO vale con la release 1.08
#hg clone https://code.google.com/p/u8glib/
destination directory: u8glib
requesting all changes
adding changesets
adding manifests
adding file changes
added 480 changesets with 3151 changes to 572 files
updating to branch default
555 files updated, 0 files merged, 0 files removed, 0 files unresolved
- Crear un fichero .zip de release y descomprimirlo en el directorio "libraries" de Arduino
#cd u8glib/tools/release/arduino/- Abrir el example de U8glib en Arduino
#./create_release.sh
...
#cd arduino-1.0-linux/arduino-1.0/libraries
#unzip u8glib_arduino_v1.09pre11.zip
Archivo->Ejemplos->U8glib->Hello World
Para nuestro display tenemos que crear un constructor especifico (que no viene en la lista del ejemplo)
U8GLIB_64128N u8g(13, 11, 10, 9, 8);
De extrema importancia es la definición del pin extra de RESET, sin el que no funciona este display.
Notas: La definición de contraste viene "hardcoded"en la libreria, pero el valor por defecto es mas que suficiente
- Imagen del nuevo display fondo azul led blanco con el ejemplo GraphicTest
- LCD blanco sobre azul
- LCD negro sobre blanco
Se puede apreciar que el contraste del display con fondo blanco es muy superior al de fondo azul, pero para gustos colores.
Documentacion y referencias: