Archivos Mensuales: octubre 2013

Pantalla LCD

Antes de empezar este post, he de advertir lo siguiente:

  • Hay “LCDKeypad Shield” que vienen defectuosos debido a que el potenciómetro que gradúa la intensidad de la pantalla esta mal. La solución es bien fácil, basta con sustituirlo por otro de característica similares (10k).
  • Hay que verificar cuales son los pines de “rs”, “enable”, “d4”, “d5”, “d6” y “d7” en los ejemplos de Arduino son “12, 11, 5, 4, 3 y 2” pero en el que yo compré eran “8, 9, 4, 5, 6, 7”.
  • Hay placas que les faltan la resistencia limitadora del transistor de iluminación de pantalla y producen un sobrecalentamiento en el integrado, pudiendo destruirlo. Consumos superiores a 85 mA, hay que mirarlo (la mía consume 45mA).
  • Hay placas que les falta el led PWR (la mía).

La conclusión que hay que sacar es la siguiente: cuidado al comprar y donde se compra, el riesgo existe.

Biblioteca LiquidCrystal

Biblioteca que permite controlar una pantallas LCD basada en el Hitachi HD44780 o compatibles. La biblioteca trabaja en modo 4 u 8 líneas de datos. 

LiquidCrystal ()

Descripción

Crea una variable de tipo LiquidCrystal . La pantalla se puede controlar por medio de 4 u 8 líneas de datos. En el primer caso, hay que omitir los pines del D0 a D3 y dejar las líneas desconectadas. El pin RW puede ser puesto a la tierra en vez de conectado a un pin de la placa Arduino, y si es así, omitirlo en los parámetros de esta función.

Sintaxis

LiquidCrystal (rs, enable, d4, d5, d6, d7)

LiquidCrystal (rs, rw, enable, d4, d5, d6, d7)

LiquidCrystal (rs, enable, d0, d1, d2, d3, d4, d5, d6, d7)

LiquidCrystal (rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)

Parámetros

rs: es el número del pin de Arduino que está conectado a la patilla RS en la pantalla LCD

rw: es el número del pin de Arduino que está conectado a la patilla RW en la pantalla LCD ( opcional )

enable: el número del pin de Arduino que está conectado a la patilla de habilitación en la pantalla LCD

d0, d1, d2, d3, d4, d5, d6, d7: Números de los pines de Arduino que están conectados a los pines de datos correspondientes en la pantalla LCD. La línea de datos d0, d1, d2 y d3 son opcionales, si se omite, la pantalla LCD se puede controlar utilizando sólo las cuatro líneas de datos d4, d5, d6, d7.  

begin ()

Descripción

Especifica las dimensiones (anchura y altura) de la pantalla.

Sintaxis

lcd.begin (columnas, filas)

Parámetros

lcd: variable de tipo LiquidCrystal

columnas: es el número de columnas que tiene la pantalla.

filas: es el número de filas que tiene la pantalla.

clear ()

Descripción

Borra la pantalla LCD y posiciona el cursor en la esquina superior izquierda.

Sintaxis

lcd.clear ()

Parámetros

lcd: variable de tipo LiquidCrystal

setCursor ()

Descripción

Coloca el cursor en la posición en la que se mostrará el texto siguiente escrito a la pantalla LCD.

Sintaxis

lcd.setCursor (columna, fila)

Parámetros

lcd: variable de tipo LiquidCrystal

columna: es la posición del cursor respecto a la columna (siendo 0 la primera columna).

fila: es la fila en la que colocar el cursor (siendo 0 la primera fila). 

print ()

Descripción

Imprime el texto a la pantalla LCD.

Sintaxis

lcd.print (datos)

lcd.print (datos, base)

Parámetros

lcd: variable de tipo LiquidCrystal

datos: datos para imprimir (char, byte, int, long o string)

base(opcional): la base en la que imprimir el números: BIN para binario (base 2), DEC para  decimal (base 10), OCT para octal (base 8), HEX para hexadecimal (base 16).

Devuelve

byte
print () devolverá el número de bytes escritos. 

write ()

Descripción

Imprime un carácter en la pantalla LCD.

Sintaxis

lcd.write (datos)

Parámetros

lcd: variable de tipo LiquidCrystal

datos: caracter para imprimir en la pantalla 

Devuelve

byte
write () devolverá el número de bytes escritos. 
 

cursor ()

Descripción

Muestra el cursor del LCD: un guión bajo (línea) en la posición en que se escribirá el siguiente carácter.

Sintaxis

lcd.cursor ()

Parámetros

lcd: variable de tipo LiquidCrystal

noCursor ()

Descripción

Oculta el cursor LCD.

Sintaxis

lcd.noCursor ()

Parámetros

lcd: una variable de tipo LiquidCrystal

