|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
T Búsqueda en este sitio:


.

Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando

-- Tutorial de iniciación a Arduino --

Volver al índice del tutorial

____________________________

49BC.- Teclado 4x4, bus I2C. Pantalla LCD. Sensor de humedad y temperatura.

- En una pantalla LCD visualizamos la Humedad y Temperatura con el sensor DHT11. Mediante el teclado podemos observar la Humedad o la Temperatura.

- Cuando la temperatura alcanza un valor máximo establecido se enciende el LED13, si la temperatura es menor el LED13 permanece apagado.

- Este tutorial es una amplicación del anterior: 49BB.- Teclado táctil, I2C. LCD.

Otros t utoriales relacionados:

- En el tutorial: 31.- Pantalla LCD. Bus I2C, vimos cómo utilizar una pantalla LCD con módulo I2C.
- En el tutorial: 49.- Teclado táctil matrix 4x4, vimos cómo utilizar un teclado 4x4.-
- En el tutorial: 49B.- Teclado táctil adaptado a I2C. Adaptador de 8 conexiones a Bus I2C con PCF8574, vimos cómo utilizar un teclado 4x4 con módulo I2C.
- En el tutorial: 44.- Sensor de humedad y temperatura DHT 11.

_______________________
- Teclado y LED.

'A' Modifica la temperatura máxima para encender el LED13 LED13
'B' Visualiza la Humedad. LED13
'C' Visualiza la Temperatura. LED13
'#' Fin de entrada de datos para la opción 'A'  

______________________________________________________
- Conexionado.

- Sería conveniente poner una resistencia limitadora de unos 220 ohmios, en serie con el LED, pero en estos tutoriales voy a alimentar a los LEDs directamente sin esa resistencia. En todos los montajes que he realizado los LEDs y el Arduino han funcionado perfectamente sin esa resistencia limitadora.

______________________________________________________
- Código para el Arduino.

- Fíjate que he puesto la dirección I2C de mi módulo para la pantalla LCD: 0x27

- Fíjate que he puesto la dirección I2C de mi tarjeta para el teclado: 0x38

- El código utiliza dos librerías de teclado la Keypad_I2C y la Keypad

- Las dos las puedes bajar de este enlace: Keypad-KeypadI2C.zip

- Además también están las librerías Wire y LiquidCrystal que puedes encontrar en el tutorial de 31.- Pantalla LCD.

- Esas librerías las debes copiar en la carpetar libraries de donde tengas instalado el IDE del Arduino.

- Una vez que cargues el código en el Arduino, abre el Serial Monitor y pulsa teclas.

jTeclado_LCD_humedad.ino

// Juan A. Villalpando.
// Abril 2018. KIO4.COM
#include <Wire.h>
#include <Keypad_I2C.h>
#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
// LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#define LED13 13

// Temperatura-humedad
#include <DHT.h> 
#define DHTPIN 2 
#define DHTTYPE DHT11 
DHT dht(DHTPIN, DHTTYPE); 
 
const byte ROWS = 4; 
const byte COLS = 4;
String maximo = "40";
char key = ' ';
float humedad = 0.0;
float temperatura = 0.0;
float temperatura_old = 0.1;
 
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
 
byte rowPins[ROWS] = {0,1,2,3}; 
byte colPins[COLS] = {4,5,6,7};
 
int i2caddress = 0x38; // Direccion I2C teclado.
 
Keypad_I2C kpd = Keypad_I2C( makeKeymap(keys), rowPins, colPins, ROWS, COLS, i2caddress );
 
void setup(){
  Serial.begin(9600);
  kpd.begin();
  lcd.begin(16,2);// Columnas y filas de LCD
  pinMode(LED13, OUTPUT);
  dht.begin(); 
}
 
void loop(){
  temperatura = dht.readTemperature();
  if (temperatura != temperatura_old) { // Disminuir parpadeo.
      temperatura_old = temperatura;
      ver_temperatura();
    }

  key = kpd.getKey();
  if (key){
      if (key == 'A'){ // Cambiar maximo.
       introduce_maximo();
      }      
      if (key == 'B'){ // Ver humedad.
       ver_humedad();
      }
      if (key == 'C'){ // Ver temperatura.
       ver_temperatura();
      }
  }
    
     if (String(temperatura) >= maximo) {
          digitalWrite(LED13, HIGH);
       } else {
          digitalWrite(LED13, LOW);
      }
}
////////////////////////////////////////
  // Introduccion de datos de maximo.
void introduce_maximo() {
      lcd.clear(); // Borra pantalla
      lcd.setCursor(0,0); // Inicio del cursor
      lcd.print("Valor maximo");
      lcd.setCursor(0,1); // Siguiente renglón.
      lcd.print(maximo);
      maximo = "";
     while (key != '#' )
        {
           key = kpd.getKey(); 
           if (key){
            maximo = maximo + key;
            lcd.clear(); // Borra pantalla
            lcd.setCursor(0,0); // Inicio del cursor
            lcd.print("Valor maximo");
            lcd.setCursor(0,1); // Siguiente renglón.
            lcd.print(maximo);
            delay(100);
            }
        }
  }
////////////////////////////////////////////////////
  // Ver informacion.
void ver_humedad() {
  humedad = dht.readHumidity();
  lcd.clear(); // Borra pantalla
  lcd.setCursor(0,0); // Inicio del cursor
  lcd.print("Humedad");
  lcd.setCursor(0,1); // Siguiente renglón.
  lcd.print(humedad);
  delay(50);
  }

  void ver_temperatura() {
  temperatura = dht.readTemperature();
  lcd.clear(); // Borra pantalla
  lcd.setCursor(0,0); // Inicio del cursor
  lcd.print("Temperatura");
  lcd.setCursor(0,1); // Siguiente renglón.
  lcd.print(temperatura);
  delay(50);
  }

______________________________________________________
- Comentarios.

- Al pulsar la tecla "B" visualizamos la humedad.

- Al pulsar la tecla "C" visualizamos la temperatura.

- Al pulsar la tecla "A" podemos establecer una temperatura máxima, para ello escribimos dos números y luego pulsamos "#" para salir,

ejemplo: 24#

- Es importante recordar que para salir de la opción "A", debemos pulsar: "#"

- Cuando la temperatura alcance ese valor, se encenderá el LED13.

______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________

________________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información