Sunteți pe pagina 1din 5

Ejercicio:

- Diseo de un circuito que cense la humedad del suelo y que por medio de un
display visualice el porcentaje de humedad contenida, siendo el rango de 0
voltios en el puerto anlogo como 0% de humedad y siendo 5 voltios en el
puerto anlogo como 100% de humedad (simular la tierra en proteus con un
potencimetro).
- En la programacin colocar un punto de alarma(porcentaje de humedad)
modificable desde 2 pulsadores y que se indique en el display y encienda un led
rojo indicando que la alarma se cumple.

CDIGO EN ARDUINO

#include <LiquidCrystal.h>

//Comentario sobre los pines a utilizar con el LCD


/*
*LCD RS pin to digital pin 9
*LCD Enable pin to digital pin 8
*LCD D4 pin to digital pin 7
*LCD D5 pin to digital pin 6
*LCD D6 pin to digital pin 5
*LCD D7 pin to digital pin 4
*LCD R/W pin to ground
*LCD VEE(pin 3 LCD) a V0 Resistencia Variable 10K: terminales a +5V y ground
*/
LiquidCrystal lcd(9, 8, 7, 6, 5, 4); // se declaran los pines a utilizar
int limite = 0;
float hum = 0;
int pulsador1;
int pulsador2;

void setup() {
lcd.begin(16, 2); // Se declara el tipo de lcd a utilizar (16x2)
pinMode(12,INPUT);
pinMode(13,INPUT);
pinMode(10,OUTPUT);

lcd.setCursor(0, 0); //Se coloca el cursor en la columna 0, fila 0


lcd.print("LABORATORIO PIC"); //Se imprime el mensaje (inicia fila 0 columna 0)
delay(1000); //Retardo de 1000ms
lcd.clear(); // Se limpia la pantalla

lcd.setCursor(0, 0); //Se coloca el cursor en la columna 0, fila 0


lcd.print("GRUPO 7"); //Se imprime el mensaje (inicia fila 0 columna 0)
delay(1000); //Retardo de 1000ms
lcd.clear(); // Se limpia la pantalla

void loop() {
hum = map(analogRead(A0),0, 1023, 100, 0); //Lectura anloga desde el pin A0.
/* usamos la funcin map(). Esta bsicamente nos permite convertir un rango de medicin en otro (0 la
convierte en 100 asumiendo que el suelo tiene una humedad del 100% y cuando la lectura sea igual a
1023 la convierta a 0) */
pulsador1 = digitalRead(13); // la variable pulsador1 toma el valor ledo desde el pin 13
pulsador2 = digitalRead(12); // la variable pulsador2 toma el valor ledo desde el pin 12

if(pulsador1 == 1) // Si la variable pulsador1 es 1, incrementa el valor de la variable limite


{
limite++;
}

if(pulsador2 == 1) // Si la variable pulsador2 es 1, decrementa el valor de la variable limite


{
limite--;
}
if(hum > limite) // Si el valor de la humedad (hum) es mayor que e llmite establecido (lim)
{
lcd.setCursor(0,0);
lcd.print("ALARMA ON < ");lcd.print(limite);lcd.print("%"); //Imprimimos el valor de la variable limite
lcd.setCursor(0, 1);
lcd.print("Humedad: ");lcd.print(hum);lcd.print("%"); //Imprimimos el valor leido desde A0
delay(200);
digitalWrite(10,LOW); // Se mantiene en bajo el pin 10
}
else // Si el valor de la humedad (hum) es menorr que e llmite establecido (lim)
{
//lcd.clear();
lcd.setCursor(0,0);
lcd.print("ALARMA ON < ");lcd.print(limite);lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Humedad: ");lcd.print(hum);lcd.print("%"); //Imprimimos el valor leido desde A0
delay(200);
digitalWrite(10,HIGH); // Se pone en elto el pin 10
}

Observacin: A medida que disminuye la resistencia aumenta la humedad, ya que entre


ms hmedo est el suelo, menor es la resistencia entre las terminales del sensor de
humedad.
SIMULACIN EN PROTEUS

Diseo

Alarma Apagada
Alarma Activada

Video de la simulacin

https://youtu.be/5mPmr1AA0S8

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