Anda di halaman 1dari 8

DEPARTAMENTO DE CIENCIAS DE LA ENERGIA Y MECANICA

DISEO ELECTRONICO

TRABAJO PREPARATORIO
LABORATORIO No. 2.1

GUA DE PRCTICA No. 2.1


Tema:

Prueba de LCD para desplegar men del Dosificador


de alimento de comida para canes.

Realizado por:
Pazmio Ren
Gonzalez Diego
Hualpa Fernando
1. Objetivos:

Disear un circuito con display para mostrar el men de las diferentes


opciones del dosificador de alimento de comida para canes.
Comprobar la precisin de los datos.
Comparar resultados calculados, simulados y medidos.

2. Materiales y Equipos.
Materiales:
Resistencias (de acuerdo al circuito de acondicionamiento)
Cables
Protoboard
Display 16x2
Arduino
Herramientas:
Multmetro

Fuente
Computador
Arduino

3. Procedimiento
3.1

Disear, simular y armar el circuito que permita motrar los datos


obtenidos en el dosificador de alimento de comida para canes.
El diseo del LCD esta implementado para mostrar datos como los son:
Seleccin de tipo de raza sea: Pequea, Mediana y Grande.
Y Guardar en memoria cada seleccin.

Ilustracin 1 Diseo del LCD

Proceso para la seleccin de razas

Ilustracin 2 Ejecucion de los primeros parametros

Ilustracin 3 Seleccion de Razas

Ilustracin 4 Selecion de razas

Ilustracin 5 Etiquetar Razas

Programacin en Arduino
LCD 16x2 - Menu
-------------------------------------La LCD que vamos a utilizar es de caracteres (16x2) esto corresponde
a 16 columnas y 2 filas y funciona gracias a un Hitachi HD44780 driver.
En este tutorial vamos a hacer un Menu para controlar salidas leer
entradas e imprimir Anuncios.
El circuito:
* LCD RS pin va conectado al digital pin 12
* LCD Enable pin conectado al digital pin 11
* LCD D4 pin conectado al digital pin 5

* LCD D5 pin conectado al digital pin 4


* LCD D6 pin conectado al digital pin 3
* LCD D7 pin conectado al digital pin 2
* LCD R/W pin conectado a ground
* los dos ultimos a +5V and ground
* El cable de la LCD VO va conectado a la referencia del potenciometro
*/
//int menu;
//byte selec;
int salida; //Conexion led, buzzer.
int Raza;
//int cont=0;
//int fotocelda;
//Conexion Fotocelda
//String AnuncioMenu;
//Anuncio de impresion LCD
//Funciones
int Entrada_Raza(); //Funcion Estado de las salidas
int Edad();
//Funcion para visualizar Mensaje
int Hora();
//Funcion para visualizar el Menu
#include <LiquidCrystal.h>
//incluimos la libreria LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//inicializamos los pines
//-----------------------------------//Funcion principal
//-----------------------------------void setup() {
pinMode (13,OUTPUT);
pinMode (6,OUTPUT);
lcd.begin (16, 2);
digitalWrite(14,HIGH);
digitalWrite(15,HIGH);

//Led como salida


//Buzzer como salida
//Configuramos el tamao de la LCD
//Resistancia de PullUp A0 pulsador
//Resistancia de PullUp A1 pulsador

}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() {
// menu = analogRead (0);
//iguardamos la posicion del potencio
//menu = map(menu,0,1023,0,3);
//Escalamos el valor para que sea
Menu
Raza=Entrada_Raza();
lcd.setCursor(1, 1);

lcd.print(Raza);
delay(1000);
lcd.clear();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
int Entrada_Raza() {
//Funcion de valoracion ON/OFF salidas
byte guardar = 0;
int cont=1;
byte selec=0;
lcd.setCursor(1, 0);
lcd.print("Tipo de Raza");
lcd.setCursor(1, 1);
//Asignamos la posicion de impresion
lcd.print(">");
lcd.setCursor(2, 1);
//Asignamos la posicion de impresion
lcd.print("Pequena");
while(guardar == 0)
{
guardar = digitalRead (15);
if(guardar != HIGH)
{
guardar=0;
}
selec = digitalRead (14);
if(selec == HIGH)
{
cont=cont+1;
selec = digitalRead (14);
if (cont == 4)
{
cont=1;
}
while(selec == HIGH)
{
selec = digitalRead (14);
digitalWrite(13,HIGH);
//lcd.setCursor(5, 1);
//lcd.print(cont);
}
digitalWrite(13,LOW);
}
switch (cont) {
case 1 :

//Valoramos el estadp del Menu


//si el valor de escala es igual a 0:

lcd.setCursor(1, 1);
//Asignamos la posicion de impresion
lcd.print(">");
lcd.setCursor(2, 1);
//Asignamos la posicion de impresion
lcd.print("Pequena ");
break;
//Retorno
case 2 :
//si el valor de escala es igual a 1:
lcd.setCursor(1, 1);
//Asignamos la posicion de impresion
lcd.print(">");
lcd.setCursor(2, 1);
//Asignamos la posicion de impresion
lcd.print("Mediana ");
break;
//Retorno
case 3 :
//si el valor de escala es igual a 2:
lcd.setCursor(1, 1);
//Asignamos la posicion de impresion
lcd.print(">");
lcd.setCursor(2, 1);
//Asignamos la posicion de impresion
lcd.print("Grande ");
break;
//Retorno
}
delay(300);
//lcd.clear();
}return cont;

//Retardo entre impresiones


//Borramos todo de la pantalla

4. Conclusiones y Recomendaciones.

El diseo implementado funciona a los parmetros requeridos por el usuario,


en todas sus caractersticas.
Se recomienda primeramente, el reinicio del arduino y la buena
implementacin del circuito, ya que puede generar errores en la ejecucin del
programa.
Se debe tener en cuenta estar bien polarizado las tierras ,para no generar
errores en la ejecucin.

5. Bibliografa.

[1] Areny, R. P. (2003). Sensores y acondicionadores de seal. Barcelona:

MARCOMBO S.A.

[2] Gea, J. A. (2003). Tecnologia. Sevilla: Mad, S.L.

[3] Moreno, E. G. (2006). Automatizacin de procesos industriales: robtica y


automtica. Valencia: REPROVAL, S.L.

[4] Prez, E. M. (18 de 11 de 2014). Circuitos acondicionadores. Obtenido de


E.T.S. de Ingenieros de Telecomunicacin de Vigo: http://www.marcombo.com/

Fecha: 2015-01-09

Anda mungkin juga menyukai