• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь ESP8266 + CJMCU-226(INA226) + 100А шунт

Pyfa

New member
Добрый день всем)
есть у меня CJMCU-226 и шунт 100А 75mV Fl-2 0.5%.

Сначала подключил CJMCU-226 к ESP все отлично работает!
подключил по такой схеме
Плюс аккумулятора на Вход VBS и на Плюс нагрузки
Минус аккумулятора к IN-
Минус нагрузки к IN+

выпаял резистор R100 и заменил его на шунт 100А 75mV Fl-2 0.5%
подключил по такой же схеме, но значения соответственно уже не те(

INA226 сконфигурирован по умолчанию 0x4127.
Вот скетч
#include <Wire.h>

float rShunt=0.1;
const int INA226_ADDR = 0x40;
void setup() {
Serial.begin(9600);
Serial.println("Hello!");
Wire.begin(4, 5); // SDA - GPIO4, SCK - GPIO5
writeRegister(0x00, 0x4127);
}

void loop() {

int voltBit = readRegister(0x02);
Serial.print("voltBit: ");
Serial.print(voltBit);

int shuntBit = readRegister(0x01);
Serial.print(" shuntBit:");

if (shuntBit && 0x8000) {
shuntBit = ~shuntBit;
shuntBit += 1;
shuntBit *= -1 ;
}
Serial.print(shuntBit);

float volt = voltBit * 0.00125;
float currentA = shuntBit * 0.0000025 / rShunt; // * LSB / R
float powerW = abs(volt*currentA);
Serial.print(" Volt: ");
Serial.print(volt);
Serial.print(" V , Current: ");
Serial.print(currentA);
Serial.print(" A, Power: ");
Serial.println(powerW);
delay(2000);
}


static void writeRegister(byte reg, int value) {
Wire.beginTransmission(INA226_ADDR);
Wire.write(reg);
Wire.write((value >> 8) & 0xFF);
Wire.write(value & 0xFF);
Wire.endTransmission();
}

static int readRegister(byte reg) {
int res = 0x0000;
Wire.beginTransmission(INA226_ADDR);
Wire.write(reg);
if (Wire.endTransmission() == 0) {
if (Wire.requestFrom(INA226_ADDR, 2) >= 2) {
res = Wire.read() * 256;
res += Wire.read();
}
}
return res;
}



Помогите правильно настроить INA226 или прописать коэффициенты.

Заранее спасибо)
 
Сверху Снизу