Hola, el problema que tengo que no puedo actualizar la hora y dia en un rtc3231 he corrido varios programas y no hay caso siempre queda en
#######################################
Puesta en hora del modulo RTC DS3231
Fecha actual: 22/5/2020 (Viernes) 11:19:22
########################################
Pulsa ENTER para actualizar a
Fecha Nueva-> 22/5/2020 Hora-> 15:30:0
======================================
Nueva Fecha actualizada: 22/5/2020 (Viernes) 15:30:00
codigo
/* ################## Test RTC DS3231 #############################
* Filename: RTC_DS3231_Ej1.ino
* Descripción: Puesta en hora RTC DS3231
* Autor: Jose Mª Morales
* Revisión: 6-04-2017
* Probado: ARDUINO UNO r3 - IDE 1.8.2 (Windows7)
* Web: www.playbyte.es/electronica/
* Licencia: Creative Commons Share-Alike 3.0
* http://creativecommons.org/licenses/by-sa/3.0/deed.es_ES
* ##############################################################
*/
// valores a introducir para configurar el RTC
// ===========================
int ano = 2021; // 0-2099
int mes = 01; // 0-12
int dia = 30; // 0-31
int hora= 11; // 0-23
int min = 35; // 0-59
int seg = 00; // 0-59
// ===========================
#include <Wire.h> // Comunicacion I2C
#include "RTClib.h" // libreria ADAFRUIT para DS3231
RTC_DS3231 RTC; // creamos el objeto RTC
String dia_semana[]={"Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"};
String newdate = "";
void setup() {
Serial.begin(9600);
// Wire.begin(); // Inicia Wire sólo si no se hace dentro de la librería
// supone que se usa Wire para comunicar con otros dispositivos, no sólo con el DS3231
if (!RTC.begin()) {
Serial.println("No se encuentra RTC");
while (1);
}else{
Serial.println("########################################");
Serial.println("Puesta en hora del modulo RTC DS3231");
Serial.print("Fecha actual: ");
print_time(); // imprime hora actual del RTC
Serial.println("########################################");
Serial.println("");
Serial.println("Pulsa ENTER para actualizar a");
newdate = "Fecha Nueva-> "
+ String(dia) + "/"
+ String(mes) + "/"
+ String(ano) + " Hora-> "
+ String(hora)+ ":"
+ String(min) + ":"
+ String(seg);
Serial.println(newdate);
Serial.println("======================================");
}
}
void loop () {
if(Serial.available()) {
int inputByte = Serial.read(); // lee byte entrante
if (inputByte==13) { // caracter fin de linea
RTC.adjust(DateTime(ano, mes, dia, hora, min, seg));
Serial.print("Nueva Fecha actualizada: ");
print_time(); // imprime hora actual del RTC
}
}
}
void print_time() {
DateTime ahora = RTC.now(); // captura valores del tiempo
Serial.print(ahora.day(), DEC);
Serial.print('/');
Serial.print(ahora.month(), DEC);
Serial.print('/');
Serial.print(ahora.year(), DEC);
Serial.print(" (");
Serial.print(dia_semana[ahora.dayOfTheWeek()]);
Serial.print(") ");
if (ahora.hour() <10) Serial.print (0);
Serial.print(ahora.hour(), DEC);
Serial.print(':');
if (ahora.minute() <10) Serial.print (0);
Serial.print(ahora.minute(), DEC);
Serial.print(':');
if (ahora.second() <10) Serial.print (0);
Serial.print(ahora.second(), DEC);
Serial.println();
}
ese es el que siempre use ingreso los datos en el serial presiono enter y nada, otros que he probado mismo resultados.