将CD74HC4067多路复用器与Raspberry Pi一起使用

Using the CD74HC4067 Multiplexer with the Raspberry Pi

这 CD74HC4067 是一个16通道模拟/数字多路复用器,使Raspberry Pi可以与 16个输入或输出 仅使用几个GPIO引脚。使用多个传感器或设备时,非常适合扩展Raspberry Pi的I/O功能。


你需要什么

  1. 覆盆子pi (任何具有GPIO支持的模型,例如PI 3,PI 4)
  2. CD74HC4067多路复用器
  3. 模拟或数字输入设备 (例如,传感器,开关)
  4. 面包板和跳线电线
  5. 安装了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的应用

  1. 读取多个传感器:与多达16个传感器(例如温度,湿度或光)接口。
  2. 扩展数字I/O。:管理多个开关,LED或继电器。
  3. 模拟传感器集成:读取来自电位计,操纵杆或土壤水分传感器的信号。
  4. 家庭自动化:控制多个设备,例如灯,风扇或电器。

故障排除

  1. 没有来自渠道的数据:

    • 验证S0-S3控制引脚和COM引脚的接线。
    • 确保将传感器/设备正确连接到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.