Sie sind auf Seite 1von 20

INSTITUTO JUAN DE LA CIERVA

INSTITUTO JUAN DE LA CIERVA LCD CON ARDUINO PROGRAMACION DE UN LCD SANTIAGO AREVALO PAZ 2

LCD CON ARDUINO

PROGRAMACION DE UN LCD

SANTIAGO AREVALO PAZ 2 ARI

INSTITUTO JUAN DE LA CIERVA LCD CON ARDUINO PROGRAMACION DE UN LCD SANTIAGO AREVALO PAZ 2

Comunicaciones Industriales

MICROCONTROLADOR ARDUINO

Sencillamente se trata de un microcontrolador que, gracias a su condición de sistema libre, ha provocado multitud de modalidades, existiendo tantas configuraciones posibles como nuestra imaginación sea capaz de crear. Los límites los fijas uno mismo. Gracias a las modificaciones que lleva a cabo en su configuración, que será el encargado de definir qué hará ese microcontrolador.

el encargado de definir qué hará ese microcontrolador. Funciones basicas Existe tres funciones básicas: 1-.
el encargado de definir qué hará ese microcontrolador. Funciones basicas Existe tres funciones básicas: 1-.

Funciones basicas Existe tres funciones básicas:

1-. Tenemos una interfaz de entrada que puede estar conectada directamente a periféricos o bien conectarse a través de puertos a estos.

2-. Con la primera parte conseguiremos trasladar la información hasta nuestro microcontrolador (este será diferente en función de las necesidades de nuestro proyecto).

3-. La interfaz de salida llevará la información hasta los periféricos que harán uso de ella (otra placa, un altavoz, una pantalla…)

Al igual que un Pc en el que tenemos diversos componentes como son el microprocesador, placa base o memoria RAM, Arduino no es sólo una placa sino que se trata de un sistema completo que, podrá ofrecer multitud de variaciones.

SOFTWARE PARA PROGRAMACION EN LENGUAJE C El entorno de desarrollo integrado (IDE) se puede bajar

SOFTWARE PARA PROGRAMACION EN LENGUAJE C

El entorno de desarrollo integrado (IDE) se puede bajar desde la página de Arduino y se puede distingue las partes que lo constituyen. El área de edición de código es donde se escribirá el código del software que se requiere. Es sencillo visualmente y tiene ciertas características que usted debe descubrir mediante su uso. Normalmente, en la jerga de Arduino, aquí se crea el “sketch” (código fuente).

Una sección importante es el área de mensajes, en donde el compilador le informa posibles errores en el código. Además, en esta área, la placa arduino puede enviar información acerca de su estado, según como sea programado.

Además, en esta área, la placa arduino puede enviar información acerca de su estado, según como

CONEXIÓN DE LA PLACA AL COMPUTADOR Cada kit Sparkfun dispone de un cable USB para poder conectar la placa a un computador, tal como se muestra en la figuras.

la placa a un computador, tal como se muestra en la figuras. del computador le puede
la placa a un computador, tal como se muestra en la figuras. del computador le puede

del

computador le puede solicitar los drivers para poder acceder a la placa.

Si el menú Herramientas - Puerta Serial, no está habilitada, debe seguir

página

las

Cuando conecte ambos

elementos,

el

sistema

operativo

instrucciones

de

la

FORMA DE PROGRAMAR ARDUINO

El código que se debe escribir en el IDE de arduino debe tener cierta estructura, la que se indica en la figura.

