j’aimerais rajouter un système de purge en maintenant l’appuie de bouton poussoir pendant 3 secondes se qui activerait toute mes pompes pendant 20secondes pour purger mon circuit.
comment puis je écrire ça dans mon programme?
et comment faire pour ne pas que mon cycle classique se lance quand j’appuie? actuellement le cycle se lance quand j’appuie sur mon BP de cette facon :
vous verrez que vous pouvez simplement réagir à un appui long ou court
si vous voulez le faire à la main, il faut capturer le moment (millis) où vous appuyez sur le bouton et s'il n'a pas été relâché pendant 3s alors déclencher votre purge
comment est câblé votre bouton ? vous ne le déclarez pas en INPUT, et pas de PULLUP puisqu'il semble que vous lisiez HIGH pour appui. vous avez un pull-down externe ? le plus simple reste quand même d'utiliser les PULLUP internes...
votre bouton n'est lu qu'à un seul endroit, donc ça n'est pas super compliqué... câblez le pour un pull up (donc pin --- bouton ---- GND) et regardez les exemples de la librairie de @bricoleau, il y en a une pour détecter quand le bouton a été actionné et un autre pour voir le temps d'appui...
voilà un petit bout de code à tester (console à 115200 bauds. bouton en câblé comme expliqué ci dessus)
#include "simpleBouton.h"
//Cablage : pin---BP---GND
simpleBouton bouton(4);
void setup()
{
Serial.begin(115200);
}
void loop()
{
uint32_t duree = bouton.dureeEnfonce(); //Lecture de la durée d'appui AVANT d'actualiser
bouton.actualiser();
if (bouton.vientDEtreEnfonce()) Serial.println(F("Enfoncé"));
if (bouton.vientDEtreRelache()) {
Serial.println(F("Relâché"));
if (duree > 3000) { // message supplémentaire si appui plus de 3s
Serial.print(F("Appui pendant ")); Serial.print(duree); Serial.println(F(" ms"));
}
}
}
ensuite votre code gagnerait en lisibilité s'il était bien organisé en machine à états (cf mon tuto éventuellement)
câblez le en pullup (avec le pullup interne donc juste pin ---- bouton --- GND, pas de résistance nécessaire) et essayez le petit bout de code donné ci dessus