Sunteți pe pagina 1din 9

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


CARRERA DE INGENIERA EN ELECTRNICA Y COMUNICACIONES

MICROPROCESADORES
SPTIMO A
PRCTICA No. 3

TEMA:
Implementacin de los circuitos con teclado, lcd y sensores

INTEGRANTES:
Chiliquinga Cristian
Miranda Jessica
Quintana Galo

FECHA DE ENVO: 30 de noviembre del 2017


FECHA DE ENTREGA: 07 de diciembre del 2017

DOCENTE:
Ing. Edgar Patricio Crdova Crdova

SEPTIEMBRE 2017 / FEBRERO 2017

AMBATO - ECUADOR
I. TEMA

Implementacin de los circuitos con teclado, lcd y sensores


II. OBJETIVOS

a. Objetivo General

Implementar el control de encendido y cambio de giro de un motor DC programado en


Arduino IDE y la aplicacin del teclado matricial con pantalla LCD.

b. Objetivos Especficos

Analizar cada uno de los conceptos sobre programacin en Arduino


Programar el control de encendido e inversin de giro de un motor DC con sensores.
Simular el esquema elctrico del circuito y verificar su funcionamiento.

III. DESARROLLO

1. LM35 CON ARDUINO

DESCRIPCIN

Disear e implementar un circuito de control para el encendido y cambio de giro de un


motor DC.
Temperatura >= 23C Control ON/OFF
P1 Control giro Horario y Anti horario

Adems colocar leds indicadores que permitan identificar si el motor esta encendido en
giro horario o anti horario.
#include <LiquidCrystal.h> Librera para la pantalla LCD

LiquidCrystal lcd(13, 12, 11, 10, 9, 8); Declaracin de pines para el LCD

byte letra[8] = { B01110, B01010, B01110, B10101, B11111, B00100, B01010, B01001 }; declaracin de bytes
byte letra2[8] = { B01110, B01010, B01110, B10101, B01110, B00100, B01010, B10001 }; para la creacin
byte letra3[8] = { B01110, B01010, B01110, B00000, B00000, B00000, B00000, B00000 }; de caracteres

float valor, temperatura; Declaracin de las variables flotantes a utilizar


void setup()
{
pinMode(A0, INPUT); Lectura de la entrada analgica conectada al LM35
lcd.begin(16, 2); Inicializacin del LCD
analogReference(INTERNAL); Declaracin del valor de voltaje de referencia interno del
Arduino
lcd.createChar(0, letra);
lcd.setCursor(2, 0);
lcd.write(byte(0));

lcd.createChar(1, letra2);
lcd.setCursor(11, 0); Visualizacin de la portada en el LCD
lcd.write(byte(1));

lcd.setCursor(4, 0);
lcd.print("U.T.A.");
lcd.setCursor(1, 1);
lcd.print("Temperatura");
delay (3000);
lcd.clear(); Instruccin para limpiar LCD
}
void loop()
{
valor = analogRead(A0); Lectura del voltaje entrante del LM35
delay(1000);
temperatura = valor / 9.3; Clculo de la Temperatura

if(temperatura>=23){ Condicin para el encendido del motor


digitalWrite(1,HIGH);

if(digitalRead(2)==HIGH){
digitalWrite(3,HIGH);
digitalWrite(4,LOW); Giro Izquierda (indicadores)
lcd.setCursor(0, 0);
lcd.print("ON: Giro izquierda ");
}
if(digitalRead(2)==LOW){
digitalWrite(4,HIGH);
digitalWrite(3,LOW); Giro Derecha (indicadores)
lcd.setCursor(0, 0);
lcd.print("ON: Giro derecha ");
}
}else{
lcd.setCursor(0, 0); Condicin para el apagado del motor
lcd.print("Sistema apagado ");
digitalWrite(4,LOW);
digitalWrite(3,LOW);
digitalWrite(1,LOW);
}

lcd.setCursor(0, 1);
lcd.print("Temp=" ); Visualizacin de mensajes en el LCD donde se visualiza
lcd.print(temperatura); la Temperatura.
lcd.createChar(3, letra3);
lcd.setCursor(10, 1);
lcd.write(byte(3));
lcd.print("C" );
}
2. ULTRASONICO CON ARDUINO

