viernes, 7 de junio de 2019

Arduino + Reloj Digital (RTC Tiny - DS1307 )+LCD Encendido y Apagado De un Led Automaticamente

Hola Amigos mucha gente me a estado pidiendo el diagrama de este proyecto, a continuación muestro una imagen del diagrama
Diagrama de Conexiones RTC Tyni - DS1307

Para este proyecto se utilizo :
  • 1 Arduino nano
  • 1 LCD 16x2
  • 1 Led 
  • 1 Potenciometro de 10K para ajustar el contraste
  • 1 Resistencia de 220 Ohm
  • 1 Modulo RTC DS1307
Una vez armado el circuito descargaremos los archivos del programa y copearemos la carpeta RTClib a C:\Program Files (x86)\Arduino\libraries.

Código


#include <Wire.h> 
#include "RTClib.h"
#include <LiquidCrystal.h>
RTC_DS1307 RTC;
LiquidCrystal lcd(7, 8, 9, 10, 11 , 12);
int hora=0; // Variable donde se guardara la hora
int minutos=0; // Variable donde se guardaran los minutos
int segundos=0; // Variable donde se guardaran los segundos
int salida=3; // Salida donde se conectara el relevador
void setup () {
  //Inicializamos el puerto serie, wire y el modulo RTC
    Serial.begin(9600); // Se inicia la comunicacion Serial a 9600 baud
    Wire.begin(); // Se inicia la libreria Wire
    RTC.begin(); // Iniciamos la libreria del RTC
    //Si quitamos el comentario de la linea siguiente, se ajusta la hora y la fecha con la del ordenador
    RTC.adjust(DateTime(__DATE__, __TIME__));
        
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.write("Control Caldera Noel & Erick");
  lcd.setCursor(0,1);
  lcd.write(" Por Noel & Erick");
  delay(10000);
  lcd.clear();
  pinMode(salida,OUTPUT);
  
  }
  
void loop () {
    DateTime now = RTC.now();
  hora=(now.hour(),DEC);
  minutos=(now.minute(),DEC);
  segundos=(now.second(),DEC);
    //Imprimimos el dia
    Serial.print(now.day(), DEC);
    Serial.print('/');
    //Imprimimos el mes
    Serial.print(now.month(), DEC);
    Serial.print('/');
    //Imprimimos el año
    Serial.print(now.year(), DEC);
    Serial.print(' ');
    //Imprimimos la hora
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    //Imprimimos los minutos
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    //Imprimimos los segundos
    Serial.print(now.second(), DEC);
    Serial.println();
   
  lcd.clear();   
  lcd.setCursor(0,1);
  lcd.print(now.hour(), DEC);
  lcd.setCursor(2,1);
  lcd.print(":");
  lcd.setCursor(3,1);
  lcd.print(now.minute(), DEC);
  lcd.setCursor(5,1);
  lcd.print(":");
  lcd.setCursor(6,1);
  lcd.print(now.second(), DEC);
  lcd.setCursor(5,0);
  lcd.print(now.day(), DEC);
  lcd.setCursor(7,0);
  lcd.print("/");
  lcd.setCursor(8,0);
  lcd.print(now.month(), DEC);
  lcd.setCursor(10,0);
  lcd.print("/");
  lcd.setCursor(11,0);
  lcd.print(now.year(), DEC);
  
  if (now.hour()== 23 && now.minute() ==10)
  {
  lcd.clear();
  lcd.setCursor(2,0);
  lcd.print("Encendido");
  digitalWrite(salida,HIGH);
  }
   if (now.hour()== 23 && now.minute() ==12)
  {
  lcd.clear();
  lcd.setCursor(2,0);
  lcd.print("Apagado");
  digitalWrite(salida,LOW);
  }
  delay(1000);
  //Comprobamos la hora y la enviamos por el puerto serie cada 1s
       
}

Les dejo los links de descarga de los archivos

Link de descarga incluye la librería necesaria -- http://adf.ly/1ABCgY Diagrama de conexiones-- http://adf.ly/1SuCQO

No hay comentarios:

Publicar un comentario