Bonjour,
Je viens à vous pour une petite question, J'aimerai allumer une ampoule à l'aide d'un relais et un bouton poussoir. En appuyant sur le bouton, peut on gérer le temps d'allumage style pendant 2h, 3h, 4h? A t'on automatiquement besoin d'une horloge style ds1307 pour gérer le temps? Un simple delay ne suffirait pas ?
Pour faire des délais sur de longue période tu peut utiliser millis(), delay() n'est pas d'une grande précision sur de longue durée.
Sinon tu as aussi la librairie Time.
utilises millis(), mets une constante tempsEclairage à la valeur (en ms) que tu veux laisser la lampe éclairée, quand tu appuies sur ton poussoir tu mets une variable tempsBoutonPresse à la valeur de millis() et tant que la condition tempsBoutonPresse + tempsEclairage < millis() n'éteint pas la lampe.
L'avantage par rapport à delay() c'est que ça ne bloque pas la boucle principale de ton programme si tu veux faire autre chose en même temps, tu as juste à tester la condition énoncée ci-dessus.