#1 2023-02-07 12:23:04

arizona
Учасник
З Полтава
Зареєстрований: 2023-02-07
Повідомлень: 8

Допоможіть розібратися з INA219

Добрий день!
Допоможіть розібратися з модулем INA219. Одразу попереджую, що я початківець, і багато чого можу, на жаль, не розуміти.
Виникла необхідність вимірювати напругу на акумуляторній батареї, передавати значення на сервер та будувати там графік.
Для цього я використав Arduino Nano, Ethernet шилд ASC229 та вимірювач струму/напруги INA219. Вимірювання струму мене не цікавить, потрібна лише напруга. Я зібрав все на макетній платі, досить довго провозився зі скетчем, та в мене все вийшло. Напруга вимірювалась, Ethernet працював як потрібно.   Але через деякий час модуль INA219 вийшов з ладу. Напруга перестала вимірюватись. Я подумав, що можливо причина була десь в монтажі на макетці, та вважаючи на те, що на підході були плати з JLCPCB, я заказав нову INA219 та зібрав схему вже на платі.

С початку все працювало добре, але у результаті INA219 теж накрилася.  Я маю достатньо знань для того щоб знайти що ц там згоріло, але шунт на вході був закорочений. Я випаяв його (мені не потрібно міряти струм), але Arduino модуль не бачить. Вимірювана напруга не перевищувала 14V.

Звідсіль питання. Може, а мабуть і напевно, я чогось не знаю? Чи не розумію?     
Додаю схему яку я розробив у EasyEda. Відповідно до неї були виготовлені і плати.
sheet1.png
Ось, якщо цікаво, як виглядає сам девайс.
device2.jpeg
device1.jpeg
Заздалегідь дуже вдячний за допомогу.

Неактивний

#2 2023-02-07 13:07:12

akapulko
Гість

Re: Допоможіть розібратися з INA219

Я правильно розумію, що ви "Вимірювану напругу що не перевищує 14V" подали на VIN Nano?

#3 2023-02-07 13:15:12

arizona
Учасник
З Полтава
Зареєстрований: 2023-02-07
Повідомлень: 8

Re: Допоможіть розібратися з INA219

Ні. Вимірювана напруга подається сюди.1.png

Неактивний

#4 2023-02-07 13:25:25

г0cть
Гість

Re: Допоможіть розібратися з INA219

Vin=?

#5 2023-02-07 13:36:18

akapulko
Гість

Re: Допоможіть розібратися з INA219

Пін 1 INA219 це живлення модуля (має бути 3-5В). Цю ж напругу ви подаєте на VIN Nano, значить вона явно вища 5В. От вам і спалений модуль.

#6 2023-02-07 13:50:14

akapulko
Гість

Re: Допоможіть розібратися з INA219

А взагалі, у вашому випадку, рекомендую розглянути можливість відмовитися від INA219. Використайте подільник напруги. Ось вам навіть зразок коду для Vin 0-15В (при бажанні можна температурну компенсацію додати):

#include <avr/sleep.h> /* for ADC sleep mode */

#define REF_VCC 4.931
/* measured division by voltage divider */
#define VOLTAGE_DIV_FACTOR 3.013

float voltage;

void initADC(void) {
  ADMUX |= (0b00001111 & PC3); /* set MUX to ADC3 */
  ADMUX |= (1 << REFS0); /* Voltage reference selected - AVcc */
  ADCSRA |= (1 << ADPS0) | (1 << ADPS1) | (1 << ADPS2); /* Set prescaler - 128 (125 kHz, between 50 and 200kHz according to datasheet) */
  ADCSRA |= (1 << ADEN); /* Enable ADC */
}

void setupADCSleepmode(void) {
  set_sleep_mode(SLEEP_MODE_ADC); /* defined in avr/sleep.h - halt CPU and I/O clocks and start an ADC conversion */
  ADCSRA |= (1 << ADIE); /* enable ADC interrupt */
  sei(); /* enable global interrupts */
}

uint16_t oversample16x(void) {
  uint16_t oversampledValue = 0;
  uint8_t i;
  for (i = 0; i < 16; i++) {
    sleep_mode(); /* chip to sleep, takes ADC sample */
    oversampledValue += ADC; /* add them up 16x */
  }
  return (oversampledValue >> 2); /* divide back down by four */
}

void setup() {
  Serial.begin(9600);
  Serial.println("*****Digital Voltmeter*****");
  initADC();
  setupADCSleepmode();
}

void loop() {
  voltage = oversample16x() * VOLTAGE_DIV_FACTOR * REF_VCC / 4096;
  Serial.println(voltage);
  _delay_ms(500);
}

EMPTY_INTERRUPT(ADC_vect);

