Измерение переменного напряжения с помощью ZMPT101B

shAAde

✩✩✩✩✩✩✩
24 Окт 2024
79
1
Приветствую! В общем момент такой....
Подключил датчик, волна красивая.
Но вот напряжение показывает 167 вольт .. может кто знает какие коэффициенты нужно скорректировать?
1742634573302.png


C++:
double sensorValue1 = 0;
double sensorValue2 = 0;
int crosscount = 0;
int climb_flag = 0;
int val[100];
int max_v = 0;
double VmaxD = 0;
double VeffD = 0;
double Veff = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {

  for ( int i = 0; i < 100; i++ ) {
    sensorValue1 = analogRead(A0);
    if (analogRead(A0) > 511) {
      val[i] = sensorValue1;
    }
    else {
      val[i] = 0;
    }
    delay(1);
  }

  max_v = 0;

  for ( int i = 0; i < 100; i++ )
  {
    if ( val[i] > max_v )
    {
      max_v = val[i];
    }
    val[i] = 0;
  }
  if (max_v != 0) {


    VmaxD = max_v;
    VeffD = VmaxD / sqrt(2);
    Veff = (((VeffD - 420.76) / -90.24) * -210.2) + 210.2;
  }
  else {
    Veff = 0;
  }
  Serial.print("Voltage: ");
  Serial.println(Veff);
  VmaxD = 0;

  delay(100);
}

Код стандартный.



1742634721934.png

Правда волна не как на картинке, но тут думал важна плавность ее ))
 

shAAde

✩✩✩✩✩✩✩
24 Окт 2024
79
1
В принципе, если использовать библиотеку ZMPT101B, то там просто есть коэфициент, им получилось)) Но вот что с этим кодом .... формулу так и не пойму )))
 

poty

★★★★★★✩
19 Фев 2020
3,394
970

@shAAde, вообще не понял что Вы считаете. Вы понимаете что такое амплитуда? Вот на последнем рисунке где амплитуда находится? Сравните с тем, как Вы её рассчитываете.
 

shAAde

✩✩✩✩✩✩✩
24 Окт 2024
79
1
Изменено: