INA219 с регистратором можности L298N

Я работаю на мощности регистратор с INA219 и L298N в дело в том, что напряжение и ток отображаются на серийный монитор не то же самое на мой мультиметр. Arduino подключается к ПК для просмотра результата на последовательном

#include <Wire.h>
#include <Adafruit_INA219.h>

Adafruit_INA219 ina219;


//Adafruit_INA219 ina219_A;
//Adafruit_INA219 ina219_B(0x41);

void setup(void) 
{
  Serial.begin(115200);
  while (!Serial) {
      // will pause Zero, Leonardo, etc until serial console opens
      delay(1);
  }

  uint32_t currentFrequency;
    
  Serial.println("Hello!");
 
  if (! ina219.begin()) {
    Serial.println("Failed to find INA219 chip");
    while (1) { delay(10); }
  }
  ina219.setCalibration_32V_1A();

  Serial.println("Measuring voltage and current with INA219 ...");
}

void data(void) 
{
  float shuntvoltage = 0;
  float busvoltage = 0;
  float current_mA = 0;
  float loadvoltage = 0;
  float power_mW = 0;
    delay(2000);
  shuntvoltage = ina219.getShuntVoltage_mV();
  busvoltage = ina219.getBusVoltage_V();
  current_mA = ina219.getCurrent_mA();
  power_mW = ina219.getPower_mW();
  loadvoltage = busvoltage + (shuntvoltage / 1000);
  
  Serial.print("Bus Voltage:   "); Serial.print(busvoltage); Serial.println(" V");
  Serial.print("Shunt Voltage: "); Serial.print(shuntvoltage); Serial.println(" mV");
  Serial.print("Load Voltage:  "); Serial.print(loadvoltage); Serial.println(" V");
  Serial.print("Current:       "); Serial.print(current_mA); Serial.println(" mA");
  Serial.print("Power:         "); Serial.print(power_mW); Serial.println(" mW");
  Serial.println("");

  delay(2000);
}

void loop() {

    analogWrite(9, 245); //ENA pin
    digitalWrite(8, HIGH);
    digitalWrite(7, LOW);
    data();
    delay(5000);
  
    analogWrite(9, 200); //ENA pin
    digitalWrite(8, HIGH);
    digitalWrite(7, LOW);
    data();
    delay(5000);
  
    analogWrite(9, 150); //ENA pin
    digitalWrite(8, HIGH);
    digitalWrite(7, LOW);
    data();
    delay(5000);
  
    analogWrite(9, 0); //ENA pin
    digitalWrite(8, LOW);
    digitalWrite(7, LOW);
    data();
    delay(5000);

}

, 👍0

Обсуждение

`не то же самое на моем мультиметре" Какую разницу вы видите?, @timemage


1 ответ


1

INA219 показывает вам мгновенный ток и напряжение в данный момент времени, в то время как ваш DMM показывает среднее значение за определенный период.

L298N выдает ШИМ-сигнал, который быстро включается и выключается.

Ты видишь, к чему это ведет?

Ваше обнаружение Arduino будет выдавать вам либо полную мощность, либо полную мощность (или где-то посередине из-за эффекта фильтра нижних частот двигателя), в значительной степени случайным образом, в то время как DMM даст вам среднее значение по ряду выборок.

Вам нужно будет быстро выполнить выборку сигнала PWM в течение определенного периода времени и рассчитать среднее значение, чтобы получить представление о том, какими могут быть ток и напряжение.

,

Спасибо, сэр, но вы думаете, что с подключением что-то не так, или я просто где-нибудь добавлю код для DMM?, @Rhu Pagal

Вам нужно добавить код, чтобы создать среднее значение по времени значений., @Majenko

Если я что-то не пропустил, я не видел, где правильно инициализированы управляющие контакты (7,8,9). В setup () должно быть несколько операторов " pinMode ()". Я что-то упускаю?, @user3765883