domingo, 15 de enero de 2017

On/Off y Dimmer con el backlight del LCD y Visualino

Después de la entrada anterior dedicada a este tema, LCD Keypad Shield usando Octopus Bloqs Botonera en Visualino, pensé que sería ideal disponer de una didáctica completa sobre el uso de esta placa para Arduino con Visualino, donde podamos encender y apagar la luz de fondo (backlight) del Display y modificar la luminosidad del mismo usando su propio teclado.


Para no aburrir a nadie, iré a lo práctico, e intentaré describir el programa en Visualino de una forma breve y precisa, detallando esos aspectos que sin ellos esta experiencia sería un fiasco.

En primer lugar, y echando un vistazo a la imagen anterior, en el bloque LCD 2 X 16 (Define LCD), declaramos las patillas del LCD correspondientes al LCD Keypad Shield de Arduino, que como pueden saber no son las mismas que las que trae por defecto el bloque Define LCD de Visualino; así , cambiamos las patillas (Pines del LCD) 11,12, 3, 4, 5 y 6, por las que son preceptivas en el LCD Keypad Shield: 8, 9, 4, 5, 6 y 7.
No olviden hacer la modificación requerida en el archivo roboblocks.js de Visualino para que la botonera responda adecuadamente, y eso sólo se consigue cambiando los valores del array entero adc_key_val[5] tal como se describe en la entrada anterior sobre este tema.
Luego imprimimos en el display unas cadenas de texto (string) en la posición señalada con el bloque LCD: imprimir, by Nacho y Cotidiana Place
Finalmente declaramos las variables enteras necesarias para controlar la luminosidad del display, haciéndolo siempre modificando los valores de la variable ValorLEDdisplay.
En la Botonera de Octopus Bloqs al pulsar la tecla de la derecha (Right) del teclado del LCD Keypad Shield, éste entrega el valor cero en la entrada A0 de Arduino, ya que esta tecla está conectada al negativo dentro del divisor resistivo que conforma el teclado de la placa LCD Keypad Shield, ejecutando así la impresión en el display del string by Nacho y Cotidiana Place, según la disposición establecida en los bloques LCD: Imprimir. El primer LCD: Imprimir sirve para borrar el contenido de la línea 0 (Row 0) antes de imprimir by Nacho, evitando la sobreimpresión con otro contenido impreso anteriormente. No olviden que la botonera responde comparando los valores entregados por el teclado con el array entero adc_key_val[5].



En las dos siguientes opciones de la Botonera, Boton #B y Boton #C, lo único que hacemos es incrementar y decrementar la variable ValorLEDdisplay para que la salida analógica de la patilla 10 (LEDdisplay), donde está conectada la retroalimentación luminosa del Display (backlight), aumente o disminuya la luminosidad en función de su valor. Además, tanto por encima de 255 como por debajo de 0, encontramos dos sentencias condicionales (Bloques Si, Ejecutar) que impiden que el incremento o decremento por encima de 255 o por debajo de 0 se pueda realizar. También disponemos de los bloques LCD: Imprimir para indicar el valor disponible. El bloque Esperar(ms) es un tiempo en milisegundos que usamos para evitar en cierto modo el efecto rebote de las teclas del teclado.


En esta última imagen podemos apreciar los bloques incluidos en los botones Boton #D y Boton #E, que incluyen los que imprimen la acción en el display, en este caso apagar y encender la luz de fondo del Display, y los bloques que aplican en la patilla 10 el valor máximo (255) y mínimo (0) correspondientes al encendido y apagado del la luz de fondo del Display. En el apagado (Backlight OFF) introduje un retardo de 1s para poder visualizar con luz de fondo previamente que la acción de apagado se va a ejecutar.
Podéis bajar desde el siguiente enlace el archivo correspondiente a este programa de Visualino: teclado-analog-2ok.bly
¡Y esto es todo, amigos! Espero que este pequeño granito de arena inspire mucha más en este emergente mundo del conocimiento libre que la tecnología nos permite compartir. 
En el siguiente vídeo tiene la oportunidad, como es tradicional en este blog, de disfrutar de la verdad, porque la verdad se vive, no se enseña.

Muchas gracias.


2 comentarios: