Raspberry PiでCD74HC4067マルチプレクサを使用する

Using the CD74HC4067 Multiplexer with the Raspberry Pi

(日本語) CD74HC4067 は16チャネルのアナログ/デジタルマルチプレクサで、Raspberry Piが最大で接続可能 16の入力または出力 少数のGPIOピンだけを使用して。Raspberry PiのI/O機能を拡張するには、複数のセンサーやデバイスを使用する場合に最適です。


あなたが必要とするもの

  1. ラズベリーパイ (GPIO対応モデル(例:Pi 3、 Pi 4)
  2. CD74HC4067マルチプレクサ
  3. アナログまたはデジタル入力デバイス (例:センサー、スイッチ)
  4. ブレッドボードとジャンパーワイヤー
  5. インストールされたPython ラズベリーパイに

ステップ1: CD74HC4067を理解する

CD74HC4067は次のとおりです。

  • 16入出力チャネル(S0-S15)
  • 4コントロールピン(S0、 S1、 S2、 S3) アクティブチャンネルを選択します。
  • 1ピンを有効にする(EN) マルチプレクサ(アクティブLOW)をアクティブにします。
  • 単一のもの COM(共通)ピン コミュニケーションのために。

チャンネル選択の真実テーブル

S3 S2 S1 S0 アクティブチャンネル
0 0 0 0 S0
0 0 0 1 S1
0 0 1 0 S2
... ... ... ... ...
1 1 1 1 S15

ステップ2:ラズベリーパイにCD74HC4067を配線する

マルチプレクサをRaspberry Piに接続します。

CD74HC4067ピン ラズベリーピピン
VCC 3.3V(ピン1)
GND GND(ピン6)
S0 GPIO17(ピン11)
S1 GPIO27(ピン13)
S2 GPIO22(ピン15)
S3 GPIO23(ピン16)
EN(エン) GND(アクティブロー)
COMについて GPIO18(ピン12、アナログ入出力)
S0-S15 センサー/デバイスの接続

ステップ3:必要なライブラリをインストールする

Raspberry Piを更新し、GPIO制御用のPythonライブラリをインストールします。

sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio

ステップ4:マルチプレクサからデータを読み込むPythonコード

ここでは、CD74HC4067を制御し、接続されたチャネルからデータを読み込むPythonスクリプトです。

Pythonコードの例

import RPi.GPIO as GPIO
import time

# Define GPIO pins
S0 = 17
S1 = 27
S2 = 22
S3 = 23
COM = 18  # Common pin for input/output

# Initialize GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup([S0, S1, S2, S3], GPIO.OUT)
GPIO.setup(COM, GPIO.IN)  # Set COM pin as input for reading data

# Function to select a channel
def select_channel(channel):
    GPIO.output(S0, channel & 0x01)
    GPIO.output(S1, (channel >> 1) & 0x01)
    GPIO.output(S2, (channel >> 2) & 0x01)
    GPIO.output(S3, (channel >> 3) & 0x01)

try:
    while True:
        for channel in range(16):
            select_channel(channel)
            time.sleep(0.1)  # Small delay for channel stabilization
            value = GPIO.input(COM)  # Read data from the active channel
            print(f"Channel {channel}: {value}")
        time.sleep(1)
except KeyboardInterrupt:
    print("Exiting...")
finally:
    GPIO.cleanup()

ステップ5: Raspberry PiでのCD74HC4067の適用

  1. 複数のセンサーを読み込む:最大16個のセンサー(温度、湿度、光など)とのインタフェース。
  2. デジタルI/Oの拡大:複数のスイッチ、LED、またはリレーを管理します。
  3. アナログセンサ統合:ポテンショメータ、ジョイスティック、土壌水分センサーからの信号を読み取る
  4. ホームオートメーション:ライト、ファン、または電気器具のような複数の装置を制御して下さい。

トラブルシューティング

  1. チャンネルからのデータはありません:

    • 制御ピンとCOMピンの配線S0-S3確認します。
    • センサー/デバイスがS0-S15ピンに正しく接続されていることを確認します。
  2. チャンネルの選択が正しくない:

    • S0-S3構成の真実テーブルを確認します。
    • アクティベーションのために、ENピンがGNDに接続されていることを確認します。
  3. 断続的な読み取り:

    • 小さな遅延を追加(time.sleep(0.1))信号安定化を可能にする転換チャネル間。

おわりに

(日本語) CD74HC4067マルチプレクサ Raspberry Piの入出力機能を拡張する強力で費用対効果の高い方法です。このガイドに従うことで、4つのGPIOピンを使用して、最大16のアナログまたはデジタル機器と簡単にインタフェースできます。この汎用性の高いモジュールを最大限に活用するために、さまざまなセンサーやアプリケーションで実験! 🚀

コメントを残す

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.