martes, 11 de diciembre de 2012

Tutorial: Arduino + Display LCD Grafico 128x64

Este modelo de LCD es el más asequible encontrado hasta la fecha , más contando con que soporta conexión en modo serie ( SPI ).

- 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.

- 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/
#./create_release.sh
...
#cd arduino-1.0-linux/arduino-1.0/libraries
#unzip u8glib_arduino_v1.09pre11.zip
- Abrir el example de U8glib en Arduino

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:







lunes, 3 de diciembre de 2012

PCB made in China

Hacía tiempo que quería enviar a fabricar unas PCBs a una empresa profesional para ver los resultados y comparar precios, tiempos y resultados, después de una espera de unos 30 días aquí están las correspondientes fotos.

- Empresa MakePCB http://www.makepcb.com/

  • Tamaño de la PCB : 85,9 x 21,1
  • Numero de items : 15
  • Tiempo de producción: standard 15 días
  • Tiempo de envío:20 días
  • Precio total: 40,2€
- Fotos varias




El diseño enviado es una placa Jeenode V6 facilitada por Jeelabs

Los resultados son totalmente profesionales, estañado en oro químico, corte de placas con V-score, máscara de soldadura en ambas caras y serigrafía.

Al menos los resultados iniciales son totalmente satisfactorios, tanto en calidad como en precio, el más barato encontrado hasta la fecha.

Pruebas reales con prototipo completo en breve...