Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Minuscule bug sur les mesures U & I
#3
Certes... voici néanmoins une solution clé en main, André :

void MeasurePower() {  //Lecture Tension et courants pendant 20ms
  int iStore;
  value0 = analogRead(AnalogIn0);  //Mean value. Should be at 3.3v/2
  static unsigned long OverflowOffset = 0;
  static unsigned long PrevMicros = 0;
  unsigned long NowMicros;
  unsigned long MeasureMillis = millis();
 
  while (millis() - MeasureMillis < 21) {  //Read values in continuous during 20ms. One loop is around 150 micro seconds
    NowMicros = micros();
    if(NowMicros < PrevMicros) {
      OverflowOffset += 7296;
    }
    iStore = ((NowMicros + OverflowOffset) % 20000) / 200;    //We have more results that we need during 20ms to fill the tables of 100 samples
    volt[iStore] = analogRead(AnalogIn1) - value0;
    amp[iStore] = analogRead(AnalogIn2) - value0;
    PrevMicros = NowMicros;
  }
}

...pas forcément la plus élégante, mais fonctionnelle et rapide, un copier-coller et c'est bon.
Répondre


Messages dans ce sujet
Minuscule bug sur les mesures U & I - par Youpimatin - 17-10-2024, 03:35 PM
RE: Minuscule bug sur les mesures U & I - par F1ATB - 17-10-2024, 04:34 PM
RE: Minuscule bug sur les mesures U & I - par Youpimatin - 19-10-2024, 04:34 PM
RE: Minuscule bug sur les mesures U & I - par F1ATB - 19-10-2024, 05:10 PM
RE: Minuscule bug sur les mesures U & I - par Sgb31 - 21-10-2024, 10:35 AM
RE: Minuscule bug sur les mesures U & I - par F1ATB - 21-10-2024, 01:22 PM

Atteindre :


Utilisateur(s) parcourant ce sujet : 5 visiteur(s)