Доброго времени суток пытаюсь получить данные с INA219 при помощи такого кода
Спойлер
#include <Adafruit_INA219.h> // Подключаем библиотеку Adafruit_INA219
Adafruit_INA219 ina219; // Создаем объект ina219
void setup(void)
{
Serial.begin(115200); // Инициализируем последовательную связь на скорости 115200
uint32_t currentFrequency; // Создаем переменную
// По умолчанию при инициализации будет использоваться самый большой диапазон (32 В, 2 А)
// Проверка инициализации модуля INA219
if (! ina219.begin()) {
Serial.println("Failed to find INA219 chip");
while (1) { delay(10); }
}
Serial.println("Measuring voltage and current with INA219 ..."); // Отправка сообщение
}
void loop(void)
{
float shuntvoltage = 0; // Создаем переменную shuntvoltage
float busvoltage = 0; // Создаем переменную busvoltage
float current_mA = 0; // Создаем переменную current_mA
float loadvoltage = 0; // Создаем переменную loadvoltage
float power_mW = 0; // Создаем переменную power_mW
float resist = 0;
shuntvoltage = ina219.getShuntVoltage_mV(); // Получение напряжение на шунте
busvoltage = ina219.getBusVoltage_V(); // Получение значение напряжения V
current_mA = ina219.getCurrent_mA(); // Получение значение тока в мА
power_mW = ina219.getPower_mW(); // Получение значение мощности
loadvoltage = busvoltage + (shuntvoltage / 1000); // Расчет напряжение на нагрузки
resist = loadvoltage/(current_mA/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.print("resist: "); Serial.print(resist); Serial.println(" om");
Serial.println("");
delay(2000); // Пауза
}```
подключен датчик последовательно до предполагаемой нагрузки, и соответственно цель померить этим датчиком его сопротивление по закону ома. Но вся оказия заключается в том, что предполагается мерить сопротивление 10 - 20 ом, а мои результаты на тестовом резистре с заводским сопротивлением в 860, равняются 680 ±, и в общем ленейная погрешность не так пугает как разница этих значений скрин монитора серийного порта прилагается.
соответственно вопрос… есть ли решение у этой проблемы? может стоит на модуле шунт перепаять? или же это в норме погрешности и измерять столь малое сопротивление таким образом - извращение?