如何与Arduino一起使用CD74HC4067多路复用器

How to Use the CD74HC4067 Multiplexer with Arduino

CD74HC4067是一个16通道模拟/数字多路复用器/弹能,可让您在Arduino上扩展输入或输出引脚的数量。它在需要多个传感器,按钮或LED的项目的同时最大程度地减少PIN使用情况时特别有用。本教程将指导您通过Arduino连接和使用CD74HC4067。


你需要什么

  1. CD74HC4067多路复用器模块或IC
  2. Arduino董事会(例如Uno,Mega,Nano)
  3. 传感器,按钮或测试LED
  4. 面包板和跳线电线
  5. 安装了带有Arduino IDE的计算机

步骤1:了解CD74HC4067

CD74HC4067充当一个开关,将其16个输入/输出引脚之一连接到单个常见引脚。您可以使用4个控制引脚(S0至S3)控制哪个通道活动。

引脚

别针 功能
VCC 电源(3.3V或5V)
gnd 地面
S0,S1,S2,S3 控制引脚(选择活动通道)
en 启用销钉(主动低;连接到GND以启用)
com 常见的I/O PIN(连接到Arduino)
CH0-CH15 通道0至15(连接到传感器,按钮或LED)

步骤2:将CD74HC4067接线到Arduino

这是将CD74HC4067连接到Arduino Uno的方法:

CD74HC4067引脚 Arduino Pin
VCC 5V
gnd gnd
S0 引脚8
S1 引脚9
S2 引脚10
S3 引脚11
en gnd
com A0(用于读取模拟信号)
CH0-CH15 传感器,LED或按钮

步骤3:上传代码

以下示例演示了如何从连接到CD74HC4067的传感器读取模拟值:

示例代码

const int s0 = 8; // Control pin S0
const int s1 = 9; // Control pin S1
const int s2 = 10; // Control pin S2
const int s3 = 11; // Control pin S3
const int comPin = A0; // Common pin connected to A0

void setup() {
  pinMode(s0, OUTPUT);
  pinMode(s1, OUTPUT);
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  for (int i = 0; i < 16; i++) {
    selectChannel(i); // Select the active channel
    int sensorValue = analogRead(comPin); // Read the value from the sensor
    Serial.print("Channel ");
    Serial.print(i);
    Serial.print(": ");
    Serial.println(sensorValue);
    delay(500); // Small delay for readability
  }
}

void selectChannel(int channel) {
  digitalWrite(s0, channel & 0x01); // Set S0
  digitalWrite(s1, (channel >> 1) & 0x01); // Set S1
  digitalWrite(s2, (channel >> 2) & 0x01); // Set S2
  digitalWrite(s3, (channel >> 3) & 0x01); // Set S3
}

步骤4:测试设置

  1. 通过USB将Arduino连接到您的计算机。
  2. 打开Arduino IDE并选择正确的 木板港口工具 菜单。
  3. 单击上传代码 上传.
  4. 打开串行监视器(工具 > 串行监视器)并将波特率设置为 9600.
  5. 观察串行显示器中显示的每个通道的模拟值。

可选:控制LED

要控制连接到通道的LED,请修改代码以输出数字信号,而不是读取模拟输入。例如:

LED的示例代码

void loop() {
  for (int i = 0; i < 16; i++) {
    selectChannel(i);
    digitalWrite(comPin, HIGH); // Turn on LED on the active channel
    delay(500);
    digitalWrite(comPin, LOW); // Turn off LED
  }
}

CD74HC4067的应用

  1. 扩展模拟和数字输入/输出
  2. 读取有限销的多个传感器
  3. 构建大按钮矩阵
  4. 控制多个LED或继电器

故障排除

  • 没有频道的回应: 验证控制引脚连接并确保 EN 引脚连接到GND。
  • 错误的频道选择: 检查 selectChannel() 设置S0-S3引脚的逻辑。
  • 不稳定的读数: 确保传感器适当的接地和稳定的电源。

结论

您已成功将CD74HC4067多路复用器与Arduino联系起来。这个多功能模块使您可以显着扩展Arduino的输入和输出功能,非常适合涉及多个传感器,按钮或LED的项目。尝试不同的配置并探索其全部潜力!

发表评论

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.