meta data de esta página
  •  

¡Esta es una revisión vieja del documento!


3 . Añadir LCD

Continuamos con nuestro proyecto y ahora vamos a añadirle un LCD del tipo LCD KEY PAD SHIELD de 16×2 líneas

Este tipo de LCD ya viene preparada para conectar directamente encima del arduino Uno o del Mega, pero en nuestro caso al utilizar el nano tenemos que hacer las conexiones siguientes:

Se ha cambiado la lectura del sensor DHT al A1 para dejar el A0 para los botones del LCD

El esquema de conexión sería: A0 del LCD → A0 del nano D4 LCD → D4 nano D5 LCD → D5 nano D6 LCD → D6 nano D7 LCD → D7 nano D8 LCD → D8 nano D9 LCD → D9 nano

El código:



// wiki.intrusos.info
// modificacion del Sketch de prueba para sensores DHT humedad / temperatura de  www.internetdelascosas.cl
// Escrito por @joniuz basado en el sketch de Ladyada
// v1.3 añadimos lcd

// Libreria para Sensores DHT
#include "DHT.h"

//libreia LCD
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //    ( RS, EN, d4, d5, d6, d7)

#define DHTPIN 2     // Pin del Arduino al cual esta conectado el pin 2 del sensor

// Descomentar segun el tipo de sensor DHT usado
#define DHTTYPE DHT11   // DHT 11 

// Inicializa el sensor
DHT dht(DHTPIN, DHTTYPE);
//Definimos a que patilla esta conectado el FC-28
const int sensorPin = A1;

// Configura Arduino 
void setup() {
  Serial.begin(9600); 
  Serial.println("Medir temperatura, humedad y humedad tierra\n\n");
  lcd.begin(16, 2);
  dht.begin();
}

void loop() {
  // Espera dos segundos para realizar la primera medición.
  delay(2000);

  // Lee los datos entregados por el sensor, cada lectura demora 250 milisegundos
  // El sensor muestrea la temperatura cada 2 segundos}

  // Obtiene la Humedad
  float h = dht.readHumidity();
  // Obtiene la Temperatura en Celsius
  float t = dht.readTemperature();
  //obtiene la humedad de la tierra
  int humedadtierra = analogRead(sensorPin);

  lcd.setCursor(0, 0);
  lcd.print("Humedad: ");
  lcd.print(h);
  lcd.print("% ");

  lcd.setCursor(0, 1);
  lcd.print("H. Tierra: ");
  lcd.print(humedadtierra);
  lcd.print("% ");


  //Segun la tecla pulsada mostramos temperatura o humedad
  int boton;
  boton= analogRead (0);
  if (boton < 200) {
    lcd.setCursor(0, 0);
    lcd.print("Humedad: ");
    lcd.print(h);
    lcd.print("% ");
  }
  else if (boton < 400){
    lcd.setCursor(0, 0);
    lcd.print("Temp: ");
    lcd.print(t);
    lcd.print(" *C ");
  }


  delay(1000); // retardo un segundo entre lecturas.
}

Referencias