Introduction: Mini Calendar Clock

About: Me gusta la electronica y los mapaches

Este reloj muestra la fecha, hora y dia de la semana, si se acaba la bateria de 9v la hora no se pierde por la bateria del RTC

Supplies

  • Arduino pro mini / puede servir cualquier modelo en mi caso estoy usando el Arduino Pro mini Atmega328p(3.3v,8MHz)
  • RTC 1302
  • Librerias de arduino
  • Cables macho-hembra
  • Pila 9v / incluso puede funcionar pilas de 5 a 12 voltios
  • oled ssd1306
  • protoboard mini
  • frasco o caja de mentas

Step 1: Subir Codigo Al Arduino

primero se debe instalar las librerias para programar mas facilmente el RTC y la pantalla oled, la unica que no se podra encontrar en administrador de librerias es virtuabotixRTC.h en cambio la del oled las encontraras como: "Adafruit GFX Library" y "Adafruit SSD1306"


El arduno no debe estar conectado a ningun componente mas que al TTL, las conexiones son las siguientes:

Arduino TTL

  • RTX TXD
  • TXD RTX
  • VCC GND
#include<Wire.h>
#include<Adafruit_SSD1306.h>
#include<Adafruit_GFX.h>


#include<virtuabotixRTC.h>                                                                              
                                                                                                         
#define WIDTH 128
#define HEIGHT 64


Adafruit_SSD1306 display(WIDTH, HEIGHT, &Wire, -1);
virtuabotixRTC myRTC(6, 7, 8);
//                  CLK,DAT,Reset
String dayWeek[8] ={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
String setMonth[13] ={"Jan","Feb","Mar","Apr","May","June","July","Aug","Sept","Oct","Nov","Dec"};
void setup()  
{     
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
 myRTC.setDS1302Time(30,27,21,4,5,1,2023); // segundos,minutos,horas, dia de la semana, dia del mes, mes, ano
  
}
  
void loop()  
{
  myRTC.updateTime();                                                                                     
  display.clearDisplay();                                                                                                         
  display.setCursor(0,0);
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.print(dayWeek[myRTC.dayofweek - 1]);      //Imprime el dia de la semana
  
  
  display.setCursor(0,18);
 
  display.print(setMonth[myRTC.month-1]); // mes en texto
  display.setTextSize(2);
  display.setCursor(35,18);
  display.print("/");
  display.print(myRTC.dayofmonth);      // dia de mes
   display.setCursor(68,18);
  display.print("/");
  display.print(myRTC.year);            //a;o
  
  
  display.setCursor(0,36);
  display.print(myRTC.hours);
  display.print(":");
  display.print(myRTC.minutes);
  display.print(":");
  display.print(myRTC.seconds);     
  display.display();                                                                   
                                                                                                        
  delay(1000);                                                                                          
}                                                                                                        
  

Step 2: Hacer Las Conexiones

Step 3: Disfrutar