/*=================== Lecture 2 voies avec moyennage valeurs==================== Programme de moyennage par: http://p.loussouarn.free.fr/ Récepteur signal Voie1 sur le pin 2 Récepteur signal Voie 2 sur le pin 3 Correction du bruit en fonction du taux de moyennage pour lecture signal stable lecture sur moniteur série =========================================================================== */ #define signal1 2 // Signal radio Voie 1 attaché au Pin 2 #define signal2 3 // Signal radio Voie 2 attaché au Pin 3 #define REFRESH_PERIOD_MS 20 // Période de rafraîchissement #define MOY_SUR_1_VALEURS 0 #define MOY_SUR_2_VALEURS 1 #define MOY_SUR_4_VALEURS 2 #define MOY_SUR_8_VALEURS 3 #define MOY_SUR_16_VALEURS 4 #define MOY_SUR_32_VALEURS 5 #define TAUX_DE_MOYENNAGE MOY_SUR_4_VALEURS /* Choisir ici le taux de moyennage parmi les valeurs precedentes possibles listees ci-dessus */ #define MOYENNE(Valeur_A_Moyenner,DerniereValeurRecue,TauxDeMoyEnPuissanceDeDeux) Valeur_A_Moyenner=((((Valeur_A_Moyenner)*((1<<(TauxDeMoyEnPuissanceDeDeux))-1)+(DerniereValeurRecue))/(1<<(TauxDeMoyEnPuissanceDeDeux)))+(TauxDeMoyEnPuissanceDeDeux-1)) int val1; // Variable pour stocker la valeur du signal Voie 1 int val2; // Variable pour stocker la valeur du signal Voie 2 int mini = 1000; int maxi = 2000; void setup() { Serial.begin(9600); // Vitesse de transmission pinMode(signal1, INPUT); // Déclare signal 1 comme une entrée pinMode(signal2, INPUT); // Déclare signal 2 comme une entrée } void loop() { unsigned long currentMillis = millis(); // Affectation du compteur de temps #define TAUX_DE_MOYENNAGE MOY_SUR_4_VALEURS // Choix du taux de moyennage static int ValMoyennee1; // Valeur à moyennée val1 = pulseIn(signal1, HIGH); // stock la valeur du signal dans val1 val1 = map(val1, mini, maxi, 1000, 2000); val1 = constrain(val1, 1000, 2000); // pour contraindre la valeur du signal entre 1000 et 2000 ValMoyennee1 = MOYENNE(ValMoyennee1, val1, TAUX_DE_MOYENNAGE); // Correction du bruit en fonction du taux de moyennage val1 = ValMoyennee1; //---------------------------------------------------------------------------------- #define TAUX_DE_MOYENNAGE MOY_SUR_4_VALEURS // Choix du taux de moyennage static int ValMoyennee2; // Valeur à moyennée val2 = pulseIn(signal2, HIGH); // stock la valeur du signal dans val1 val2 = map(val2, mini, maxi, 1000, 2000); val2 = constrain(val2, 1000, 2000); // pour contraindre la valeur du signal entre 1000 et 2000 ValMoyennee2 = MOYENNE(ValMoyennee2, val2, TAUX_DE_MOYENNAGE); // Correction du bruit en fonction du taux de moyennage val2 = ValMoyennee2; //---------------------------------------------------------------------------------- Serial.print("valeur signal voie 1 = "); Serial.println(val1); Serial.println(); Serial.print("valeur signal voie 2 = "); Serial.println(val2); Serial.println(); delay (500); //---------------------------------------------------------------------------------- } //=============================FIN DE PROGRAMME =========================================== |