Problema con RTC

non vorrei aprire un'altro topic quindi potete aiutarmi anche con questa funzione per piacere?

in pratica non ho un sensore di temperatura per gli alimentatori e vorrei che la ventola stesse accesa mezzora si e mezzora no...
potete controllare se questa funzione può andare?
alzo un flag ogni volta che l'orario è divisibile per 30

    if(get_ora() %30==0){ 
    if(s==0) s=1;
    else s=0;
    }
    if(s==1)analogWrite(fans[3],100);
    else analogWrite(fans[3],0);

dato che la mia funzione get_ora() mi dava un orario tipo 2148 allora per renderlo divisibile per 30min ho trasformato tutto in minuti

int get_ora(){
    
  //inizzializza la trasmissione partendo
  //dall'indirizzo 0x00
  Wire.beginTransmission(0x68);
  Wire.write((byte)0x00);
  Wire.endTransmission();
 
  //richiedo 7 byte dal dispositivo con
  //indirizzo 0x68
  Wire.requestFrom(0x68, 7);
  //regupero i 7 byte relativi ai
  //corrispondenti registri
  byte secondi = Wire.read();
  byte minuti = Wire.read();
  byte ora = Wire.read();
  byte giorno_sett = Wire.read();
  byte giorno_mese = Wire.read();
  byte mese = Wire.read();
  byte anno = Wire.read();

  return bcd2dec(ora)*60+bcd2dec(minuti);

}

uint8_t bcd2dec(uint8_t bcd)
{
  return (bcd/16) * 10 + bcd%16;
}

va bene secondo voi?