blink ()

Descripción

Muestra el cursor LCD parpadeando. Si se utiliza en combinación con la función cursor(), el resultado dependerá de la pantalla en particular.

Sintaxis

lcd.blink ()

Parámetros

lcd: variable de tipo LiquidCrystal  

noBlink ()

Descripción

Desactiva el parpadea del cursor LCD.

Sintaxis

lcd.noBlink ()

Parámetros

lcd: una variable de tipo LiquidCrystal

display ()

Descripción

Enciende la pantalla LCD, después de haber sido apagados con nodisplay(). Esto restaurará el texto y cursor que estaba en la pantalla.

Sintaxis

lcd.display ()

Parámetros

lcd: variable de tipo LiquidCrystal 

nodisplay ()

Descripción

Apaga la pantalla LCD, sin perder el texto que se muestra actualmente en él.

Sintaxis

lcd.nodisplay ()

Parámetros

lcd: variable de tipo LiquidCrystal 

scrollDisplayLeft ()

Descripción

Desplaza el contenido de la pantalla (texto y cursor) un espacio hacia la izquierda.

Sintaxis

lcd.scrollDisplayLeft ()

Parámetros

lcd: variable de tipo LiquidCrystal 

scrollDisplayRight ()

Descripción

Desplaza el contenido de la pantalla (texto y cursor) un espacio a la derecha.

Sintaxis

lcd.scrollDisplayRight ()

Parámetros

lcd: variable de tipo LiquidCrystal

LeftToRight ()

Descripción

Defina la dirección para el texto escrito en la pantalla LCD de izquierda a derecha, el valor predeterminado. Esto significa que los caracteres escritos posteriores en la pantalla irán de izquierda a derecha, pero no afecta al texto previamente escrito.

Sintaxis

lcd.LeftToRight ()

Parámetros

lcd: variable de tipo LiquidCrystal

RightToLeft ()

Descripción

Defina la dirección para el texto escrito en la pantalla LCD de derecha a izquierda (por defecto es de izquierda a derecha). Esto significa que los caracteres escritos posteriores en la pantalla lo harán de derecha a izquierda, pero no afecta al texto previamente escrito.

Sintaxis

lcd.RightToLeft ()

Parámetros

lcd: variable de tipo LiquidCrystal 

createChar ()

Descripción

Crea un caracter personalizado para su uso en la pantalla LCD. Hasta un máximo de ocho caracteres de 5×8 píxeles son compatibles numerados del 0 al 7. La aparición de cada carácter personalizado se especifica por una serie de ocho bytes, uno para cada fila. Los cinco bits menos significativos de cada byte determinan los píxeles en esa fila. Para mostrar un carácter personalizado en la pantalla, hay que utilizar la función write(número).

Nota: Cuando se hace referencia caracter personalizado “0”, si no es en una variable, es necesario declararlo como un byte, de lo contrario el compilador genera un error.

Sintaxis

lcd.createChar (numero, datos)

Parámetros

lcd: variable de tipo LiquidCrystal.

numero: carácter que se va a crear (0-7).

datos: datos de píxeles del carácter.

Esquema Eléctrico:

Pantalla_LCD

Esquema Práctico:

Pantalla_LCD_bb

Código del Programa:

Codigo_LCD

Fotos:

HolaMundo_LCD

Inicio del Programa

HolaMundo_LCD_Ar

Pulsando arriba, se enciende la pantalla

HolaMundo_LCD_Iz

Pulsando Izquierda, realiza un scroll a la izquierda

Código fuente:

Pantalla_LCD.ino

Ficha del Proyecto:

Pantalla_LCD_Ficha_18

Vídeo resumen:

 

 

Anuncios

Medir Distancias II

Coche Evita Obstáculos

Ahora nos toca juntar anteriores (coche, medidor de distancias, etc) y realizar un proyecto que lo que realizamos es una lectura de distancias y dependiendo lo cerca que está el obstáculo, realizamos un movimiento de esquivo. La verdad es que el principio es básico, avanzo hasta que encuentro algo que me lo impide y cuando lo encuentro “doy media vuelta y me voy por otro lado”

Esquema Eléctrico:

Coche_Evita_Obstaculos_Esquema

Esquema Práctico:

Coche_Evita_Obstaculos_bb

Código del Programa:

Coche_Evita_Obstaculos_Codigo

Fotos:

Coche_Evita_Obstaculos_Arriba

Vista desde arriba

Coche_Evita_Obstaculos_Frente

Como queda de frente.

Coche_Evita_Obstaculos_Detras

Detalle posterior

Código fuente:

Coche_Evita_Obstaculos.ino

Ficha del Proyecto:

Coche_Evita_Obstaculos_Ficha_17

Vídeo resumen: