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?