如何正确将 LED 连接至 Arduino

连接 LED 到 Arduino的 很简单,但是有 最佳实践 确保 安全操作和适当的亮度控制。以下是连接 LED 连接至 Arduino 同时避免常见的错误。


🔹 1. 基本 LED 连接(带电阻器)

🛠 必需组件

  • 1x Arduino(Uno、Mega、Nano 等)
  • 1 个 LED(任意颜色)
  • 1 个电阻(220Ω – 1kΩ)
  • 跳线

🛠接线:

元件连接升级包
LED 阳极(+,长脚)Arduino 数字 Pin (例如 D7)
LED 阴极(-,短脚)电阻 (220Ω – 1kΩ) → GND

📌 为什么要使用电阻器?

  • 限制电流以防止 LED 烧坏.
  • 典型 LED 电流应为 5mA – 20mA.
  • 对于 5V Arduino,建议使用 220Ω – 1kΩ 电阻.

✅ Arduino 代码示例:LED 闪烁

#define LED_PIN 7  // LED connected to pin 7

void setup() {
    pinMode(LED_PIN, OUTPUT);
}

void loop() {
    digitalWrite(LED_PIN, HIGH);  // Turn LED ON
    delay(1000);  // Wait 1 second
    digitalWrite(LED_PIN, LOW);   // Turn LED OFF
    delay(1000);
}

📌 怎么了?

  • 此 LED 每秒闪烁一次.

🔹 2. 使用 PWM(模拟输出)控制 LED 亮度

📌 PWM(脉冲宽度调制)可控制亮度 通过调整 LED 亮起和熄灭的时间长度。

🛠 接线(与基本设置相同)

  • 将 LED 连接到支持 PWM 的 pin (Arduino Uno 上的 D3、D5、D6、D9、D10、D11)。
  • 使用 220Ω – 1kΩ 电阻。

✅ Arduino 代码示例:LED 淡入淡出效果

#define LED_PIN 9  // PWM-capable pin

void setup() {
    pinMode(LED_PIN, OUTPUT);
}

void loop() {
    for (int brightness = 0; brightness <= 255; brightness++) {
        analogWrite(LED_PIN, brightness);  // Increase brightness
        delay(10);
    }
    for (int brightness = 255; brightness >= 0; brightness--) {
        analogWrite(LED_PIN, brightness);  // Decrease brightness
        delay(10);
    }
}

📌 怎么了?

  • 此 LED 亮度逐渐增加和减少.

🔹 3. 将多个 LED 连接到 Arduino

📌 您可以单独或按顺序控制多个 LED.

✅ 示例:多个 LED 闪烁

#define LED1 5
#define LED2 6
#define LED3 7

void setup() {
    pinMode(LED1, OUTPUT);
    pinMode(LED2, OUTPUT);
    pinMode(LED3, OUTPUT);
}

void loop() {
    digitalWrite(LED1, HIGH);
    delay(500);
    digitalWrite(LED1, LOW);

    digitalWrite(LED2, HIGH);
    delay(500);
    digitalWrite(LED2, LOW);

    digitalWrite(LED3, HIGH);
    delay(500);
    digitalWrite(LED3, LOW);
}

📌 怎么了?

  • 每个 LED 每 0.5 秒按顺序闪烁一次.

🔹 4. 使用晶体管控制大功率 LED

📌 如果你想控制大功率 LED(例如 12V LED 灯带或 1W/3W LED),Arduino 无法直接提供足够的电流.

🛠 必需组件

  • 1x NPN 晶体管(例如 BC547、2N2222、TIP120)
  • 1x 1kΩ电阻(基极电阻)
  • 1 个大功率 LED 或 LED 灯带(12V)
  • 1x 外部 12V 电源

🛠 接线

元件连接升级包
LED阳极+12V 电源
LED阴极晶体管集电极
晶体管发射极GND
晶体管基极Arduino PWM Pin (通过1kΩ电阻)

✅ 示例代码:大功率 LED 的 PWM 控制

#define LED_PIN 9  // Connect to transistor base via 1kΩ resistor

void setup() {
    pinMode(LED_PIN, OUTPUT);
}

void loop() {
    analogWrite(LED_PIN, 128);  // 50% Brightness
    delay(2000);
    analogWrite(LED_PIN, 255);  // 100% Brightness
    delay(2000);
}

📌 为什么要使用晶体管?

  • Arduino 无法处理大电流负载.
  • 晶体管允许 Arduino 使用外部电源控制大功率 LED.

🔹 5. 使用 MOSFET 控制 LED 灯带

📌 对于 RGB LED 灯带,MOSFET(IRLZ34N、IRF540N)是比晶体管更好的选择.

🛠 MOSFET 控制接线

元件连接升级包
LED 灯带 +12V电源
LED 灯带 –MOSFET 漏极
MOSFET 源极GND
MOSFET 栅极Arduino PWM Pin (通过220Ω电阻)

RGB LED 灯带的示例代码

#define RED_PIN 9
#define GREEN_PIN 10
#define BLUE_PIN 11

void setup() {
    pinMode(RED_PIN, OUTPUT);
    pinMode(GREEN_PIN, OUTPUT);
    pinMode(BLUE_PIN, OUTPUT);
}

void loop() {
    analogWrite(RED_PIN, 255);  // Full Red
    analogWrite(GREEN_PIN, 0);
    analogWrite(BLUE_PIN, 0);
    delay(1000);

    analogWrite(RED_PIN, 0);
    analogWrite(GREEN_PIN, 255);  // Full Green
    delay(1000);

    analogWrite(RED_PIN, 0);
    analogWrite(GREEN_PIN, 0);
    analogWrite(BLUE_PIN, 255);  // Full Blue
    delay(1000);
}

📌 怎么了?

  • 此 RGB LED 灯带循环显示红、绿、蓝三种颜色.

🔹 6. 连接 LED 时的常见错误

❌ 不使用电阻连接 LED → 可以 烧坏 LED 或损坏 Arduino pin.
✅ 始终使用电阻器(220Ω - 1kΩ) 至 限制电流.

❌ 将大功率 LED 直接连接到 Arduino → 可以 使 Arduino 过载 pin.
✅ 使用晶体管或 MOSFET 至 控制大电流 LED.

❌ 使用错误的 MOSFET(高栅极阈值电压) → 意志 无法通过 Arduino 的 5V 完全开启.
✅ 使用与 34V 逻辑兼容的逻辑电平 MOSFET(例如 IRLZ5N).


🎯 闭幕

  • 基本 LED 可 通过电阻直接连接到 Arduino.
  • PWM 允许亮度控制 (使用 analogWrite 以实现平滑衰落)。
  • 适用于多个 LED, 使用 顺序编程或移位寄存器.
  • 对于大功率 LED,使用 晶体管(BC547、TIP120)或MOSFET(IRLZ34N、IRF540N).
  • 用于 LED 灯条,使用 MOSFET 控制亮度和颜色.
📡广播信号——放大连接。

发表评论