Atascado en proyecto reloj.

Bueno saque algunas funciones de un reloj binario y adapte un poco para hacer un ejemplo.No puedo probarlo ,los dos megas los tengo en impresoras 3d .Recuerda seleccionar el mega al compilar y verificar que la direccion I2C de tu ds3231 es la misma.Repito esta sin probar ,lo que deberia hacer es leer la hora cada segundo ,coger solo los minutos y activar los pines 22 al 25 correspondientes a la primera cifra en binario y idem con la segunda cifra en los pines 26 al 29 ,ademas de mostrar por serial el byte con las 2 cifras en binario:

// Librerias

#include <Wire.h>

//Constantes

#define RTC_DIR 0x68 // Direccion reloj DS3231
#define REFRESH 1000 // Cada segundo
  
//Variables globales

unsigned long lastTime; // Variable para comparar tiempo transcurrido.

//Estructuras

struct Date {
  byte seconds;
  byte minutes;
  byte hour24;
  byte dayOfWeek;
  byte dayOfMonth;
  byte month;
  byte year;
};
// funciones
Date getDate(){ // Consulta la hora y fecha y devuelve una variable tipo Date.
  Date date;
  Wire.beginTransmission(RTC_DIR);
  Wire.write(0); // Nos situamos en el primer registro
  Wire.endTransmission();
  Wire.requestFrom(RTC_DIR, 7); // Solicitamos los 7 bytes de informacion de la hora y fecha.
  if (Wire.available()) {
    date.seconds = (Wire.read()); // Lectura datos
    date.minutes = (Wire.read()); 
    date.hour24 = (Wire.read()); 
    date.dayOfWeek = (Wire.read());
    date.dayOfMonth = (Wire.read());
    date.month = (Wire.read());
    date.year = (Wire.read());
    return date;
  }
}
void setup() {
    DDRA = B11111111;  // Puerto A del mega como outputs ,va de los pines 22 a 29
    Serial.begin(9600);
    Wire.begin();
    lastTime = millis();

  // put your setup code here, to run once:

}

void loop() {
  if(millis() - lastTime > REFRESH) {
    Serial.println("Leyendo hora");
    Date dateNow = getDate(); // Ejemplo con los minutos.Las entradas del 74141N con primera cifra a los pines 22,23,24 y 25
    PORTA = dateNow.minutes;  // El otro 74141N de la segunda cifra a los pines 27,27,28,29
    Serial.println(PINA,BIN); // Estado de las salidas del puerto A.4 bits derecha la segunda cifra ,4 bits izquierda primera cifra.
    lastTime = millis();
  }
  // put your main code here, to run repeatedly:

}