Catégories
Arduino Projets électroniques pwm

Arduino #34: PWM Comment mesurer la valeur moyenne et la valeur efficace d’un signal PWM

Objectifs

  1. Savoir calculer la valeur moyenne d’un signal
  2. Savoir calculer la valeur efficace d’un signal
  3. Exemple d’un signal PWM
  4. Etc.

Exemple

Remplissage du buffer

  for(i=0;i<N; i++)

  {

    Data_ADC[i] =analogRead(A0);

  }

 Calcul de la valeur efficace & la valeur moyenne

  for(i=0;i<N; i++)

  {

    somme_1+=(float)Data_ADC[i]*(float)Data_ADC[i];

    somme_2+=(float)Data_ADC[i];

  }

  ValEff=sqrt(somme_1/N); 

  somme_1=0.0;




  ValMoy=somme_2/N;

  somme_2=0.0;

Contrôle de la LED

  digitalWrite(PinLED1, ValMoy);

Affichage dans le port série

  for(i=0;i<N; i++)

  {

    Serial.print(Data_ADC[i]);Serial.print(",");

    Serial.print(ValMoy);Serial.print(",");

    Serial.println(ValEff);

  }

}
#define   PinLED1   2
#define PWMout 3
#define RappCyc 50*2.55 // 50 * 255/100
#define N 512 // Taille du buffer

unsigned int Data_ADC[N];
unsigned int i;
float somme_1=0.0,somme_2=0.0, ValEff=0.0, ValMoy=0.0;

unsigned int Data_in;



void setup()
{
// Init du port série
Serial.begin(9600);

// Init sortie PWM
analogWrite(PWMout, RappCyc);
}

void loop()
{
// Remplissage du buffer
for(i=0;i<N; i++)
{
Data_ADC[i] =analogRead(A0);
}

// Calcul de la valeur efficace & la valeur moyenne
for(i=0;i<N; i++)
{
somme_1+=(float)Data_ADC[i]*(float)Data_ADC[i];
somme_2+=(float)Data_ADC[i];
}
ValEff=sqrt(somme_1/N);
somme_1=0.0;

ValMoy=somme_2/N;
somme_2=0.0;

// Contrôle de la LED
digitalWrite(PinLED1, ValMoy);

// Affichage dans le port série
for(i=0;i<N; i++)
{
Serial.print(Data_ADC[i]);Serial.print(",");
Serial.print(ValMoy);Serial.print(",");
Serial.println(ValEff);
}
}

Sujets connexes

  • valeur moyenne tension
  • valeur moyenne d’un signal sinusoidal
  • valeur moyenne physique
  • valeur moyenne d’un signal exercice corrigé
  • valeur efficace formule
  • valeur moyenne d’une fonction démonstration
  • tension efficace
  • calculer la valeur moyenne d’une fonction sur un intervalle

4 réponses sur « Arduino #34: PWM Comment mesurer la valeur moyenne et la valeur efficace d’un signal PWM »

Merci pour ce beau partage c’est instructif.
J’aurais aimé trouver un code juste pour exemple: J’ai la consigne sur A0 sa sortie sur D9 et A1 qui va détecter la tension commandée par D9 afin qu’Arduino fasse la comparaison entre A0 et A1 puis incrémenter ou décrémenter (suiveur) D9 afin que le courant de sortie reste stable. J’ai cherché par tout hélas j’ai galéré et rien trouvé de ce genre.

Laisser un commentaire