Ejemplo de manejo de un display LCD con Netduino


Si desea mostrar una mejor  presentación  superior a hacer  parpadear  LED’s, un módulo LCD es una buena opción dado que es muy fácil  de   programar, y por lo general, también  muy  asequible.

Los LCD’s vienen en diferentes tamaños siendo los mas normales son de 2 filas numéricos ( es decir sólo dígitos) , pero también son frecuentes  recientemente los módulos de  40×4  de matriz de puntos alfanuméricas.  También existen LCD gráficos, que van desde módulos con resoluciones pequeñas (por ejemplo, 122×32 o 240×128 píxeles) a más profesionales pantallas LCD (por ejemplo, 5 “o 7”)

En este post vamos  a usar simplemente LCD alfanuméricos , los  cuales en su mayoría  se construyen alrededor del  famoso  chip de Hitachi  ,  HD44780 o controlador compatible, dado    que lo habitual es que   todos ellos utilizan la misma interfaz.

LCD alfanuméricos se controlan mediante un puerto paralelo de 8 bits, y algunos hilos mas para control (que controlan la transferencia de datos a través del puerto paralelo), pines para controlar el contraste y luz de fondo (si  le quedan puertos disponibles), y  por supuesto ,  los dos hilos para alimentación y tierra.

En la siguinte tabla podemos ver un ejemplo de configuracion para controlar un display  LCD,  con los bit de  salida completos:

 

LCD Pin Number Symbol Netduino Pin Description
1 VSS GND Ground
2 VDD 5V Logic voltage
3 V0 10K Pot Leg 2 op voltage for LCD. Controls color/contrast
4 RS D12 Register selector
5 R/W GND Low means write, so you can just ground it
6 E D11 Chip enable
7 DB0 D9 Data Bit 0
8 DB1 D8 Data Bit 1
9 DB2 D7 Data Bit 2
10 DB3 D6 Data Bit 3
11 DB4 D5 Data Bit 4
12 DB5 D4 Data Bit 5
13 DB6 D3 Data Bit 6
14 DB7 D2 Data Bit 7
15 LED(+) Resistor to 5V Backlight LED Anode
16 LED(-) Ground Backlight LED Cathode

 

El puerto paralelo también se puede utilizar en el modo de 4 bits, el envío de los datos de 8 bits en dos acciones de escritura,lo cualo ahorra puertos I / O, pero toma más tiempo para actualizar la pantalla LCD.

Hay una excelente biblioteca disponible en CodePlex (con una buena introducción en el blog del autor) para controlar los módulos LCD.

Esta biblioteca hace que muestrar el texto en una pantalla sea  tan fácil como llamar a un método de escritura con la cadena deseada.  Se utiliza un proveedor de patrón para permitir diferentes escenarios de conexión, como conexion directa en los pines GPIO, utilizando un registro de desplazamiento o el uso de un expansor I2C. Además  si usted quiere usar otro escenario, puede añadir su propio proveedor.

lcd

En la imagen se ver un módulo LCD 20×2  conectado directamente a los pines GPIO de un Netduino+ utilizando el puerto paralelo en modo de 4 bits.

Las conexiones se realizan en un circuito, ya que esto hace que sea un poco más fácil de poner todos los cables juntos.

El código de ejemplo proporcionado con la biblioteca contiene un enlace a un esquema muy útil en el sitio web de Arduino.

 

Recuerde conectar la alimentación del módulo LCD al 5V del Netduino pues  la alimentación de 3.3V no es suficiente y  deja en blanco el LCD.

 

La biblioteca contiene un ejemplo sencillo de cómo utilizar la biblioteca.  Se inicializa el LCD, muestra la obligatoria “Hola mundo” y luego entra en un bucle que muestra los milisegundos desde el restablecimiento.Usa los pines GPIO directamente, por lo que hay que cambiar de proveedor como se ve en el ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class Program
{
    public static void Main()
    {
        // create the transfer provider, use direct GPIO provider
        // Initialize the library with the numbers of the interface pins
        // Use wiring shown here http://arduino.cc/en/uploads/Tutorial/lcd_schem.png
        var lcdProvider = new GpioLcdTransferProvider(Pins.GPIO_PIN_D12,    // RS
                                                        Pins.GPIO_PIN_D11,    // ENABLE
                                                        Pins.GPIO_PIN_D5,     // D4
                                                        Pins.GPIO_PIN_D4,     // D5
                                                        Pins.GPIO_PIN_D3,     // D6
                                                        Pins.GPIO_PIN_D2);    // D7
 
        // create the LCD interface
        var lcd = new Lcd(lcdProvider);
 
        // set up the LCD's number of columns and rows: 
        lcd.Begin(20, 2);
 
        // print a message to the LCD.
        lcd.Write("Hello world!");
 
        while (true)
        {
            // set the cursor to the first column on the second line
            lcd.SetCursorPosition(0, 1);
 
            // print the number of milliseconds since reset:
            lcd.Write((Utility.GetMachineTime().Ticks / 10000).ToString());
 
            Thread.Sleep(100);
        }
    }
}

Fuente   aqui

El creador de Arduino se defiende


