es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

RTC DS3231 no realiza bucle después de inicializar.

Estoy tratando de usar el RTC DS3231, pero no hace un bucle después de la inicialización en void setup(). Solo he probado los códigos de ejemplo hasta ahora:

/*
  DS3231: Reloj en tiempo real. Formato de fecha.
  Leer más: www.jarzebski.pl/arduino/komponenty/zegar-czasu-rzeczywistego-rtc-ds3231.html
  GIT: https://github.com/jarzebski/Arduino-DS3231
  Web: http://www.jarzebski.pl
  (c) 2014 por Korneliusz Jarzebski
*/

#include <wire.h>

#include <ds3231.h>

DS3231 clock;
RTCDateTime dt;
void setup()
{
  Serial.begin(9600);

  // Inicializar DS3231
  Serial.println("Inicializar DS3231");
  clock.begin();

  // Establecer la hora de compilación del sketch
  clock.setDateTime(DATE, TIME);

  // Establecer desde la marca de tiempo UNIX
  // clock.setDateTime(1397408400);

  // Manual (AAAA, MM, DD, HH, II, SS)
  // clock.setDateTime(2014, 4, 13, 19, 21, 00);
}
void loop()
{
  dt = clock.getDateTime();

  Serial.print("Formato largo de número:          ");
  Serial.println(clock.dateFormat("d-m-Y H:i:s", dt));

  Serial.print("Formato largo con nombre del mes: ");
  Serial.println(clock.dateFormat("d F Y H:i:s", dt));

  Serial.print("Formato corto con modo de 12h:    ");
  Serial.println(clock.dateFormat("jS M y, h:ia", dt));

  Serial.print("Hoy es:                           ");
  Serial.print(clock.dateFormat("l, z", dt));
  Serial.println(" días del año.");

  Serial.print("El mes actual tiene:              ");
  Serial.print(clock.dateFormat("t", dt));
  Serial.println(" días.");

  Serial.print("Unixtime:                         ");
  Serial.println(clock.dateFormat("U", dt));

  Serial.println();

  delay(1000);
}

La salida se ve así:

10:15:16.623 -> Inicializar DS3231

¿Significa eso que no funciona en absoluto? ¿O que no continúa haciendo un bucle después de llamar a void setup?

Cualquier ayuda sería apreciada, eso no puede ser un problema tan grande…</ds3231.h></wire.h>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Basado en el código y la salida proporcionados, parece que el RTC DS3231 se ha inicializado correctamente en la función void setup(). Sin embargo, la función loop() parece ejecutarse solo una vez y luego esperar 1000 milisegundos antes de ejecutarse nuevamente. Este es un comportamiento normal para este código, ya que solo está destinado a leer y mostrar la fecha y hora actuales del RTC una vez por segundo.

    Es posible que haya un problema con el cableado o la comunicación entre el Arduino y el RTC, pero sin más información es difícil determinar la causa raíz del problema. Si se necesita más ayuda, puede ser útil proporcionar detalles adicionales como el diagrama de cableado y cualquier mensaje de error recibido.

Comments are closed.