ESP32 使用 INA226 采集 520Hz 直流方波电流并计算平均值
以下是使用 ESP32 和 INA226 采集 520Hz 直流方波电流并计算平均值的示例代码。请注意,您需要安装 Adafruit_INA226 库才能运行此代码。
#include <Wire.h>
#include <Adafruit_INA226.h>
Adafruit_INA226 ina226;
void setup() {
Serial.begin(9600);
while (!Serial) {
delay(10);
}
if (!ina226.begin()) {
Serial.println('Failed to find INA226 chip');
while (1) {
delay(10);
}
}
ina226.setAveragingCount(INA226_COUNT_64);
ina226.setBusConversionTime(INA226_TIME_1100);
ina226.setShuntConversionTime(INA226_TIME_1100);
ina226.setMode(INA226_MODE_SHUNT_BUS_CONTINUOUS);
}
void loop() {
float sum = 0.0;
int count = 0;
unsigned long start_time = micros();
while (micros() - start_time < 1923) { // 520Hz period
float current_mA = ina226.readShuntCurrent();
sum += current_mA;
count++;
}
float average_current_mA = sum / count;
Serial.print('Average current: ');
Serial.print(average_current_mA);
Serial.println(' mA');
}
在此示例代码中,我们使用了 INA226 库来读取 INA226 芯片的电流值。我们设置了 INA226 芯片的平均计数和总线/分流器转换时间,并将其设置为连续模式。在主循环中,我们使用一个 while 循环来读取 520Hz 的电流值,然后计算平均值并输出到串口。
原文地址: http://www.cveoy.top/t/topic/juqx 著作权归作者所有。请勿转载和采集!