Cuando se inició el proyecto Arduino, los cinco co-fundadores ( David Cuartielles, David Mellis, Tom Igoe, y Gianluca Martino) decidieron crear una empresa que sería  la propietaria de las marcas comerciales y gestionaría  la parte comercial de Arduino , de modo que los fabricantes construirían  y vendería placas  y  Arduino obtendrían una regalía de ellos como en muchos otros negocios, como en el mundo de la moda.

Esto ocurrió en abril de 2008 cuando Arduino LLC fue fundada y en los estatutos de la empresa se especificó que cada uno de los cinco fundadores transferiría a esta empresa cualquier propiedad de la marca Arduino. A finales de 2008, cuando Arduino estaba a punto de registrar la marca en los EE.UU. y en todo el mundo sin ningún aviso previo, la compañía de Gianluca Smart Projects – el  pricipal fabricante de placas de Arduino – se adelantó y registró el nombre Arduino en Italia y mantuvo esta noticias  oculta por casi dos años.

Después de que el proceso de registro en los EE.UU. había terminado,  el  abogado de los fundadores  trató de extender la marca para el resto del mundo, cuando se dio cuenta de que alguien había registrado ya en Italia.  Gianluca les aseguró que esto se hizo para proteger la  inversión colectiva de los fundadores ..

A medida que el proyecto tubo más éxito y las ventas aumentaron, los intentos de recuperar el control del registro de la marca italiana se hizo más y más difícil con las demandas cada vez mayores que se le  hacían a los fundadores  mientras Gianluca les  vetó efectivamente para otros fabricantes o conseguir cualquier inversión externa. Los fundadores hicieron  progresos con Arduino creando  mucha innovación, empujando los límites de hardware de código abierto, la contratación de un montón de gente con talento de todo el mundo y en última instancia la construcción de una comunidad increíble en todo el sitio web arduino.cc.

Ni que decir tiene, se hizo cada vez más difícil trabajar con un socio que era tan reacio a permitir que cualquier mejora significativa así como la  expansión de la empresa. Trataron  durante mucho tiempo  de reducir el costo de los productos a los clientes, pero las  manos de los fundadores  estaban atadas.

En julio pasado después de otra ronda de conversaciones, y otra solicitud creciente de dinero, los fundadores se vieron obligados a pedir a sus abogados  que empezaran  a enviar cartas a empresas ,  delinear las diferencias y solicitar que la marca fuese devuelta  a sus fundadores.

Hace un año y sin explicación, empresa de fabricación de Gianluca dejó de cooperar con los fundadores y se detuvo de manera unilateral las regalías que pagaban. Así que si la gente compró una placa Arduino fabricado en Italia en el último año pensando que estaban apoyando el proyecto, deben saber que los fundadores  no recibieron ningún dinero por ello a pesar de que han diseñado, documentado, mantenido y apoyado esos productos. (Los otros fabricantes todavía están a nuestro lado.)

En noviembre pasado, SmartProjects nombrado un nuevo director general, el Sr. Musto, quien cambió el nombre a la empresa a Arduino Srl y creó un sitio web llamado “Arduino” copiando los gráficos y el diseño  de los  fundadores , pues  afirma haber inventado Arduino sin mención de los 4 fundadores. Incluso comenzó la impresión de esta nueva URL en todas las nuevas placas.

El colmo llegó hace unas semanas, cuando esta persona  concedió  entrevistas a varios periódicos italianos afirmando ser el nuevo director general de “Arduino” , lo que implica que uno de los fundadores   renunciaba a dedicarme a actividades “no lucrativas”:los fundadares se  quedaron  impactados y respondieron a sus reclamos tratando de mantener el ruido al mínimo y evitar daños en la comunidad y el proyecto, de modo que ahora los asuntos están en manos de los abogados de ambos lados del Atlántico.

Por suerte, Massimo Banzi   hace tres años, empezó a ampliar las formas en que Arduino apoya en sí:  trabajando con grandes empresas para asesorarles sobre cómo construir para la comunidad c participando en proyectos de investigación internacionales, corriendo una tienda en línea muy exitosa, lo cual les  permitió crecer independientemente de venta de las placas.

Massimo Banzi   pensó  que el  hardware se vuelve más y más de un producto, de modo que los modelos de negocios deben evolucionar hacia servicios, plataformas en la nube, la educación, y todo el proceso de ayudar a los responsables políticos son profesionales.

Ahora los fundadores  estan trabajando con los fabricantes de todo el mundo, y estan  lanzando nuevos productos emocionantes en los campos de la educación y la IO. Estan muy tristes de que estas cuestiones se hayan hecho públicas para confundir a la comunidad, pero no han tirado la toalla aún y   siguen  innovando pretendiendo  eguir ampliando las fronteras de hardware abierto como lo han ido  haciendo desde hace 10 años.

Como es habitual  el único santuario de la comunidad Arduino es arduino.cc y se puede ver en day.arduino.cc que la próxima Jornada Arduino el 28 de marzo va a ser un evento mundial increíble en el que van   a desvelar mucho cosas de lo mas interesantes….

Massimo Banzi

MASSIMO BANZI

Massimo Banzi es el co-fundador del proyecto Arduino.Él es un diseñador de interacción, Educador y Open Source Hardware defensor.

 

 

 

 

Fuente  aqui