Raspberry PiでADS1115を使う

Raspberry PiでADS1115を使う

I2CアドレスはADDR端子の配線で設定する。

ADS1115 I2C Address

ADDR pin connection I2C address
GND 0x48
VDD 0x49
SDA 0x4A
SCL 0x4B

使用したI2Cチャネルは1。

ADS1115 Register

Pointer Description
0x00 Conversion Register : AD変換結果
0x01 Config Register : 設定

ADS1115のレジスタデータはBig Endianだが、pigpio の I2CライブラリはSMBusベースなので Little Endianである。よって上位バイトと下位バイトを入れ替える必要がある。

Config Register 0x01

Bit Field Set Description
15 OS 0 No efect
14:12 MUX[2:0] 0b100 Input single end AIN0
11:9 PGA[2:0: 0b001 Full Scale 4.096V
8 MODE 0 Continuous-conversion mode
7:5 DR[2:0] 0b010 Speed 32 Sample/s
4 COMP_MODE 0 Normal Comparator - no use
3 COMP_POL 0 Comparator output L active - no use
2 COMP_LAT 0 Comparator No latching - no use
1:0 COMP_QUE[1:0] 0b11 Disable Comparator que - no use

Sample code

import time
import pigpio
pi = pigpio.pi()

adc = pi.i2c_open(1, 0x48)

pi.i2c_write_word_data(adc, 0x01, 0x4342)     # little endian
ad0raw = pi.i2c_read_word_data(adc, 0x00)
ad0 = ((ad0raw & 0x00ff)<<8) + ((ad0raw & 0xff00)>>8)
while True:
    ad0raw = pi.i2c_read_word_data(Adc, 0x00)
    ad0 = ((ad0raw << 8) & 0xff00) | ((ad0raw >> 8) & 0x00ff)
    print(ad0)
    time.sleep(0.2)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です