#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6,2,3,4,5);
long tiempo=0;
long distancia=0;
int pinTrigger=15;
int pinEcho=14;
int der=8;
int izq=9;
int lder=10;
int lizq=11;
int on_off=12;
int giro=13;
void setup()
{
lcd.begin(16,2); //Inicializacion LCD
Serial.begin(9600);
pinMode(pinEcho,INPUT); // Configuracin del pin 6 como entrada
pinMode(pinTrigger,OUTPUT); //Configuracin del pin 7 como salida
pinMode(der, OUTPUT);
pinMode(izq, OUTPUT);
pinMode(lder, OUTPUT);
pinMode(lizq, OUTPUT);
pinMode(on_off, OUTPUT);
pinMode(giro, INPUT);
}
void loop()
{
lcd.clear(); //Se borra o se limpia la pantalla del LCD
digitalWrite(pinTrigger,LOW); //Se asegura un cero en el pin que se va a utilizar como Trigger
delayMicroseconds(10);//Restardo de 5 microsegundo
digitalWrite(pinTrigger,HIGH); //Se establece en alto el pin del trigger para comenzar el pulso de
inicio del sensor
delayMicroseconds(5); //retardo de 10 microsegundos (tiempo minimo para inicializar el trigger
del sensor)
digitalWrite(pinTrigger,LOW);//Se establece en bajo el pin del Trigger para terminar el pulso de
inicio del sensor
tiempo=pulseIn(pinEcho,HIGH);//Se inicia la funcin pulseIn para que mida el tiempo del pulso
generado por el Echo del sensor
distancia=tiempo*0.0343/2; //Calculo de distancia a la cual se encuentra el objeto
//Impresin en el LCD
lcd.setCursor(2,0); // Se ubica el cursor en la columna 0 y fila 0 del LCD
lcd.print("ULTRASONICO");// Se imprime el texto Volt. con Arduino
lcd.setCursor(0,1); // Se ubica el cursor en la columna 0 y fila 1 del LCD
lcd.print("OFF dist= "); // Se imprime el texto Volt=
lcd.setCursor(10,1); // Se ubica el cursor en la columna 0 y fila 1 del LCD
lcd.print(distancia); // Se imprime el texto Volt=
lcd.setCursor(12,1); // Se ubica el cursor en la columna 0 y fila 1 del LCD
lcd.print("Cm"); // Se imprime el texto Volt=
Serial.println(distancia);
if((distancia)>=5)
{
lcd.clear();
lcd.setCursor(2,0); // Se ubica el cursor en la columna 0 y fila 0 del LCD
lcd.print("ULTRASONICO");// Se imprime el texto Volt. con Arduino
lcd.setCursor(0,1); // Se ubica el cursor en la columna 0 y fila 1 del LCD
lcd.print("ON dist= "); // Se imprime el texto Volt=
lcd.setCursor(10,1); // Se ubica el cursor en la columna 0 y fila 1 del LCD
lcd.print(distancia); // Se imprime el texto Volt=
lcd.setCursor(11,1); // Se ubica el cursor en la columna 0 y fila 1 del LCD
lcd.print("Cm"); // Se imprime el texto Volt=
digitalWrite(on_off,HIGH);
if(digitalRead(giro)==HIGH)
{
digitalWrite(der,1);
digitalWrite(lder,1);
digitalWrite(izq,0);
digitalWrite(lizq,0);
lcd.setCursor(14,1); // Se ubica el cursor en la columna 0 y fila 1 del LCD
lcd.print("DERCH"); // Se imprime el texto Volt=
}
else
{
digitalWrite(der,0);
digitalWrite(lder,0);
digitalWrite(izq,1);
digitalWrite(lizq,1);
lcd.setCursor(14,1); // Se ubica el cursor en la columna 0 y fila 1 del LCD
lcd.print("IZQ"); // Se imprime el texto Volt=
}
}
else
{
digitalWrite(on_off,0);
digitalWrite(der,0);
digitalWrite(lder,0);
digitalWrite(izq,0);
digitalWrite(lizq,0);
}
delay(200);
}
3. TECLADO Y PANTALLA LCD

