(日本語) CD74HC4067 は16チャネルのアナログ/デジタルマルチプレクサで、Raspberry Piが最大で接続可能 16の入力または出力 少数のGPIOピンだけを使用して。Raspberry PiのI/O機能を拡張するには、複数のセンサーやデバイスを使用する場合に最適です。
あなたが必要とするもの
- ラズベリーパイ (GPIO対応モデル(例:Pi 3、 Pi 4)
- CD74HC4067マルチプレクサ
- アナログまたはデジタル入力デバイス (例:センサー、スイッチ)
- ブレッドボードとジャンパーワイヤー
- インストールされた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の適用
- 複数のセンサーを読み込む:最大16個のセンサー(温度、湿度、光など)とのインタフェース。
- デジタルI/Oの拡大:複数のスイッチ、LED、またはリレーを管理します。
- アナログセンサ統合:ポテンショメータ、ジョイスティック、土壌水分センサーからの信号を読み取る
- ホームオートメーション:ライト、ファン、または電気器具のような複数の装置を制御して下さい。
トラブルシューティング
-
チャンネルからのデータはありません:
- 制御ピンとCOMピンの配線S0-S3確認します。
- センサー/デバイスがS0-S15ピンに正しく接続されていることを確認します。
-
チャンネルの選択が正しくない:
- S0-S3構成の真実テーブルを確認します。
- アクティベーションのために、ENピンがGNDに接続されていることを確認します。
-
断続的な読み取り:
- 小さな遅延を追加(
time.sleep(0.1)
)信号安定化を可能にする転換チャネル間。
- 小さな遅延を追加(
おわりに
(日本語) CD74HC4067マルチプレクサ Raspberry Piの入出力機能を拡張する強力で費用対効果の高い方法です。このガイドに従うことで、4つのGPIOピンを使用して、最大16のアナログまたはデジタル機器と簡単にインタフェースできます。この汎用性の高いモジュールを最大限に活用するために、さまざまなセンサーやアプリケーションで実験! 🚀