^Volver Arriba
Get Adobe Flash player

Cheats del día

Team Speak 3

Cod2

Contador de visítas

839356
Hoy
Ayer
Esta semana
Semana pasada
Este mes
Mes pasado
En total
23
520
1267
835301
5419
12806
839356

Tu IP: 3.16.83.150
Server Time: 2024-04-19 02:33:03

No a los Cheats

 

Formulario de acceso

Lcd + Sensor Humedad + Reloj DS1302

 

En esta entrada veremos cómo conectar un sensor de humedad y temperatura  (DHT11), y un reloj (DS1302) a un LCD para poder ver los datos que nos proporcionan los modulos.

Descarga la libreria DS1302 Aquí

Conexionado del circuito

Display LCD: LCD 20x4.
Arduino [ ]
Display ( ) vista frontal

(1) VCC [GND]
(2) VDD [+5V]
(3) V0 [2,2KOhm]------[GND]
(4) RS [D4]
(5) RW [GND]
(6) E [D7]
(7) D0
(8) D1
(9) D2
(10) D3
(11) D4 [D8]
(12) D5 [D9]
(13) D6 [D12]
(14) D7 [D13]
(15) A [D10]
(16) K [47Ohm o directo]----[GND]


Módulo RTC: Se conectará a la placa mediante los siguientes pines.
Arduino [ ]
RTC ( ) vista frontal

(Vcc) (GND) (CLK) (DAT) (RST)
[+5V] [GND] [D5] [D3] [D2]

Nota: En arduino mini tube que quitar el cable de +5V para que la fecha la marcara correctamente, con el cable puesto no funcionaba bien.

 

Módulo DHT11:

(Vcc) (Out) (Gnd)

+5v    D11   Gnd

Configurar el modulo DS1302

Este código solo lo utilizaremos una vez, se utiliza para programar el reloj en hora y fecha, es lógico que si queremos que mantenga la hora hay que ponerle una pila al modulo, sino cada vez que pierda la corriente este se pondrá por defecto.

 

#include <DS1302.h>

// Inicializacion del modulo
DS1302 rtc(2, 3, 5);
Time t;

void setup(){
// Desproteger contra escritura
rtc.halt(false);
rtc.writeProtect(false);

rtc.setDOW(TUESDAY); // Configurar dia de la semana: MARTES.
rtc.setTime(17, 00, 00); // Configurar hora en formato 24hs con min y seg: 17:00:00 HORAS.
rtc.setDate(4, 3, 2014); // Configurar fecha en formato dia/mes/año: 4/3/2014.
}

void loop(){
digitalWrite(13,HIGH); // El led integrado confirmara la finalizacion.
}

Código LCD + DHT11 + DS1302

#include "DHT.h" //cargamos la librería DHT
#define DHTPIN 11 //Seleccionamos el pin en el que se //conectará el sensor
#define DHTTYPE DHT11 //Se selecciona el DHT11 (hay //otros DHT)
DHT dht(DHTPIN, DHTTYPE); //Se inicia una variable que será usada por Arduino para comunicarse con el sensor
#include <DS1302.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(4, 7, 8, 9, 12, 13); // LCD-4/A-4 LCD-6/A-7 LCD-11-12-13-14/A-8-9-12-13

// Inicializacion del modulo.
DS1302 rtc(2, 3, 5);
Time t;

void setup() {
// LCD led de fondo
pinMode(10,OUTPUT); // LED conectado al pin D10.
analogWrite(10, 255); // Encendido del LED de luz de fondo.
lcd.begin(20,4); // Inicializacion del LCD.
dht.begin(); //Se inicia el sensor
}

void loop() {
// Obtencion de datos
t = rtc.getTime();

// Publicar en LCD
// Se publicara el dia de la semana
if (t.dow == 1) lcd.print("Lunes"); // La variable t.dow (dia de la semana) tedra valor de 1 para dia lunes y 7 para domingo.
if (t.dow == 2) lcd.print("Martes");
if (t.dow == 3) lcd.print("Miercoles");
if (t.dow == 4) lcd.print("Jueves");
if (t.dow == 5) lcd.print("Viernes");
if (t.dow == 6) lcd.print("Sabado");
if (t.dow == 7) lcd.print("Domingo");

// Se publicaran datos de fecha, en numeros.
lcd.print(" ");
lcd.print(t.date, DEC); // Dia del mes.
lcd.print("/"); // Mes.
lcd.print(t.mon);
lcd.print("/");
lcd.print(t.year, DEC); // Año.
lcd.setCursor(6,1);
lcd.print(t.hour, DEC); // Hora en formato 0-23.
lcd.print(":");
lcd.print(t.min, DEC); // Minutos.
lcd.print(":");
lcd.print(t.sec, DEC); // Segundos.

 

//esta es la parte del modulo de temperatura y humedad
float h = dht.readHumidity(); //lee la humedad
float t = dht.readTemperature(); //lee la temperatura
//Se imprimen las variables
lcd.setCursor(2,2);
lcd.print("Humedad: ");
lcd.print(h);
lcd.print(" % ");
lcd.setCursor(2,3);
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" C ");

delay(500); // Demora para presentar los datos en pantalla.
lcd.clear();

}

 

Código para probar el reloj por el puerto serial

#include <DS1302.h>

// Inicializacion del modulo.
DS1302 rtc(2, 3, 5);
Time t;

void setup() {
// Inicializacion del puerto serie.
Serial.begin(9600);
}

void loop() {
// Obtencion de datos
t = rtc.getTime();

// Publicar en LCD
// Se publicara el dia de la semana
Serial.print("HOY:");
if (t.dow == 1) Serial.print("lun"); // La variable t.dow (dia de la semana) tedra valor de 1 para dia lunes y 7 para domingo.
if (t.dow == 2) Serial.print("mar");
if (t.dow == 3) Serial.print("mie");
if (t.dow == 4) Serial.print("jue");
if (t.dow == 5) Serial.print("vie");
if (t.dow == 6) Serial.print("sab");
if (t.dow == 7) Serial.print("dom");

Serial.println(); // Linea aparte

// Se publicaran datos de fecha, en numeros.
Serial.print("DIA:");
Serial.print(t.date, DEC); // Dia del mes

Serial.println();

// Mes
Serial.print("MES:");
Serial.print(t.mon);

Serial.println();

// Año
Serial.print("DE:");
Serial.print(t.year, DEC);

Serial.println();

Serial.print("HORA:"); // Hora en formato 0-23.
Serial.print(t.hour, DEC);
Serial.print(", MIN:"); // Minutos.
Serial.print(t.min, DEC);
Serial.print(", SEG:"); // Segundos.
Serial.print(t.sec, DEC);

Serial.println();
Serial.println();
Serial.println();

delay(3000); // Demora para no sobrecargar las comunicaciones con el modulo.
}

This text will be replaced

Escribir un comentario

Código de seguridad
Refescar