【问题标题】:Arduino Pro Mini with Current Sensor ACS712带电流传感器 ACS712 的 Arduino Pro Mini
【发布时间】:2022-01-15 18:06:15
【问题描述】:

我正在尝试将 ACS712 (30 A) 电流传感器与 Arduino Pro Mini (5V) 一起使用,从简单的模拟读取测量开始。传感器上连接了一个 40 瓦的灯,当使用万用表进行测量时,它可以提供大约 700 毫安的电流。

这是代码,尽可能简单。


void setup() {

Serial.begin(9600);

pinMode(A1, INPUT);    *<<------ Already tested without this line.*

delay(3000);

}

空循环() {

Serial.println(analogRead(A1));
delay(500);

}


问题是结果:

0 13 796 536 592 131 183 0 0 1023 939 18 482 430 146 0 0 752 1023 154 269 949 36 202 0 0 1023 502 60 1023

我知道应该进行一些调整才能获得正确的“安培”值,但现在,我只想了解传感器的工作原理。

问题是:值不应该比这更稳定吗?

谢谢!

【问题讨论】:

    标签: arduino


    【解决方案1】:

    您测量的是交流电(交流电)的正弦波值。

    通常是使用the RMS value的电流(功率、电压)。

    我有这个功能来测量传感器读数的 RMS 值:

    /**
     * return value is RMS of sampled values
     */
    int readElSens() {
    
      const int ELSENS_ANALOG_MIDDLE_VALUE = 512;
      const int RMS_INT_SCALE = 10;
    
      unsigned long long sum = 0;
      int n = 0;
      unsigned long start_time = millis();
      while (millis() - start_time < 200) { // in 200 ms measures 10 50Hz AC oscillations
        long v = (short) analogRead(ELSENS_PIN) - ELSENS_ANALOG_MIDDLE_VALUE;
        sum += v * v;
        n++;
      }
      return sqrt((double) sum / n) * RMS_INT_SCALE;
    }
    

    然后您可以根据此函数返回的值计算RMS电流安培数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      • 2019-02-19
      • 2016-07-17
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多