Está en la página 1de 4

PRACTICA 3 “SENSOR ANALOGICO CON REPRESENTACIÓN EN LCD”

Mediante equipos de trabajo, los estudiantes deberán de programar, diseñar y construir una
aplicación con Arduino que permita monitorear y desplegar en una LCD los valores de las variables
físicas que a continuación se enlistan. Puedes apoyarte del siguiente diagrama y los códigos que
anexo al final de este documento.

Opciones:

• Humedad (estaca), temperatura (LM35) e iluminación (LDR)


• Voltaje (potenciómetro), iluminación (LDR), y temperatura (LM35).
• % Alcohol (MQ3), iluminación (LDR), humedad (sensor de lluvia)
• Voltaje(Joystick), Humedad (estaca)

Para lo anterior, deberán de elaborar un video donde se demuestre el funcionamiento de la práctica


antes mencionada. Y una vez realizada la práctica, deberán elaborar reporte de practica donde se
documenten las actividades realizadas de acuerdo a la estructura establecida en clase.

• Portada
• Introducción
• Objetivo
• Materiales
• Desarrollo (diagramas de proteus, código programa arduino, explicación del
funcionamiento, imágenes)
• Conclusiones
• Bibliografía
LCD1
LM044L

VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
SIM1

1
2
3

4
5
6

7
8
9
10
11
12
13
14
AREF

13

ARDUINO
RESET 12
~11
1 U1 5V ~10
1 U2 ~9

SIMULINO
LM35

POWER
GND 8
10mv/ °C 51.0

ATMEGA328P
40.0

DIGITAL (PWM~)
7
SIM1(PC0/ADC0) ~6

ATMEL
2 V=0.512325

ANALOG IN
VOUT A0 ~5
2 A1
VOUT 4
A2 ~3

3 LM35
A3 2 1
A4 TX > 1
3 LM35 A5
www.arduino.cc
RX < 0 1
blogembarcado.blogspot.com
SIMULINO UNO

si t=50°c por lo tanto V=50*10mv=.5V


5v==>1024
Vin= (5/1024)*dato
t= vin/10mv

Código termómetro con LCD

#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // ( RS, EN, d4, d5, d6, d7)
float lectura[4];
int valor[4];
int alarma=50;

void setup()
{
lcd.begin(20, 4); // Fijar el numero de caracteres y de filas
lcd.print("TERMOMETRO"); // Enviar el mensaje
delay(1000);
lcd.clear();
lcd.setCursor(11,0);
lcd.print("Alarma=");
lcd.print(alarma);
lcd.setCursor(11,1);
lcd.print("C0C1C2C3");
lcd.setCursor(11,2);
lcd.print(" 0 0 0 0");

pinMode(6,INPUT);
pinMode(5,INPUT);
}

void loop()
{

if(digitalRead(5)==0)
{
alarma++; delay(250);
}
if(digitalRead(6)==0)
{
alarma--; delay(250);
}
lcd.setCursor(11,0);
lcd.print("Alarma=");
lcd.print(alarma);

if(lectura[0]>alarma)
{lcd.setCursor(12,2); lcd.print("x"); }
else
{lcd.setCursor(12,2); lcd.print("0"); }

if(lectura[1]>alarma)
{lcd.setCursor(14,2); lcd.print("x"); }
else
{lcd.setCursor(14,2); lcd.print("0"); }

////////////////////////////////////////////////////////
lcd.setCursor(0,0); // set the cursor to column 0, line 1
lcd.print("CH0=");
valor[0]=analogRead(A0); //hago la lectura analógica en el pin A0
lectura[0]=(.00488*valor[0]/.01);
lcd.print(lectura[0]);lcd.print("C");
///////////***************************canal1
lcd.setCursor(0,1); // set the cursor to column 0, line 1
lcd.print("CH1=");
valor[1]=analogRead(A1); //hago la lectura analógica en el pin A0
lectura[1]=(.00488*valor[1]/.01);
lcd.print(lectura[1]);lcd.print("C");
///////////////////////canal2

}
Código Joystick
#include <Servo.h> // Incluir la librería Servo
Servo servo1; // Crear un objeto tipo Servo llamado servo1
int angulo = 0 ;
int Eje_X = A1 ;
int Eje_Y = A2 ;
int boton = 4 , LED = 12 ;

void setup()
{
servo1.attach(6) ; // Conectar servo1 al pin 6
pinMode( boton, INPUT_PULLUP) ;
}

void loop()
{
angulo = map( analogRead(A1), 0, 1024, 0, 180);
servo1.write(angulo);
if ( ! digitalRead(boton))
digitalWrite(LED, HIGH);
else
digitalWrite(LED, LOW);
delay(250) ;
}

También podría gustarte