这 CD74HC4067 是一个16通道模拟/数字多路复用器,使Raspberry Pi可以与 16个输入或输出 仅使用几个GPIO引脚。使用多个传感器或设备时,非常适合扩展Raspberry Pi的I/O功能。
你需要什么
- 覆盆子pi (任何具有GPIO支持的模型,例如PI 3,PI 4)
- CD74HC4067多路复用器
- 模拟或数字输入设备 (例如,传感器,开关)
- 面包板和跳线电线
- 安装了Python 在覆盆子pi上
步骤1:了解CD74HC4067
CD74HC4067具有:
- 16个输入/输出通道(S0-S15)
- 4个控制销(S0,S1,S2,S3) 选择活动通道。
- 1启用销(EN) 激活多路复用器(主动低)。
- 一个 com(common)pin 共享交流。
渠道选择的真相表
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
将多路复用器连接到Raspberry Pi如下:
CD74HC4067引脚 | 覆盆子Pi Pin |
---|---|
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并安装Python库进行GPIO控制。
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或继电器。
- 模拟传感器集成:读取来自电位计,操纵杆或土壤水分传感器的信号。
- 家庭自动化:控制多个设备,例如灯,风扇或电器。
故障排除
-
没有来自渠道的数据:
- 验证S0-S3控制引脚和COM引脚的接线。
- 确保将传感器/设备正确连接到S0-S15引脚。
-
不正确的通道选择:
- 检查真实表中是否有S0-S3配置。
- 确保将EN引脚连接到GND以进行激活。
-
间歇性阅读:
- 添加一个小延迟(
time.sleep(0.1)
)在开关通道之间以允许信号稳定。
- 添加一个小延迟(
结论
这 CD74HC4067多路复用器 是扩展Raspberry Pi的输入/输出功能的强大且具有成本效益的方法。通过遵循本指南,您只需使用4个GPIO引脚即可轻松与多达16个模拟设备或数字设备连接。尝试各种传感器和应用,以充分利用此通用模块! 🚀