0% encontró este documento útil (0 votos)
117 vistas

Ejercicios Arduino 2

El primer documento describe cómo activar un led mediante un rele usando Arduino. El segundo documento expande esto incorporando un módulo de ultrasonido para medir distancias y controlar leds de advertencia. El tercer documento añade una pantalla LCD, teclado matricial y buzzer para crear un sistema de alarma con detección de movimiento y contraseña.

Cargado por

Gerson Castillo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
117 vistas

Ejercicios Arduino 2

El primer documento describe cómo activar un led mediante un rele usando Arduino. El segundo documento expande esto incorporando un módulo de ultrasonido para medir distancias y controlar leds de advertencia. El tercer documento añade una pantalla LCD, teclado matricial y buzzer para crear un sistema de alarma con detección de movimiento y contraseña.

Cargado por

Gerson Castillo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 22

Activación con relevo de un led

int rele = 8;

void setup() {

pinMode(rele, OUTPUT);
}

void loop() {
digitalWrite(rele, HIGH);
delay(2000);
digitalWrite(rele, LOW);
delay(2000);
}

Desafio,:
Incorporar una pantalla LCD (16x2), activar led (alarma) mediante un pulsador, la alarma esta cableada a
una fuente externa de 9V. Funcionamiento: cuando se active el pulsador se debe enviar un mensaje a
traves de la pantalla LCD y encender los leds de alarma, opción colocar un buzzer.
Uso modulo ultrasonido

int TRIG = 3;
int ECO = 2;

int ledred = 8;
int ledyellow = 9;
int ledgreen = 10;

int duracion;
int distancia;

void setup()
{
Serial.begin(9600);

pinMode(TRIG, OUTPUT);
pinMode(ECO, INPUT);
pinMode(ledred, OUTPUT);
pinMode(ledyellow, OUTPUT);
pinMode(ledgreen, OUTPUT);
}

