changements compte-tour & scribe
This commit is contained in:
parent
0b80117ca3
commit
530cde8e80
33
src/main.cpp
33
src/main.cpp
|
@ -18,14 +18,14 @@
|
||||||
#define PCNT_TEST_CHANNEL PCNT_CHANNEL_0
|
#define PCNT_TEST_CHANNEL PCNT_CHANNEL_0
|
||||||
#define PCNT_INPUT_SIG_IO GPIO_NUM_15 // Pulse Input GPIO
|
#define PCNT_INPUT_SIG_IO GPIO_NUM_15 // Pulse Input GPIO
|
||||||
#define PCNT_INPUT_CTRL_IO GPIO_NUM_2 // Control GPIO HIGH=count up, LOW=count down
|
#define PCNT_INPUT_CTRL_IO GPIO_NUM_2 // Control GPIO HIGH=count up, LOW=count down
|
||||||
#define PCNT_H_LIM_VAL 10000 //valeur max du compteur_minuteur
|
#define PCNT_H_LIM_VAL 10000 //valeur max du depart_compteur_minuteur
|
||||||
#define PCNT_L_LIM_VAL -10 //valeur mini du compteur
|
#define PCNT_L_LIM_VAL -10 //valeur mini du compteur
|
||||||
bool sem_compteur; // sémaphore pour le compteur
|
bool sem_scribe; // sémaphore pour le compteur
|
||||||
int16_t count = 0; // variable de compteur
|
int16_t count = 0; // variable de compteur
|
||||||
int vRotReel; // vitesse réelle mesurée du moteur
|
int vRotReel; // vitesse réelle mesurée du moteur
|
||||||
unsigned long compteur_minuteur = 0; // minuteur pour le déclenchement du compteur
|
unsigned long start_chrono_scribe= 0; // minuteur pour le déclenchement du compteur
|
||||||
bool sema_compte_tour = false; // semaphore poour le compte tour
|
bool sema_compte_tour = false; // semaphore poour le compte tour
|
||||||
unsigned long compteur_compte_tour = 0; // minuteur pour le déclenchement du compte-tour
|
unsigned long depart_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
|
int refresh_compte_tour = 500; // durée entre deux mesures du compte-tour en ms
|
||||||
int pptr = 2; //nombre de pulsations par tour d'hélice
|
int pptr = 2; //nombre de pulsations par tour d'hélice
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ DateTime now{rtc.now()};
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
/* DÉFINITIONS DE LA CARTE SD */
|
/* DÉFINITIONS DE LA CARTE SD */
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
unsigned long freq_ecriture = 60000; // durée entre deux écritures sur la carte SD en micro secondes
|
unsigned long intervalle_d_ecriture = 60000; // durée entre deux écritures sur la carte SD en micro secondes
|
||||||
char horodatage[12]; //création du tableau pour contenir l'horodatage
|
char horodatage[12]; //création du tableau pour contenir l'horodatage
|
||||||
char fichier[] = "/"; //tableau pour le nom de fichier
|
char fichier[] = "/"; //tableau pour le nom de fichier
|
||||||
|
|
||||||
|
@ -174,12 +174,13 @@ void stop_compteur() {
|
||||||
|
|
||||||
void compte_tour() {
|
void compte_tour() {
|
||||||
if (sema_compte_tour == false){
|
if (sema_compte_tour == false){
|
||||||
compteur_compte_tour = millis();
|
depart_compte_tour = millis();
|
||||||
sema_compte_tour = true;
|
sema_compte_tour = true;
|
||||||
}
|
}
|
||||||
int offset = (millis() - compteur_compte_tour );
|
int offset = (millis() - depart_compte_tour );
|
||||||
pcnt_get_counter_value(PCNT_UNIT_0, &count);
|
pcnt_get_counter_value(PCNT_UNIT_0, &count);
|
||||||
if (offset >= refresh_compte_tour && sema_compte_tour == true && count >= 1){
|
if (offset >= refresh_compte_tour && sema_compte_tour == true && count >= 1){
|
||||||
|
compteur_compte_tour = millis()- ;
|
||||||
vRotReel = (60000*count/(pptr*offset)); //vitesse en tours par min (4 pulsations /tour, 2 montantes, 2 descendantes)
|
vRotReel = (60000*count/(pptr*offset)); //vitesse en tours par min (4 pulsations /tour, 2 montantes, 2 descendantes)
|
||||||
Serial.println("count =");
|
Serial.println("count =");
|
||||||
Serial.println(count);
|
Serial.println(count);
|
||||||
|
@ -188,7 +189,7 @@ void compte_tour() {
|
||||||
Serial.println("vRrotReel=");
|
Serial.println("vRrotReel=");
|
||||||
Serial.println(vRotReel);
|
Serial.println(vRotReel);
|
||||||
gaz_moteur();// ajustement des gaz en fonction de la vitesse mesurée
|
gaz_moteur();// ajustement des gaz en fonction de la vitesse mesurée
|
||||||
sema_compte_tour = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -324,11 +325,14 @@ void sd_init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void scribe_sd (){
|
void scribe_sd (){
|
||||||
if ( sem_compteur == false ) {
|
if ( sem_scribe == false ) {
|
||||||
compteur_minuteur = millis();
|
sem_scribe = true;
|
||||||
sem_compteur = true;
|
pcnt_counter_pause(PCNT_TEST_UNIT);
|
||||||
|
pcnt_counter_clear(PCNT_TEST_UNIT);
|
||||||
|
pcnt_counter_resume(PCNT_TEST_UNIT);
|
||||||
|
start_chrono_scribe = millis();
|
||||||
}
|
}
|
||||||
if ( sem_compteur == true && millis() - compteur_minuteur >= freq_ecriture ){
|
if ( sem_scribe == true && millis() - start_chrono_scribe >= intervalle_d_ecriture ){
|
||||||
char timestamp[] = "YY-MM-DD-hh:mm:ss";
|
char timestamp[] = "YY-MM-DD-hh:mm:ss";
|
||||||
char *horodatage = now.toString(timestamp);
|
char *horodatage = now.toString(timestamp);
|
||||||
char buffer[64];
|
char buffer[64];
|
||||||
|
@ -338,7 +342,8 @@ void scribe_sd (){
|
||||||
appendFile(SD, fichier, buffer);
|
appendFile(SD, fichier, buffer);
|
||||||
appendFile(SD, fichier, "\n" );
|
appendFile(SD, fichier, "\n" );
|
||||||
Serial.println(vRotReel);
|
Serial.println(vRotReel);
|
||||||
compteur_minuteur = 0;
|
start_chrono_scribe= 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -475,7 +480,7 @@ void setup() {
|
||||||
sd_init (); // initialisation de la carte SD
|
sd_init (); // initialisation de la carte SD
|
||||||
sem_wifi = false; // initialisation du sémaphore
|
sem_wifi = false; // initialisation du sémaphore
|
||||||
/* compteur de pulsations */
|
/* compteur de pulsations */
|
||||||
sem_compteur = false; // initialisation du sémaphore
|
sem_scribe = false; // initialisation du sémaphore
|
||||||
//pinMode(pulsePin,INPUT_PULLUP);
|
//pinMode(pulsePin,INPUT_PULLUP);
|
||||||
start_compteur();
|
start_compteur();
|
||||||
start_moteur(); // moteur
|
start_moteur(); // moteur
|
||||||
|
|
Loading…
Reference in a new issue