零基础入门Arduino:双色LED共阴传感器控制技巧
·
今天我们来学习个神奇的传感器-双色LED共阴传感器,同时学习个新的元件按钮,通过按钮来控制LED变化。老规矩先简单介绍然后开始今天的学习!
双色LED共阴传感器的介绍
双色LED共阴传感器通常包含两个发光二极管(通常为红色和绿色),共用一个阴极引脚。通过控制阳极引脚的电压,可以分别点亮红色或绿色。
硬件准备
- Arduino开发板(如Arduino Uno)
- 双色LED共阴传感器
- 杜邦线若干
- 面包板(可选)
硬件连接
双色LED共阴传感器有三个引脚:红色阳极(R)、绿色阳极(G)和公共阴极(C)。公共阴极接地,红色和绿色阳极分别连接微控制器的GPIO引脚。
- 红色阳极(R) → 微控制器GPIO(如P1)
- 绿色阳极(G) → 微控制器GPIO(如P2)
- 公共阴极(C) → GND
基础代码示例
const int redPin = 9; // 红色阳极连接PWM引脚
const int greenPin = 10; // 绿色阳极连接PWM引脚
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
}
void loop() {
// 点亮红色
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
delay(1000);
// 点亮绿色
digitalWrite(redPin, LOW);
digitalWrite(greenPin, HIGH);
delay(1000);
}


注意事项
- 限流电阻:每个阳极引脚需串联电阻(通常220Ω-1kΩ),防止电流过大损坏LED。
- 共阴与共阳区别:共阴LED的阴极接地,共阳LED的阳极接VCC,控制逻辑相反。
- 电压匹配:确保微控制器输出电压与LED额定电压一致(通常3.3V或5V)。
接下来我们就要用到新的元件按钮了,让我们继续学习,这里稍微有点难,需要一点代码基础if语句和Switch-case语句!
硬件准备
- Arduino开发板(如Arduino Uno)
- 双色LED共阴传感器
- 杜邦线若干
- 面包板(可选)
- 按钮开关
- 电阻(220Ω用于LED限流,10kΩ用于按钮上拉/下拉)
硬件连接
双色LED共阴极传感器通常有三个引脚:共阴极(GND)、红色阳极(R)和绿色阳极(G)。按钮用于切换LED的颜色状态。
接线方式
- 双色LED的共阴极接GND
- 红色阳极(R)通过220Ω电阻接数字引脚
- 绿色阳极(G)通过220Ω电阻接另一数字引脚
- 按钮一端接数字引脚,另一端接GND(使用下拉电阻)或VCC(使用上拉电阻)
代码实现
以下是一个Arduino示例代码,按钮按下时切换LED颜色(红、绿、关闭循环):
const int redPin = 9; // 红色阳极连接的引脚
const int greenPin = 10; // 绿色阳极连接的引脚
const int buttonPin = 11; // 按钮连接的引脚
int buttonState = 0; // 按钮当前状态
int lastButtonState = 0; // 按钮上一次状态
int ledState = 0; // LED状态(0:关闭,1:红,2:绿)
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // 启用内部上拉电阻
}
void loop() {
buttonState = digitalRead(buttonPin);
// 检测按钮按下(低电平触发)
if (buttonState != lastButtonState) {
if (buttonState == LOW) {
ledState = (ledState + 1) % 3; // 循环切换状态
updateLED();
}
delay(50); // 防抖延迟
}
lastButtonState = buttonState;
}
void updateLED() {
// 根据状态控制LED
switch (ledState) {
case 0: // 关闭
digitalWrite(redPin, LOW);
digitalWrite(greenPin, LOW);
break;
case 1: // 红色
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
break;
case 2: // 绿色
digitalWrite(redPin, LOW);
digitalWrite(greenPin, HIGH);
break;
}
}
注意事项
- 按钮需硬件消抖(如并联电容)或软件消抖(如代码中的延迟)。
- 共阴极LED需确保阴极接地,阳极接控制信号。
- 若使用外部电阻,按钮电路建议采用下拉电阻(接GND)或上拉电阻(接VCC)。
谢谢大家的观看,同时如果喜欢3d打印和嵌入式开发的可以私信我!
更多推荐



所有评论(0)