LCD texto subrayado

OK, ahora tengo un poco mas de tiempo para esto.

Ya que existe este thread, no es mala idea dedicarle mas tiempo a informar mejor como funciona un Serial-LCD.
Me imagino que Alonso no va a tomarse todo este trabajo para subrayar texto, pero es importante que futuros miembros de Arduino en el foro en Español sepan que si es posible generar caracteres pre-determinados via Serial-LCD.

La comunicacion via Serial es otro modo de comunicacion, asique siempre y cuando tu LCD tenga la opcion de escribir en su memoria (como la mayoria lo tienen), va a ser posible crear caracteres pre-definidos.
Es la manera en que te comunicas con tu LCD la unica diferencia ("lcd.print();" vs "serial.print();").
Un poco de Google (tu mejor amigo), y encontraras un monton de ejemplos de proyectos con Serial-LCD's generando graficos pre-determinados.

Como funciona un Serial-LCD
Un Serial-LCD esta compuesto de un modulo standard LCD conectado a un controlador PIC que traduce todos los comandos a I2C, SPI o RS232/TTL.

El modo de 3 cables es similar a Serial LCD, solo que utiliza otras librerias.

Comunicacion via Serial al LCD
Cuando te comunicas a un LCD, los parametros basicos son E(enable), W(write), DB4-DB7(4-Bits), DB0-DB7(8-Bits).
Esos comandos son los mismos en Serial-LCD, solo cambia la forma en que los comandos son enviados. Solo tienes que "traducir" los comandos a 8-bits o 4-bits.
Por lo tanto, todas las caracteristicas de tu LCD nunca se pierden, como blink, wrap, custom_char, etc.

Creando caracteres especiales (Proof of concept)

Ejemplos:
-Esta es una forma muy creativa de escribir graficos via Serial-LCD..
Este metodo podria aplicarse al problema original de este post, pero es complicarse mucho la vida.... Aunque vale la pena intentarlo.

Nisiquiera utiliza la libreria de Serial, y ha creado una manera directa de enviar informacion al LCD. Creo que este ejemplo es brillante.
Para modificar este codigo a tu LCD, hay que modificar parametros en el timming.

Esta tarde estuve probando con Shift Registers, porque de hecho es parte de uno de mis proyectos y estos son los resultados:

Como comente anteriormente la manera de transmitir datos son diferentes, pero el mismo concepto.

Les debo un codigo que funcione con Serial, pero si quieren adelantarse solo tienen que buscar en Google "Serial LCD custom characters", y van a aparecer varios ejemplos.

Lo que no encontre son ejemplos especificos, pero mas que nada gente resolviendo pequeños problemas de codigo, mas que nada para otros controladores que de todas maneras son compatibles con el ambiente de Arduino, y otro ejemplo en Arduino.
El tema es que es posible, pero la verdad es que no existe mucho material exclusivo para Arduino, asique no es mala idea armar un ejemplo con todo el codigo para aprender mejor exclusivamente para Arduino.
Lo dejo en mi "TO DO List" ya que no tengo un Serial LCD a mano, pero hay bastante material en pequeños pedazos que muestran que es posible.

En resumen. Si se puede.