debe tener cierta estructura, la que se indica en la figura. En la primera sección (Declaraciones

En la primera sección (Declaraciones Globales), se deben poner las bibliotecas específicas que se utilizarán (ninguna en el código de ejemplo) y las variables globales que se utilizarán (pinLed en este

caso). Este bloque se ejecuta una sola vez y bajo cualquier de los siguientes eventos:

Encendido de la placa.

Después de un reset.

Después de cargar un programa desde el computador.

La función setup(): se ejecuta después de la sección anterior y por una sola vez. Se utiliza para configurar el hardware que se utilizará. En el ejemplo, se inicializa el pin 10 como salida.

La función loop(): por otro lado, se ejecuta después de la función anterior, de forma “perpetua”, a una tasa de repetición muy cercana a la velocidad de trabajo de la placa, dependiendo de la cantidad de instrucciones que tenga.

dependiendo de la cantidad de instrucciones que tenga. PRACTICA LCD PROGRAMACION EN LENGUAJE C DE UNA

PRACTICA LCD

PROGRAMACION EN LENGUAJE C DE UNA LCD POR MEDIO DEL MICROCONTROLADOR ARDUINO

INTRODUCCION

Pantalla LCD (Liquid Crystal Display) es un módulo de visualización electrónica y encontrar una amplia gama de aplicaciones. Una pantalla LCD de 16x2 es un módulo muy básico y es muy utilizado en diversos dispositivos y circuitos. Estos módulos se prefieren más de siete

segmentos y otro segmento de múltiples LED s. Las razones son: las pantallas LCD son económicos; fácilmente programables; no tienen limitación de visualización especiales y aun personajes personalizados (a diferencia de en siete segmentos), animaciones y demás.

(a diferencia de en siete segmentos), animaciones y demás. Un LCD 16x2 significa que puede mostrar

Un LCD 16x2 significa que puede mostrar 16 caracteres por línea y hay 2 tales líneas. En este LCD cada personaje se muestra en la matriz de píxeles 5x7. Este LCD tiene dos registros, es decir, del sistema y de datos.

El registro de comando almacena las instrucciones de comandos dados a la pantalla LCD. Un comando es una instrucción dada a LCD para hacer una tarea predefinida como inicializarlo, despejando su pantalla, ajustar la posición del cursor, el control de pantalla, etc. Las tiendas de registro de datos los datos que se muestran en la pantalla LCD. Los datos son el valor ASCII del carácter que se mostrará en la pantalla LCD.

DESCRIPCION

Este apartado está destinado a una breve descripción del funcionamiento del módulo LCD incluido en el sistema de evaluación EasyPIC.

Las pantallas de cristal líquido LCD o display LCD para mensajes (Liquid Cristal Display) tienen la capacidad de mostrar cualquier carácter alfanumérico, permitiendo representar la información que genera cualquier equipo electrónico de una forma fácil y económica.

La pantalla consta de una matriz de caracteres (normalmente de 5x7 o 5x8 puntos) distribuidos en una, dos, tres o cuatro líneas de 16 hasta 40 caracteres cada línea.

El proceso de visualización es gobernado por un microcontrolador incorporado a la pantalla, siendo el Hitachi 44780 el modelo de controlador más utilizado.

el Hitachi 44780 el modelo de controlador más utilizado. Figura 1. LCD 2x16: está compuesto por

Figura 1. LCD 2x16: está compuesto por 2 líneas de 16 caracteres

1. LCD 2x16: está compuesto por 2 líneas de 16 caracteres Figura 2. LCD 4x40: está

Figura 2. LCD 4x40: está compuesto por 4 líneas de 40 caracteres

A continuación se presenta la descripción de señales empleadas por el módulo LCD así como el número de patilla a la que corresponden.

LCD así como el número de patilla a la que corresponden. CARACTERISTICAS Las siguientes: características generales

CARACTERISTICAS

Las

siguientes:

características

generales

de

un

módulo

LCD

16x2

son

las

Consumo muy reducido, del orden de 7.5Mw

Pantalla de caracteres ASCII, además de los caracteres japoneses Kanji, caracteres griegos y símbolos matemáticos.

Desplazamiento de los caracteres hacia la izquierda o a la derecha

Memoria de 40 caracteres por línea de pantalla, visualizándose 16 caracteres por línea

Movimiento del cursor y cambio de su aspecto

Permite que el usuario pueda programar 8 caracteres

Pueden ser gobernados de 2 formas principales:

o

Conexión con bus de 4 bits

o

Conexión con bus de 8 bits

El módulo LCD posee una zona de memoria RAM llamada DDRAM (Data Display RAM) donde se almacenan los caracteres que se van a mostrar en la pantalla. Tiene una capacidad de 80 bytes, 40 por cada

línea, de los cuales sólo 32 se pueden visualizar a la vez (16 bytes por línea).

De las 80 posibles, las dos direcciones más importantes de la DDRAM son:

Dirección 00h, que es el comienzo de la primera línea

Dirección 40h, que el comienzo de la segunda línea

FUNCIONAMIENTO

El LCD tiene 3 modos de funcionamiento principales:

Modo Comando

Modo Carácter o Dato

Modo de lectura del Busy Flag o LCD Ocupada

DIAGRAMA DE CONECCION

Consisten en diferentes códigos que se introducen a través del bus de datos del módulo LCD.

DIAGRAMA DE CONECCION Consisten en diferentes códigos que se introducen a través del bus de datos

DATASHEET

DATASHEET

CROQUIS DE LAS CONECCIONES DE LA PRACTICAº

CROQUIS DE LAS CONECCIONES DE LA PRACTICAº INSTRUCCIONES DE LA PROGRAMACION librería LiquidCrystal() Lo primero que
CROQUIS DE LAS CONECCIONES DE LA PRACTICAº INSTRUCCIONES DE LA PROGRAMACION librería LiquidCrystal() Lo primero que

INSTRUCCIONES DE LA PROGRAMACION

librería LiquidCrystal()

Lo primero que debemos hacer para poder utilizar las pantallas LCD compatibles con la librería "liquidcrystal" es declarar una variable global de tipo -liquidcrystal- La cuál representará dentro de nuestro skeecht el objeto LCD que queremos controlar. La declaración se ha de realizar con la siguiente sintaxsis:

Nombre de la pantalla (LCD)

1º rs

2º rw

3º enable desde d0 a d7

Donde todos los parámetros específicados en realidad son valores numéricos que representan

RS el nº de la placa de arduino conectado al pin RS de la LCD

RW es el pin rw de la LCD

Enable de la LCD se conecta a Enable de la placa

Desde d0 a d7 son los números de los pines de la placa arduino conectados a los pines de datos de la LCD.

lcd.begin () Especifica las dimensiones de la pantalla (16 columnas y 2 filas)

lcd.write () escribe un caracter en la pantalla

lcd.print () escribe un dato de cualquier tipo en la pantalla

lcd.clear () borra la pantalla y posiciona el cursor en la posición superior izquierda para escribir el próximo texto.

lcd.home () posiciona el cursor en la esquina sup. izq.

lcd.setCursor () posiciona el cursor en las posiciones designadas

lcd.scrolldisplay () desplaza el contenido de la pantalla hacia la izquierda o la derecha

lcd.autoscroll () activa el desplazamiento automático del texto en la pantalla

P.D.:

Os

dejo

el

enlace

a

la

página

oficial

https://www.arduino.cc/en/Reference/LiquidCrystal consultéis por si no os fiáis de lo que nos da él.

para

que

PROGRAMACIÓN EN C PARA UNA LCD

EJERCICIO 1 UBICACIÓN DEL CURSOR

// FILA 1: QUE TAL

// FILa 2: milSEGUNDOS DESDE INICIO DEL PROGRAMAS;5016

// ESPERA 2S (DELAY 2000) Y SE BORRA.

// Y SE VUELVE A ENVIAR UNA NUEVA PALABRA.

// FUNCIONA BIEN. JUGAR CON LA LIBRERIA

// APARECEN 2 COLUMNAS Y 2 FILAS

#include <LiquidCrystal.h>

LiquidCrystal lcd (12,11,5,4,3,2);

int luzfondo= 13;

void setup() {

// put your setup code here, to run once:

pinMode (luzfondo, OUTPUT);

digitalWrite (luzfondo, HIGH);

lcd.begin (16,2);

lcd.setCursor (8,0); // SITUA EN COLUMNA: 8 Y FILA:0 LA 1ª

lcd.print ("QUE TAL");

delay (5000);

lcd.setCursor (0,1); // SITUA EN COLUMNA: 0 Y FILA:1 LA 2ª

lcd.print (millis ());

}

void loop()

{

// put your main code here, to run repeatedly:

}

EJERCICIO 2 UBICACIÓN DEL CURSOR

// EN SERIAL MUESTRA DISTANCIA 0 CM

//POSICION SENSOR: FIJO Y HORIZONTAL LETRAS SE LEEN NORMAL.

// SI SE QUITA LA TIERRA MIDE 173 CM EN SERIAL

// 5 V: VCC

// GND: GND

// 3: TRIG

//2: ECHO

// 9: led

// SERIAL DA DISTANCIA CUANDO SE ENCIENDE O APAGA INTERRUPTOR DE TIERRA.

//

LED SE ENCIENDE Y APAGA.

#include <LiquidCrystal.h>

const int nLecturas = 10;

int lecturas [nLecturas];

int indice= 0;

int total= 0;

int media= 0;

unsigned long tiempo=0;

unsigned long distancia=0;

LiquidCrystal lcd (12,11,5,4,3,2);

int luzfondo= 13;

void setup() {

// put your setup code here, to run once:

pinMode (luzfondo, OUTPUT);

digitalWrite (luzfondo, HIGH);

lcd.begin (16,2);

pinMode (6, OUTPUT); //led

pinMode (7, INPUT); //echo

pinMode (8, OUTPUT); //trigger

for(int i=0; i<nLecturas; i++)

{

lecturas [nLecturas]= 0;

}

Serial.begin (9600);

}

void loop() {

// put your main code here, to run repeatedly:

lcd.setCursor (0,0);

lcd.print ("Distancia");

lcd.print (distancia);

lcd.print ("cm");

digitalWrite (8,LOW);

delayMicroseconds (5);

digitalWrite (8,HIGH);

delayMicroseconds (10);

digitalWrite (8,LOW);

tiempo = pulseIn (7, HIGH);

distancia= 0.017*tiempo;

Serial.print ("Distancia: ");

Serial.print (distancia);

Serial.println ("cm");

total= total - lecturas [indice];

lecturas [indice]= distancia;

indice= indice+1;

if (indice >= nLecturas)

{

indice=0;

}

media = total/ nLecturas;

if (media<255)

{

analogWrite (6, 255-media);

}

delay (100);

}

EJERCICIO 3 UBICACIÓN DEL CURSOR

// LAS PALABRAS QUE SE ENVIAN DESDE EL SERIAL SE LEEN EN LA LCD.

// ESPERA 2S (DELAY 2000) Y SE BORRA.

// Y SE VUELVE A ENVIAR UNA NUEVA PALABRA.

// FUNCIONA BIEN. JUGAR CON LA LIBRERIA

// APARECEN 2 COLUMNAS Y 2 FILAS

#include <LiquidCrystal.h>

LiquidCrystal lcd (12,11,5,4,3,2);

int luzfondo= 13;

void setup() {

// put your setup code here, to run once:

pinMode (luzfondo, OUTPUT);

digitalWrite (luzfondo, HIGH);

lcd.begin (20,4);

Serial.begin (9600);

}

void loop() {

// put your main code here, to run repeatedly:

if (Serial.available ()>0);

{

delay (2000);

lcd.clear ();

while (Serial.available ()>0)

{

lcd.write (Serial.read());

}

}

}