/a/センサー
Published on

Raspberry Piに「MAX44009」を接続し制御する

1208文字3分で読めます–––
閲覧数
Authors
  • avatar
    Name
    将 有坂
    short bio
    ラズパイやArduinoで電子工作をしてます。

はじめに

Raspberry Piは小型で汎用性が高く、さまざまなセンサーやデバイスと組み合わせて利用することができます。この記事では、光センサー「MAX44009」をRaspberry Piに接続し、Pythonを使用して制御する方法について解説します。

※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚

1. MAX44009光センサーの概要

MAX44009は、I2C通信を介して動作し、非常に広い照度範囲で正確な光度を測定することができるセンサーです。これをRaspberry Piに接続して使用することで、周囲の明るさをモニタリングするプロジェクトを構築することができます。

2. MAX44009の接続

MAX44009をRaspberry Piに接続するには、以下の手順に従います。

  • VCC: 3.3Vの電源
  • GND: 接地
  • SDA: I2Cデータライン
  • SCL: I2Cクロックライン

これらのピンをRaspberry Piの対応するピンに接続します。通常、SDAはGPIO 2、SCLはGPIO 3に接続されます。

3. Pythonコードの作成

Raspberry Pi上でPythonを使用してMAX44009を制御するためのコードを書きます。以下は、smbusモジュールを使用した簡単な例です。

import smbus
import time

# MAX44009のI2Cアドレス
MAX44009_ADDRESS = 0x4A

# I2Cバスの初期化
bus = smbus.SMBus(1)

def read_lux():
    # コマンド:0x03(光度データの読み取り)
    data = bus.read_i2c_block_data(MAX44009_ADDRESS, 0x03, 2)
    
    # 光度データの計算
    exponent = (data[0] & 0xF0) >> 4
    mantissa = ((data[0] & 0x0F) << 4) | (data[1] & 0x0F)
    illuminance = ((2 ** exponent) * mantissa) * 0.045

    return illuminance

while True:
    lux_value = read_lux()
    print(f"照度: {lux_value} Lux")
    time.sleep(1)

このコードは、MAX44009から光度データを読み取り、その値を1秒ごとに表示するシンプルな例です。

4. コードの実行と確認

Raspberry PiにMAX44009を接続し、Pythonコードを実行して照度データを取得します。取得したデータが正常に表示されれば、接続と制御が成功しています。

これで、Raspberry PiにMAX44009を接続し、光度データを簡単に取得できるようになりました。この基本的なセットアップを拡張して、照明制御やデータのロギングなどのプロジェクトを構築することが可能です。

※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
avatar

将 有坂

電子部品専門家 / ラズベリーパイのプロ / 数多くのセンサーやモジュールの導入実績
ラズベリーパイやArduinoの電子工作に関わるソフトウェアエンジニア。これまで100種類以上のセンサーやモジュールの導入を行い、その知識と経験を活かして、多くの人々に電子工作の楽しさを伝えることを使命としている。

タグ ->