#7 2023-02-07 15:36:00

arizona
Учасник
З Полтава
Зареєстрований: 2023-02-07
Повідомлень: 8

Re: Допоможіть розібратися з INA219

akapulko пише:

Пін 1 INA219 це живлення модуля (має бути 3-5В). Цю ж напругу ви подаєте на VIN Nano, значить вона явно вища 5В. От вам і спалений модуль.

А чому вища? Зараз поміряв блок живлення який живить цей девайс, то 5.1V. Чи цього достатньо? Наразі я не пригадую чому заживив модуль від VIN. Мабуть це якось пов'язане з тим, що планував вимірювати напругу яка б і живила мій девайс. Скажіть, а якщо я використаю вивід 3.3V від Nano? Це вирішить проблему?

Неактивний

#8 2023-02-07 15:37:05

arizona
Учасник
З Полтава
Зареєстрований: 2023-02-07
Повідомлень: 8

Re: Допоможіть розібратися з INA219

г0cть пише:

Vin=?

По факту 5.1V

Неактивний

#9 2023-02-07 15:39:04

arizona
Учасник
З Полтава
Зареєстрований: 2023-02-07
Повідомлень: 8

Re: Допоможіть розібратися з INA219

akapulko пише:

А взагалі, у вашому випадку, рекомендую розглянути можливість відмовитися від INA219. Використайте подільник напруги. Ось вам навіть зразок коду для Vin 0-15В (при бажанні можна температурну компенсацію додати):

Дякую. Я подивлюся.

Неактивний

#10 2023-02-07 16:36:07

г0cть
Гість

Re: Допоможіть розібратися з INA219

arizona пише:

По факту 5.1V

Уверены что INA вышла из строя? Для встроенного стабилизатора ардуины это на грани фола. При таком напряжении на этом входе сама ардуина может глючить. Соедините Vсс INA с пином +5 ардуины. И туда же подключите свой блок питания (или запитайте от usb). Второй вариант оставить подключение БП на Vin, но увеличить напругу от 6-7 до 12 В.

#11 2023-02-07 16:42:48

arizona
Учасник
З Полтава
Зареєстрований: 2023-02-07
Повідомлень: 8

Re: Допоможіть розібратися з INA219

г0cть пише:
arizona пише:

По факту 5.1V

Уверены что INA вышла из строя? Для встроенного стабилизатора ардуины это на грани фола. При таком напряжении на этом входе сама ардуина может глючить. Соедините Vсс INA с пином +5 ардуины. И туда же подключите свой блок питания (или запитайте от usb). Второй вариант оставить подключение БП на Vin, но увеличить напругу от 6-7 до 12 В.

Я вас зрозумів. Найближчим часом спробую.

Неактивний

#12 2023-02-07 17:34:34

arizona
Учасник
З Полтава
Зареєстрований: 2023-02-07
Повідомлень: 8

Re: Допоможіть розібратися з INA219

arizona пише:
г0cть пише:
arizona пише:

По факту 5.1V

Уверены что INA вышла из строя? Для встроенного стабилизатора ардуины это на грани фола. При таком напряжении на этом входе сама ардуина может глючить. Соедините Vсс INA с пином +5 ардуины. И туда же подключите свой блок питания (или запитайте от usb). Второй вариант оставить подключение БП на Vin, но увеличить напругу от 6-7 до 12 В.

Я вас зрозумів. Найближчим часом спробую.

Мабуть таки INA - дохла. Я зробив так як ви сказали. Перерізав доріжку на 1-й pin та кинув перемичку на +5V ардуіни. Заживив все від БП 12V . На VIN INA219 зараз у мене 5.01V. Але девайс не стартує. Точніше арудіна запускається, та після ініціалізації INA219 залипає. Відповідно вочдог перезавантажує ардуінку кожні 8 секунд. Я закомментував все що відноситься до INA219 у скетчі і все запрацювало. Зрозуміло що за виключенням вимірювання напруги. Мабуть замовлю ще INA та спробую.  smile

Неактивний

#13 2023-02-09 14:45:07

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Допоможіть розібратися з INA219

Вы писали, что измерять нужно только напряжение, зачем вам ИНка ???
Чем не устраивает просто делитель ??

Неактивний

#14 2023-02-09 17:08:44

arizona
Учасник
З Полтава
Зареєстрований: 2023-02-07
Повідомлень: 8

Re: Допоможіть розібратися з INA219

renoshnik пише:

Вы писали, что измерять нужно только напряжение, зачем вам ИНка ???
Чем не устраивает просто делитель ??

Тому що це мені здалося меньш складним. Використати готовий модуль, замість того що я не розумію. smile
Я обов'язково почитаю про ділитель.

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму