2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

INA219の使い方

Last updated at Posted at 2020-04-09

概要

電流計測と,電源ラインの電圧監視ができる.
本質情報→データシート
秋月にモジュールが売ってる.
INA219使用 電流センサーモジュール(カレントセンサー)

I2Cレジスタ

アドレス 機能
0x00 コンフィグ
0x01 シャント電圧
0x02 バス電圧
0x03 消費電力
0x04 シャント電流
0x05 キャリブレーション

計算式

乗算器

2つの乗算器が入ってる
(シャント電流)=(シャント電圧)*(キャリブレーション)/4096
(消費電力)=(シャント電流)*(バス電圧)/5000
※(キャリブレーション)はデフォルトでは0なので,設定を書き込まないと(シャント電流)は機能しない

ADC

(バス電圧)の単位は4[mV]
(シャント電圧)の単位は0.01[mV]

実験

条件

1[kΩ]の抵抗とシャント抵抗0.1[Ω]を直列につなぐ
電源はiphoneの充電器(5[V])
バス電圧は5[V]=5000[mV]=0x04E2[4mV]
シャント電流は5[V]/1[kΩ]=5[mA]
シャント電圧は5[mA]*0.1[Ω]=0.5[mV]=0x32[0.01mV]

コード

main.c
#include <stdio.h>
#include <stdint.h>
#include <wiringPi.h>
#include <wiringPiI2C.h>

#define DRIFT -11

int fd;
int BusV,SntV,SntA;
uint16_t BusV_raw,SntV_raw,SntA_raw;

int init(int adr){
    fd = wiringPiI2CSetup(adr);
    // Config
    // wiringPiI2CWriteReg16(fd,0x00,0x399F);
    // Caribraion 0.1ohm 1%
    // wiringPiI2CWriteReg16(fd,0x05,0x0000);
    return 0;
}

uint16_t swap(uint16_t hoge){
    return ((hoge & 0xFF00)/0x0100 + (hoge & 0x00FF)*0x0100); 
}

int update(){
    BusV_raw = swap(wiringPiI2CReadReg16(fd,0x02)) >> 3;
    SntV_raw = swap(wiringPiI2CReadReg16(fd,0x01));
    SntA_raw = swap(wiringPiI2CReadReg16(fd,0x04));
    BusV = BusV_raw * 4;
    SntV = SntV_raw - 0x10000 - DRIFT;
    SntA = SntA_raw;
    return 0;
}

int main(void){
    init(0x40);
	for(;;){
        update();
		printf("Bus:%5u[mV] ",BusV);
		printf("Snt:%5d[0.01mV] ",SntV);
        printf("Cur:%5d[0.01mA]",SntV*10);
		printf("\n");
		delay(100);
	}
	return 0;
}

コンフィグ

####[15]
リセットビット
1をセットするとレジスタをクリアする
リセットされるとリセットビットは0になる
####[13]
バス電圧の計測範囲(0:16V/1:32V)
####[11:12]
シャント電圧の測定可能範囲
(00:±40mv/01:±80mv/10:±160mv/11:±320mv)
####[7:10]
バスADCの分解能
####[3:6]
シャントADCの分解能
####[0:2]
動作モード(0b111にしとけば全部動く)

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?