apuntes_Arduino/RTC/hora-y-lcd/hora-y-lcd.ino

107 lines
2.4 KiB
C++
Executable File

#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
#define relLuz 13
#define relVent 12
#define sHum1 A0
#define sHum2 A1
#define sHum3 A2
#define sHum4 A3
byte hum1, hum2, hum3;
// HC - 06 ARDUINO
// VCC - 5V
// GND - GND
// TXD - 10
// RXD - 11
// ---------------------------
// Pines del chip I2C al LCD:
// (addr,en,rw,rs,d4,d5,d6,d7,BackLight, BLstatus)
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address [0x27 o 0x3F]
RTC_DS3231 reloj;
bool alarma = true;
DateTime fecha;
void setup() {
Serial.begin(9600);
lcd.begin(20,4);
if(!reloj.begin()) {
Serial.println("Modulo RTC no encontrado!!");
while(1); // 1 = true - blucle infito si no hay modulo
}
//reloj.adjust(DateTime(__DATE__, __TIME__)); // Descomentar para ajustar fecha y hora
}
void loop() {
lcd.clear();
lcd.home();
fecha = reloj.now();
mostrarFechaSerie();
horaLCD();
delay(1000);
}
/*
if(fecha.hour() == 13 && fecha.minute() == 00) {
if(alarma == true) {
Serial.println("Alarma 1 PM");
alarma = false;
}
}
getFecha();
delay(1000);
if(fecha.hour() == 12 && fecha.minute() ==30) {
alarma = true;
}
}
*/
//En caso de ser necesario mostrar hora, este codigo añade un 0 a los valores menores a 10
String getHora(char var) {
switch (var) {
case 'h':
if(fecha.hour() < 10) {
return ('0'+(String)fecha.hour()); break;
} else {
return (String)fecha.hour();break;
}
case 'm':
if(fecha.minute() <10) {
return ('0'+(String)fecha.minute()); break;
} else {
return (String)fecha.minute();break;
}
case 's':
if(fecha.second() <10) {
return ('0'+(String)fecha.second()); break;
} else {
return (String)fecha.second();break;
}
}
}
//Hora en LCD
void horaLCD() {
lcd.print("La hora es: ");
lcd.print(getHora('h'));
lcd.print(":");
lcd.print(getHora('m'));
lcd.print(":");
lcd.print(getHora('s'));
}
// Enviar hora y fecha por puerto serie
void mostrarFechaSerie() {
Serial.print(fecha.day());
Serial.print("/");
Serial.print(fecha.month());
Serial.print("/");
Serial.print(fecha.year());
Serial.print(" ");
Serial.print(getHora('h'));
Serial.print(":");
Serial.print(getHora('m'));
Serial.print(":");
Serial.println(getHora('s'));
}