diff --git a/src/main.cpp b/src/main.cpp index f763053..4a9b924 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -24,6 +24,8 @@ bool sem_compteur; // sémaphore pour le compteur int16_t count = 0; // variable de compteur int vRotReel; // vitesse réelle mesurée du moteur unsigned long compteur_minuteur = 0; // minuteur pour le déclenchement du compteur +bool sema_compte_tour; // semaphore poour le compte tour +unsigned long compteur_compte_tour = 0; // minuteur pour le déclenchement du compte-tour int refresh_compte_tour = 500; // durée entre deux mesures du compte-tour en ms ///////////////////////////////// @@ -66,7 +68,7 @@ ESP32PWM pwm; // Activation du pwm int bouton_wifi = 2; // pin du bouton wifi bool sem_wifi = false; //sémaphore du minuteur du bouton wifi unsigned long wifi_minuteur = 0; // minuteur pour l'appui long sur le bouton wifi -bool etat_bouton_wifi = LOW; +bool etat_bouton_wifi; int tempo_bouton_wifi = 5000; //temps d'appui en millisecondes pour arrêter le capteur et passer en mode wifi /////////////////////////////////////// @@ -111,10 +113,10 @@ void start_moteur() { } void gaz_moteur() { - if (vRotVis > vRotReel) { + if (vRotVis > vRotReel && pos < 180) { pos ++; } - if (vRotReel > vRotVis) { + if (vRotReel > vRotVis && pos > 0) { pos --; } moteur.write(pos); @@ -169,14 +171,16 @@ void stop_compteur() { } void compte_tour() { - int offset = (compteur_minuteur - millis()); - - if (offset >= refresh_compte_tour ){ + if (sema_compte_tour == false){ + compteur_compte_tour = millis(); + sema_compte_tour = true; + } + int offset = (millis() - compteur_compte_tour ); + if (offset >= refresh_compte_tour && sema_compte_tour == true ){ pcnt_get_counter_value(PCNT_TEST_UNIT, &count); vRotReel = (count/offset * 60000); //vitesse en tours par min + Serial.println(vRotReel); gaz_moteur(); // ajustement des gaz en fonction de la vitesse mesurée - //Serial.println("vRotReel = "); - //Serial.println(vRotReel); } } @@ -437,7 +441,7 @@ String html =" \ /////FONCTIONS COMMUNES////// -void vigie_Wifi () { +void vigie_Wifi() { etat_bouton_wifi = digitalRead(bouton_wifi); if ( etat_bouton_wifi == HIGH && sem_wifi == false ) { sem_wifi = true; @@ -457,7 +461,7 @@ void setup() { delay(3000); pinMode(LED,OUTPUT); // LED bouton wifi et erreurs pinMode(bouton_wifi, INPUT); // bouton wifi - Serial.println("balise 0"); + //Serial.println("balise 0"); rtc_init(); // RTC sd_init (); // initialisation de la carte SD sem_wifi = false; // initialisation du sémaphore