#include <LiquidCrystal.h> // Librera para el control del LCD


#include <Keypad.h> // Librera para el control del keypad

LiquidCrystal lcd(13, 12, 11, 10, 9, 8); // varible LCD y pines


const byte filas = 4; // nmero de filas '4'
const byte columnas = 4; // nmero de columans '4'
char teclado [filas][columnas]={
{'D','C','B','A'},
{'#','9','6','3'},
{'0','8','5','2'},
{'*','7','4','1'}
}; //variable teclado

byte filaPines[filas]={0,1,2,3}; //configuracin de filas


byte columnaPines[columnas]={A5,A4,A3,A2}; // configuracin de columnas

Keypad tecla = Keypad (makeKeymap(teclado),filaPines, columnaPines, filas, columnas);


void setup()
{
pinMode(4, OUTPUT); // Pin 11 conectar a IN4
pinMode(5, OUTPUT); // Pin 10 conectar a IN3
pinMode(6, OUTPUT); // Pin 9 conectar a IN2
pinMode(7, OUTPUT); // Pin 8 conectar a IN1

lcd.begin(16,2);
}
void loop()
{
lcd.setCursor(0,1);
lcd.print("TECLADO MATRICIAL");
char key = tecla.getKey();
lcd.setCursor(8,0);
lcd.print(key);
}
MATERIALES Y EQUIPOS

Software de programacin IDE Arduino


Arduino UNO
Resistencias
Motor DC
Puente H
1 pulsador.
Cables
Protoboard
Lm35
Ultrasnico
Teclado matricial
Pantalla LCD
IV. DIAGRAMAS Y ESQUEMAS

SIMULACION LM35 CON ARDUINO

Esquema 1. Simulacin Proteus LM35 con Arduino Uno


Fuente: elaborado por grupo de trabajo

Imagen 1: Implementacin del circuito con sensor LM35 y Arduino


Fuente: elaborado por grupo de trabajo
SIMULACION ULTRASONICO CON ARDUINO

Esquema 2. Simulacin Proteus ULTRASONICO con Arduino Mega


Fuente: elaborado por grupo de trabajo

Imagen 2: Implementacin del circuito con sensor ULTRASONICO y Arduino


Fuente: elaborado por grupo de trabajo
SIMULACION TECLADO MATRICIAL CON ARDUINO
Esquema 3. Simulacin Proteus teclado matricial con Arduino Uno
Fuente: elaborado por grupo de trabajo

V. ANLISIS DE RESULTADOS

a. Resultados esperados:

Se estima que al implementar de manera fsica el circuito cumpla con el control establecido a
travs de la programacin. Con el pulsador P0 al primer pulso se encienda el motor y con otro
pulso el motor se apague. Cuando el motor se encuentre encendido, con el pulsador P1 en
estado 1 lgico gire en sentido horario y en estado 0 lgico el motor gire en sentido anti
horario.

b. Resultados obtenidos:
El funcionamiento del circuito implementado en Proteus es ptimo y cumple con los
requerimientos especificados.
Los indicadores del estado actual del motor permiten tener una mejor apreciacin del
funcionamiento del sistema.
El diagrama realizado con los elementos electrnicos reales permite tener una mejor
comprensin de cmo se debera implementar el circuito de forma fsica.
El funcionamiento fsico del circuito es el adecuado de acuerdo con las condiciones
establecidas.

VI. CONCLUSIONES
Se dise el circuito para el control de activacin y cambio de giro de un
motor DC a travs del Software Proteus.
Se logr desarrollar un cdigo de programacin en Arduino IDE y S4A que
permita hacer el control de un motor DC mediante el uso de instrucciones
bsicas en el entorno de programacin.
Se implement virtualmente el circuito dando como resultado el correcto
funcionamiento del motor controlado a travs de pulsadores utilizando
Arduino UNO.

S-ar putea să vă placă și