CD74HC4067是一个16通道模拟/数字多路复用器/弹能,可让您在Arduino上扩展输入或输出引脚的数量。它在需要多个传感器,按钮或LED的项目的同时最大程度地减少PIN使用情况时特别有用。本教程将指导您通过Arduino连接和使用CD74HC4067。
你需要什么
- CD74HC4067多路复用器模块或IC
- Arduino董事会(例如Uno,Mega,Nano)
- 传感器,按钮或测试LED
- 面包板和跳线电线
- 安装了带有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:测试设置
- 通过USB将Arduino连接到您的计算机。
- 打开Arduino IDE并选择正确的 木板 和 港口 在 工具 菜单。
- 单击上传代码 上传.
- 打开串行监视器(工具 > 串行监视器)并将波特率设置为
9600
. - 观察串行显示器中显示的每个通道的模拟值。
可选:控制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的应用
- 扩展模拟和数字输入/输出
- 读取有限销的多个传感器
- 构建大按钮矩阵
- 控制多个LED或继电器
故障排除
-
没有频道的回应: 验证控制引脚连接并确保
EN
引脚连接到GND。 -
错误的频道选择: 检查
selectChannel()
设置S0-S3引脚的逻辑。 - 不稳定的读数: 确保传感器适当的接地和稳定的电源。
结论
您已成功将CD74HC4067多路复用器与Arduino联系起来。这个多功能模块使您可以显着扩展Arduino的输入和输出功能,非常适合涉及多个传感器,按钮或LED的项目。尝试不同的配置并探索其全部潜力!