/*=================== 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 ===========================================
|