void loop()
{
digitalWrite(TRIG, HIGH);
delay(1);
digitalWrite(TRIG, LOW);

duracion = pulseIn(ECO, HIGH);

distancia = duracion/58.2;
//velocidad del sonido = 340m/s / 2 = 58.2

Serial.print(distancia);
Serial.println(" cm");
delay(200);

if(distancia <= 335 && distancia >= 240){


digitalWrite(ledgreen, HIGH);
delay(distancia*10);
digitalWrite(ledgreen, LOW);

}else if(distancia < 240 && distancia >120){


digitalWrite(ledyellow, HIGH);
delay(distancia*10);
digitalWrite(ledyellow, LOW);

}else if(distancia <= 120 && distancia >= 0){


digitalWrite(ledred, HIGH);
delay(distancia*10);
digitalWrite(ledred, LOW);
}

Incorporar una pantalla LCD (16x2), activar led (alarma) mediante el uso del modulo de ultrasonido, la
alarma esta cableada a una fuente externa de 9V. Funcionamiento: cuando se active el modulo van a
abrir o cerrar una llave de agua hasta que el tanque este completamente lleno. Se debe visualizar los
niveles de agua a medida que se va llenando el tanque e igualmente deben colocar un sistema visual
(led’s) que indique si esta vacio, medio, o lleno. Cuando el sistema este lleno debe emitir una alarma
sonora durante 15 segundos.

#include <LiquidCrystal.h> // Entre los símbolos <> buscará en la carpeta de librerías configurada
#include <EasyBuzzer.h>
// Lo primero is inicializar la librería indicando los pins de la interfaz
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// Definimos las constantes


#define COLS 16 // Columnas del LCD
#define ROWS 2 // Filas del LCD
int TRIG = 6;
int ECO = 7;
const int pinBuzzer = 19;

int ledred = 8;
int ledyellow = 9;
int ledgreen = 10;
int rele=18;

int duracion;
int distancia;

void setup() {
// Configuramos las filas y las columnas del LCD en este caso 16 columnas y 2 filas
lcd.begin(COLS, ROWS);
Serial.begin(9600);

pinMode(TRIG, OUTPUT);
pinMode(ECO, INPUT);

pinMode(ledred, OUTPUT);
pinMode(ledyellow, OUTPUT);
pinMode(ledgreen, OUTPUT);
pinMode(rele, OUTPUT);

void loop() {

lcd.setCursor(0,0);
lcd.print("Distancia");
digitalWrite(TRIG, HIGH);
delay(1);
digitalWrite(TRIG, LOW);

duracion = pulseIn(ECO, HIGH);


distancia = duracion/58.2;
//velocidad del sonido = 340m/s / 2 = 58.2

lcd.setCursor(0,1);
lcd.print(distancia);lcd.print("cm");
Serial.print(distancia);
Serial.println(" cm");
delay(200);

if(distancia <= 335 && distancia >= 240){


digitalWrite(ledgreen, HIGH);
delay(distancia*10);
digitalWrite(ledgreen, LOW);

}else if(distancia < 240 && distancia >120){


digitalWrite(ledyellow, HIGH);
delay(distancia*10);
digitalWrite(ledyellow, LOW);

}else if(distancia <= 120 && distancia >= 5){


digitalWrite(ledred, HIGH);
delay(distancia*10);
digitalWrite(ledred, LOW);

}
if(distancia == 3){
digitalWrite(ledred, HIGH);
delay(distancia*10);
digitalWrite(ledred, LOW);
//generar tono de 440Hz durante 1000 ms
tone(pinBuzzer, 440);
delay(2000);
noTone(pinBuzzer);
digitalWrite(rele,HIGH);
}
else if(distancia >3){
noTone(pinBuzzer);
digitalWrite(rele,LOW);
}

}
#include <LiquidCrystal.h> // Entre los símbolos <> buscará en la carpeta de librerías configurada
#include <EasyBuzzer.h>
#include <Keypad.h> //incluir libreria para trabajar con teclado matricial

// Lo primero is inicializar la librería indicando los pins de la interfaz


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

// Definimos las constantes


#define COLS 16 // Columnas del LCD
#define ROWS 2 // Filas del LCD

char contrasena[] = "1234"; //definimos una contraseña de 4 digitos


char codigo[4]; //arreglo donde almacenaremos la contraseña digitada
int digito = 0; //variable que nos dira en que digito vamos

const byte filas = 4; //numero de filas del teclado


const byte columnas = 4; //numero de columnas del teclado
char teclas[filas][columnas] = //arreglo donde declaramos los caracteres que van en cada
posicion fila-columna
{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pinsFilas[filas] = {36, 34, 32, 30}; //pines donde van conectadas las filas
byte pinsColumnas[columnas] = {28, 26, 24, 22}; //pines donde van conectadas las columnas

Keypad teclado = Keypad(makeKeymap(teclas), pinsFilas, pinsColumnas, filas, columnas); //creamos el


objeto teclado

int TRIG = 6;
int ECO = 7;
const int pinBuzzer = 19;
int ledred = 8;
int ledyellow = 9;
int ledgreen = 10;
int rele=18;
int duracion;
int distancia;
int cerradura=38;
int ventilacion=40;
int alarmamov=42;
int detector_mov=44;
int movimiento=0;
void setup() {
// Configuramos las filas y las columnas del LCD en este caso 16 columnas y 2 filas
lcd.begin(COLS, ROWS);
Serial.begin(9600);
pinMode(TRIG, OUTPUT);
pinMode(ECO, INPUT);
pinMode(ledred, OUTPUT);
pinMode(ledyellow, OUTPUT);
pinMode(ledgreen, OUTPUT);
pinMode(rele, OUTPUT);
pinMode(cerradura, OUTPUT);
pinMode(ventilacion, OUTPUT);
pinMode(alarmamov, OUTPUT);
pinMode(detector_mov, INPUT);
digitalWrite(rele,HIGH);
lcd.clear(); //limpiamos la pantalla LCD
lcd.setCursor(0, 0); //ubicamos el cursor en la (columna, fila) convenientemente
lcd.print("Ingrese su clave"); //imprimir mensaje

void loop() {

char tecla = teclado.getKey(); //guardamos el caracter de la tecla presionada en la variable


tecla
if (tecla != NO_KEY) //si "tecla" es diferente de "no tecla"... (si se presiona una tecla)
{
codigo[digito] = tecla; //almacena en la posicion "digito" de "codigo" el caracter de la
"tecla" presionada
lcd.setCursor(digito + 5, 2); //se posiciona el cursor convenientemente
lcd.print('*'); //se imprime "*" cada vez que se oprime una tecla
digito = digito + 1; //incrementar la variable digito para almacenar los cuatro digitos
presionados
if (digito == 4) //si ya se llenaron los 4 digitos de codigo...
{
if (codigo[0] == contrasena[0] && codigo[1] == contrasena[1] && codigo[2] == contrasena[2] &&
codigo[3] == contrasena[3]) //si el "codigo" digitado es igual a la "contraseña"
{
delay(500); //esperar medio segundo

digitalWrite(cerradura, HIGH);
tone(pinBuzzer, 900);
delay(3000);
noTone(pinBuzzer);
lcd.clear();
delay(100);
lcd.setCursor(0, 1); //ubicamos el cursor en la (columna, fila) convenientemente
lcd.print(" Clave correcta "); //imprimimos el letrero diciendo clave correcta
delay(3000); //esperamos 3 segundos
lcd.clear(); //limpiamos la pantalla LCD
digitalWrite(cerradura, LOW); //apagamos el led verde
}
else //de lo contrario (si el "codigo" es diferente a la "clave")
{
delay(500); //esperamos medio segundo
//digitalWrite(12, HIGH); //encendemos el led rojo
lcd.setCursor(0, 2); //ubicamos el cursor en la (columna, fila) convenientemente
lcd.print("Clave incorrecta"); //imprimimos el letrero diciendo clave incorrecta
delay(2000); //esperamos 2 segundos
lcd.clear(); //limpiamos la pantalla LCD
//digitalWrite(12, LOW); //apagamos el led rojo
}
digito = 0; //reseteamos la variable digito
lcd.setCursor(0, 0); //ubicamos el cursor en la (columna, fila) convenientemente
lcd.print("Ingrese su clave"); //volvemos a imprimir el letrero pidiendo la clave
delay(500); //esperamos medio segundo
}
}

digitalWrite(TRIG, HIGH);
delay(1);
digitalWrite(TRIG, LOW);
duracion = pulseIn(ECO, HIGH);
distancia = duracion/58.2;
//velocidad del sonido = 340m/s / 2 = 58.2
Serial.print("Distancia ");
Serial.print(distancia);
Serial.println(" cm");
delay(400);

if(distancia <= 335 && distancia >= 120){


digitalWrite(ledgreen, HIGH);
delay(distancia*10);
digitalWrite(ledgreen, LOW);

//}else if(distancia < 240 && distancia >120){


//digitalWrite(ledyellow, HIGH);
//delay(distancia*10);
//digitalWrite(ledyellow, LOW);

}else if(distancia <= 119 && distancia >= 4){


digitalWrite(ledred, HIGH);
delay(distancia*10);
digitalWrite(ledred, LOW);
}

if(distancia <= 3){


digitalWrite(ledred, HIGH);
delay(distancia*10);
digitalWrite(ledred, LOW);
//generar tono de 440Hz durante 1000 ms
tone(pinBuzzer, 440);
delay(20);
noTone(pinBuzzer);
digitalWrite(rele,LOW);
}
//else if(distancia >3){
//noTone(pinBuzzer);
//digitalWrite(rele,HIGH);
//}
// movimiento=digitalRead(detector_mov);
//if (movimiento==LOW){
//digitalWrite(alarmamov,LOW);
//delay(4000);
//}else {
//digitalWrite(alarmamov,HIGH);
}

https://create.arduino.cc/projecthub/ies-clara-campoamor/invernadero-domotizado-8e9470
#include <Key.h>
#include <Keypad.h>
#include <Servo.h>
#include <LiquidCrystal.h>
//#include <DHTesp.h>
#include "DHT.h"
#include <Wire.h>

#define DHTPIN 10
#define DHTTYPE DHT11  
//#define RELE 2
//#define SIMULADOR 4
#define LED 13

//int push_lee = 0;
bool estadoLed=true;

LiquidCrystal lcd(18,19,14,15,16,17);
DHT dht(DHTPIN, DHTTYPE);

Servo ServoMotor;
char* password = "4273";  // change the password here, just pick any 3 numbers
int position = 0;
const byte ROWS = 4;
const byte COLS = 4;
char teclas[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

byte rowPins[ROWS] = { 9, 8, 7, 6 };
byte colPins[COLS] = { 5, 4, 3, 2 };
Keypad keypad = Keypad( makeKeymap(teclas), rowPins, colPins, ROWS, COLS );
int RedpinLock = 12;
int GreenpinUnlock = 13;

void setup()
{
pinMode(RedpinLock, OUTPUT);
pinMode(GreenpinUnlock, OUTPUT);
ServoMotor.attach(11);
LockedPosition(true);
lcd.begin(COLS,ROWS);
lcd.clear();
//Inicio Sensor Temperatura
dht.begin();
//pinMode(RELE, OUTPUT);
//pinMode(LED, OUTPUT);
//pinMode(SIMULADOR, INPUT);
//digitalWrite(LED, HIGH);
}

void loop()
 
{

char tecla = keypad.getKey();


lcd.clear();
if (tecla == '*' || tecla == '#')
{
position = 0;
LockedPosition(true);
}
if (tecla == password[position])
{
lcd.clear();
position ++;
}
if (position == 4)
{
LockedPosition(false);
}
delay(100);
}
void LockedPosition(int locked)
{
if (locked)
{
digitalWrite(RedpinLock, HIGH);
digitalWrite(GreenpinUnlock, LOW);
ServoMotor.write(180);
lcd.clear();
lcd.setCursor(0, 0);                        //ubicamos el cursor en la (columna,
fila) convenientemente
lcd.print(" Ingrese Clave ");              //imprimimos el letrero diciendo
clave correcta
delay(3000);
}
else
{
digitalWrite(RedpinLock, LOW);
digitalWrite(GreenpinUnlock, HIGH);
lcd.print("clave correcta");
ServoMotor.write(90);
delay(5000);
ServoMotor.write(180);
}
}

Segundo dia
// Apertura con Clave y opcion de cambio de Clave
// by: www.elprofegarcia.com

#include <LiquidCrystal_I2C.h> // Incluir la libreria LiquidCrystal_I2C


#include <Keypad.h>            // Incluir la libreria Keypad
#include <Servo.h>             // Incluir la libreria Servo

int estado = 0;
int tecla=0;
char opcion_seleccionada=' ';
int menu_nivel = 0;
int valor = 0;               // 0=cerrado 1=abierto
Servo servo11;                 // Crea el objeto servo11 con las caracteristicas
de Servo

const byte FILAS = 4;          // define numero de filas


const byte COLUMNAS = 4;       // define numero de columnas
char keys[FILAS][COLUMNAS] = {    // define la distribucion de teclas
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte pinesFilas[FILAS] = {9,8,7,6};         // pines correspondientes a las
filas
byte pinesColumnas[COLUMNAS] = {5,4,3,2};  // pines correspondientes a las
columnas

Keypad teclado = Keypad(makeKeymap(keys), pinesFilas, pinesColumnas, FILAS,


COLUMNAS);  // crea objeto teclado
LiquidCrystal_I2C lcd(0x27,16,2);  // dependiendo del fabricante del I2C el
codigo 0x27 cambiar a
                                   // 0x3F , 0x20 , 0x38 ,  
void setup()
{
  lcd.begin(16,2);
  lcd.backlight();
  servo11.attach(11,660,1400);        // Asocia el servo1 al pin 11, define el
min y max del ancho del pulso
  servo11.write(150);                // Gira el servo a 150 grados Cierra la
puerta
  //limpia();
  intro_0();
  //seleccion();
}

void loop() {
  lcd.clear();
  if(menu_nivel == 0){
    lcd.print("Selec. opcion");
    lcd.setCursor(0,1);
    lcd.print("Pass >A  ");

  while(tecla == NULL){
      tecla = teclado.getKey();
      if(tecla == 'A' || tecla == 'B' || tecla == 'C' || tecla == 'D'){
        opcion_seleccionada = tecla;
        menu_nivel = 1;
      }
    }
  }
 
  if(opcion_seleccionada != ' '){
    switch(opcion_seleccionada){
      case 'A':
        opcion_a();
        break;
       
      case 'B':
        opcion_b();
        break;
       
      case 'C':
        opcion_c();
        break;
       
      case 'D':
        opcion_d();
        break;
    }
  }
}

void opcion_a(){
  int INDICE=0;
  valor = 0;
  tecla = 0;
  lcd.clear();
  lcd.home();
  lcd.print("Ingresa Clave");
  lcd.setCursor(0,1);
 
  while(tecla != '#'){
    char CLAVE[5];                     // almacena en un array 4 digitos
ingresados
    char CLAVE_MAESTRA[5] = "0000";    // almacena en un array la contraseña
inicial
    tecla = teclado.getKey();
     if(tecla)
     {
      CLAVE[INDICE] = tecla;    // almacena en array la tecla presionada
      INDICE++;                 // incrementa indice en uno
      lcd.print("*");         // envia al LCD la tecla presionada
     }      
    if(INDICE == 4)             // si ya se almacenaron los 4 digitos
      {
      lcd.clear();
      if(!strcmp(CLAVE, CLAVE_MAESTRA))    // compara clave ingresada con clave
maestra
        abierto();
                   
      else
        error();
   
      INDICE = 0;
      }
    menu_nivel=0;
  }
}

void opcion_b(){
  lcd.clear();
  lcd.home();
  lcd.print("Ingresaste: ");
  lcd.print(valor);
  delay(3000);
  menu_nivel = 0;
}

void opcion_c(){
  lcd.clear();
  lcd.home();
  lcd.print("Aqui va el codigo");
  lcd.setCursor(0,1);
  lcd.print("para la opcion C");
  delay(3000);
  menu_nivel = 0;
}

void opcion_d(){
  lcd.clear();
  lcd.home();
  lcd.print("Aqui va el codigo");
  lcd.setCursor(0,1);
  lcd.print("para la opcion D");
  delay(3000);
  menu_nivel = 0;
}
void error(){  
      lcd.setCursor(0,1);
      lcd.print("ERROR DE CLAVE    ");
      limpia();
}
void abierto(){  
   if(estado==0){
      estado=1;
      lcd.setCursor(0,1);
      lcd.print("Abierto            ");  // imprime en el LCD que esta abierta
      servo11.write(30);                 // Gira el servo a 30 grados  abre la
puerta
      delay(2000);
      loop();
   }

   else{
    estado=0;
    lcd.setCursor(0,1);
    lcd.print("Cerrado              ");  // imprime en el LCD que esta cerrada
    servo11.write(150);                // Gira el servo a 150 grados  cierra la
puerta
    delay(2000);
    //seleccion();
   }
 //escoger();
}
void limpia(){  
 lcd.setCursor(0,0);
 lcd.print("CLAVE :          ");
 lcd.setCursor(9,0);
 
}
void intro_0(){
 lcd.clear();  // Borra el  LCD
 lcd.setCursor(3,0);         // Se posiciona en la Columna 3, Fila 0
 lcd.print("BIENVENIDO ");
 lcd.setCursor(1,1);
 lcd.print("PRUEBA DE MENU");
 delay(4000);                // espera 4 segundos mostrando el intro
 lcd.clear();
}  

Codigo Funciona
// Prueba de Menu con LCD y Teclado
// by: http://elprofegarcia.com

#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#include <Servo.h>             // Incluir la libreria Servo
// Sensor humedad-temperatura.
#include <DHT.h>
#define DHTPIN 10
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
// Humedad Temperatura.
float humedad = 0.0;
float temperatura = 0.0;
float temperatura_old = 0.1;
boolean temperatu = false;

int tecla = 0;
int menu_nivel = 0;
int valor = 0;
char opcion_seleccionada = ' ';
char TECLA;                        // almacena la tecla presionada
char CLAVE[5];                     // almacena en un array 4 digitos ingresados
char CLAVE_MAESTRA[5] = "0000";    // almacena en un array la contraseña inicial
byte INDICE = 0;
//char contrasena[] = "1234";                         //definimos una contraseña
de 4 digitos
//char codigo[4];                                     //arreglo donde
almacenaremos la contraseña digitada
//int digito = 0;
Servo servo11;
int estado = 0;
int RELET = 13;  
int RELEH = 12;                                                  //variable que
nos dira en que digito vamos

const byte ROWS = 4;  //Cuatro Filas


const byte COLS = 4;  //Cuatro Columnas
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {9,8,7,6}; //Puntos de conexion del teclado al arduino FILAS
byte colPins[COLS] = {5,4,3,2}; //Puntos de conexion del teclado al arduino
COLUMNAS
Keypad teclado = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
//Configura el teclado
LiquidCrystal_I2C lcd(0x27,16,2); // dependiendo del fabricante del I2C el codigo
0x27 cambiar a
                                  // 0x3F , 0x20 , 0x38 ,

////////////////////////////////// Void Setup() ///////////


void setup () {
  lcd.begin(16,2);
  servo11.attach(11,660,1400);        // Asocia el servo1 al pin 11, define el
min y max del ancho del pulso
  servo11.write(150);
  intro_0();
  // Humedad Temperatura.
  dht.begin();
  pinMode(RELET,OUTPUT);
  pinMode(RELEH,OUTPUT);
}

void loop(){
  lcd.clear();

    if(menu_nivel == 0){
    lcd.setCursor(0,0);
    lcd.print("PASS >A");
    lcd.setCursor(9,0);
    lcd.print("TEMP >B");
    lcd.setCursor(0,1);
    lcd.print("HUM >C");
   

    tecla = 0;
    while(tecla == NULL){
      tecla = teclado.getKey();
      if(tecla == 'A' || tecla == 'B' || tecla == 'C' || tecla == 'D'){
        opcion_seleccionada = tecla;
        menu_nivel = 1;
      }
    }
  }
 

  if(opcion_seleccionada != ' '){


    switch(opcion_seleccionada){
      case 'A':
        opcion_a();
        break;
     
      case 'B':
        opcion_b();
        break;
     
      case 'C':
        opcion_c();
        break;
    }
  }
}
void opcion_a(){
 int INDICE=0;
  valor = 0;
  tecla = 0;
  lcd.clear();
  lcd.home();
  lcd.print("Ingresa Clave");
  lcd.setCursor(0,1);
 
  while(tecla != '#'){
    char CLAVE[5];                     // almacena en un array 4 digitos
ingresados
    char CLAVE_MAESTRA[5] = "0000";    // almacena en un array la contraseña
inicial
    tecla = teclado.getKey();
     if(tecla)
     {
      CLAVE[INDICE] = tecla;    // almacena en array la tecla presionada
      INDICE++;                 // incrementa indice en uno
      lcd.print("*");         // envia al LCD la tecla presionada
     }      
    if(INDICE == 4)             // si ya se almacenaron los 4 digitos
      {
      lcd.clear();
      if(!strcmp(CLAVE, CLAVE_MAESTRA))    // compara clave ingresada con clave
maestra
        abierto();
                   
      else
        error();
   
      INDICE = 0;
      }
    menu_nivel=0;
  }
}

void intro_0(){
 lcd.clear();  // Borra el  LCD
 lcd.setCursor(3,0);         // Se posiciona en la Columna 3, Fila 0
 lcd.print("BIENVENIDO ");
 lcd.setCursor(1,1);
 lcd.print("PRUEBA DE MENU");
 delay(1500);                // espera 4 segundos mostrando el intro
 lcd.clear();
}
void abierto(){  
   if(estado==0){
      estado=1;
      lcd.setCursor(6,1);
      lcd.print("Abierto");  // imprime en el LCD que esta abierta
      servo11.write(30);                 // Gira el servo a 30 grados  abre la
puerta
      delay(5000);
      servo11.write(150);
      //loop();
   }
}
void error(){
    lcd.setCursor(0,0);
    lcd.print("Clave Errada");  // imprime en el LCD que esta cerrada
    lcd.setCursor(0,1);
    lcd.print("Cerrado");
    lcd.setCursor(9,1);
    lcd.print("press #");
    servo11.write(150);                // Gira el servo a 150 grados  cierra la
puerta
    delay(2000);
   
 }
void opcion_b(){
  lcd.clear();
  lcd.home();
  //temperatura = dht.readTemperature();
  //if (temperatura != temperatura_old) { // Para que no parpadee.
  //temperatura_old = temperatura;
  lcd.clear(); // Borra pantalla
  lcd.setCursor(0,0); // Inicio del cursor
  lcd.print("Temperatura");
  lcd.setCursor(0,1); // Siguiente renglón.
  lcd.print(temperatura);
  if (temperatura>=25)
    encender_aire();
  else
    digitalWrite(RELET,LOW);
  delay(5000);
  //}
  menu_nivel = 0;
}
void opcion_c(){
  lcd.clear();
  lcd.home();
  //humedad = dht.readHumidity();
  lcd.setCursor(0,0); // Inicio del cursor
  lcd.print("Humedad");
  lcd.setCursor(0,1); // Siguiente renglón.
  lcd.print(humedad);
  if (humedad<=55)
    encender_bomba();
  else
    digitalWrite(RELEH,LOW);
  delay(3000);
  menu_nivel = 0;
}
void encender_aire(){
  lcd.clear();
  lcd.home();
  digitalWrite(RELET,HIGH);
  lcd.setCursor(5,0);
  lcd.print("aire");
  lcd.setCursor(2,1);
  lcd.print("encendido");
  menu_nivel = 0;
}
void encender_bomba(){
  lcd.clear();
  lcd.home();
  digitalWrite(RELEH,HIGH);
  lcd.setCursor(2,0);
  lcd.print("bomba agua");
  lcd.setCursor(2,1);
  lcd.print("encendido");
  menu_nivel = 0;

También podría gustarte