4
1

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.

Raspberrypi3B++ADS1115+感光性センサーモジュールを動かした際の備忘録です。

Posted at

用意

ラズベリーパイ3B+ 一式
HiLetgo 2個セット ADS1115 4チャンネル 16ビット I2C ADC モジュール ゲインアンプ Arduino Rpiと互換
HiLetgo 5個セット 感光性センサーモジュール 光抵抗体モジュール 4ピン [並行輸入品]

接続

RaspberryPi3B+のピン配置を確認します。

$ pinout
...
   3V3  (1) (2)  5V    
 GPIO2  (3) (4)  5V    
 GPIO3  (5) (6)  GND   
 GPIO4  (7) (8)  GPIO14
   GND  (9) (10) GPIO15
GPIO17 (11) (12) GPIO18
GPIO27 (13) (14) GND   
GPIO22 (15) (16) GPIO23
   3V3 (17) (18) GPIO24
GPIO10 (19) (20) GND   
 GPIO9 (21) (22) GPIO25
GPIO11 (23) (24) GPIO8 
   GND (25) (26) GPIO7 
 GPIO0 (27) (28) GPIO1 
 GPIO5 (29) (30) GND   
 GPIO6 (31) (32) GPIO12
GPIO13 (33) (34) GND   
GPIO19 (35) (36) GPIO16
GPIO26 (37) (38) GPIO20
   GND (39) (40) GPIO21

以下を参考にしてピン配置を再確認します。
(手持ちのボードが確かに同じピン配置であることを確認して下さい。)
rp2_pinout.png

ピン配置を確認した後は、以下の通りピンを接続します。

  • RaspberryPi3B+ - 感光性センサーモジュール
    3V3 - VCC
    GND - GND

  • ESP32 - ADS1115
    5V - VCC
    GND - GND
    SDA1(データ線) GPIO2 - SDA
    SCL1(クロック線) GPIO3 - SCL

  • 感光性センサーモジュール - ADS1115
    A0 - A0 # AnalogOut

IMG_3634.JPG

コード上で動作確認

ライブラリインストール&サンプルコードを取得して実行

参考:Adafruit_CircuitPython_ADS1x15

Installing from PyPI

sudo pip3 install adafruit-circuitpython-ads1x15

実行

git clone https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15
cd Adafruit_CircuitPython_ADS1x15/examples
python3 ads1x15_simpletest.py 

以下のようにセンサ値を取得できれば正しく動いている。
また、感光性センサーモジュールのセンサに手をかざして電圧(v)の値が変わればセンサーの動作確認OK
(暗くするとvが大きくなり、明るくするとvが小さくなる。センサー感度の詳しい検証などは省略。)

$ python3 ads1x15_simpletest.py 
  raw	    v
 4736	0.592
 6832	0.852
 6496	0.812
 6544	0.806
 2560	0.316
 1328	0.164
 2512	0.334
 7136	0.904
 1504	0.188
 1520	0.190
 1520	0.190

ValueError: No Hardware I2C on (scl,sda)=(3, 2)

正しく接続しているはずなのにI2Cエラーになる。

$ python3 ads1x15_simpletest.py 
Traceback (most recent call last):
  File "ads1x15_simpletest.py", line 8, in <module>
    i2c = busio.I2C(board.SCL, board.SDA)
  File "/usr/local/lib/python3.7/dist-packages/busio.py", line 20, in __init__
    self.init(scl, sda, frequency)
  File "/usr/local/lib/python3.7/dist-packages/busio.py", line 55, in init
    (scl, sda), i2cPorts
ValueError: No Hardware I2C on (scl,sda)=(3, 2)
Valid I2C ports: ((3, 3, 2), (1, 3, 2), (0, 1, 0))

こちらを参考にしてI2Cを有効化することで解決

$ sudo rasps-config
5 Interfacing Options --> P5 I2C ---> I2Cを有効化する。
その後、Finishボタンで変更を反映すると、ads1x15_simpletest.py実行時のI2Cエラーが出なくなる。

ADS1115の接続に不安がある場合

Arduino/ESP32などの別マイコンでI2C+センサ値の取得を確認しておくと安心

(例)ESP32で確認する場合

MacでESP-32Sにコードを書き込む
MacでESP-32S+感光性センサーモジュールを動かす
MacでESP-32S+ADS1115+感光性センサーモジュールを動かす

接続後はi2cdetectを実行して確認する。

$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

参考

Adafruit_CircuitPython_ADS1x15
Raspberry Pi 2 & 3 Pin マッピング
Raspberry Pi 3B+ のGPIOピン割り当ての解説
第22回 Raspberry PiのGPIO概要
ESP32とADS1115で電圧計測
1-3.ESP-WROOM-32(D)
MacでESP-32Sにコードを書き込む
MacでESP-32S+感光性センサーモジュールを動かす
MacでESP-32S+ADS1115+感光性センサーモジュールを動かす
Raspberry Pi で ADS1115 を使う
RaspberryPiでI2Cを使えるように設定【2018年】

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?