Arduino Nano: Mostrar datos del DS1302 en una pantalla LCD16x2


En esta pequeña entrada estaré testeando la librería de Henning  hecha para el RTC DS1302, los datos serán mostrados en una LCD 16x2, todo esto como parte de las pruebas que se están realizando para llevar a cabo nuestra incubadora.

Circuito:
Se preguntaran porque se esta usando un DS1302, simplemente por que era el que se tenia a mano, aunque pudo haber sido otro sin problemas. Para la LCD ya se hablo de la conexión en otro post y con respecto al RTC puede que se use el modulo que ya venden, por por ejemplo he armado todo en la protoboard y he usado el circuito que se propone en la hoja de datos, por lo que ha quedado de la siguiente forma.

Firmware:
Con respecto al código es muy sencillo. ya que la librería esta bien trabajada y cuenta con todas as funciones disponibles, para ello el autor deja instructivo de como usarlas, así que queda de la siguiente forma: 

/*******************************************************************************
*
* Mostrar datos del DS1302 en LCD16x2
*
*******************************************************************************
* FileName: NANO_DS1302_LCD16x2.ino
* Processor: ATmega328
* Complier: Arduino v1.8.3
* Author: Pedro Sánchez (MrChunckuee)
* Blog: http://mrchunckuee.blogspot.com/
* Email: mrchunckuee.psr@gmail.com
* Description: Ejemplo basico para mostrar datos leidos del DS1302
* en una LCD16x2.
*******************************************************************************
* Rev. Date Comment
* v0.0.0 29/09/2019 Creación del firmware
******************************************************************************/
#include <Wire.h>
#include <DS1302.h>
#include <LiquidCrystal_I2C.h>
DS1302 rtc(2, 3, 4); // Init the DS1302
LiquidCrystal_I2C lcd(0x27,16,2); //Dirección 0x27 y 16 columnas x 2 filas
// Variables will change:
const int pinLed = 13;
int ledState = LOW; // ledState used to set the LED
long previousMillis = 0; // will store last time LED was updated
long interval = 1000; // interval at which to blink (milliseconds)
void setup(){
pinMode(pinLed, OUTPUT);
// Setup Serial connection
Serial.begin(9600);
// Set the clock to run-mode, and disable the write protection
rtc.halt(false);
rtc.writeProtect(false);
// The following lines can be commented out to use the values already stored in the DS1302
rtc.setDOW(SUNDAY); // Set Day-of-Week to SUNDAY
rtc.setTime(11, 35, 0); // Set the time to 12:00:00 (24hr format)
rtc.setDate(29, 9, 2019); // Set the date to September 29th, 2019
lcd.init();// Inicializar el LCD
lcd.backlight();//Encender la luz de fondo.
lcd.clear();
// Escribimos el Mensaje en el LCD.
lcd.print("DS1302 + LCD16x2");
lcd.setCursor(0,1);
lcd.print(" MrChunckuee! ");
delay(1000);
}
void loop(){
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
// save the last time you blinked the LED
previousMillis = currentMillis;
// if the LED is off turn it on and vice-versa:
if (ledState == LOW){
ledState = HIGH;
lcd.clear();
lcd.print("Time:");
lcd.setCursor(6,0);
lcd.print(rtc.getTimeStr());
lcd.setCursor(0,1);
lcd.print("Date:");
lcd.setCursor(6,1);
lcd.print(rtc.getDateStr());
}
else
ledState = LOW;
// set the LED with the ledState of the variable:
digitalWrite(pinLed, ledState);
}
}
Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.


Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.


Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.

Bibliografía:

Publicar un comentario

0 Comentarios