gpt4 book ai didi

c++ - 阿杜诺 | RGB LED 灯条 Controller

转载 作者:行者123 更新时间:2023-11-30 05:24:48 25 4
gpt4 key购买 nike

我有一个 Arduino UNO,我正在尝试打开和关闭 strip 的颜色(红色、绿色或蓝色)灯。这是我的代码,但所有灯都亮着。问题是,例如我可能只想显示红色,但我似乎无法关闭任何颜色。我的引脚如下:

  • 红色:5
  • 绿色:6
  • 蓝色:3

我的设置: enter image description here

默认 Controller 照片: enter image description here

相关代码:

int ledPinR = 5;
int ledPinG = 6;
int ledPinB = 3;

void setup() {
pinMode(ledPinR, OUTPUT);
pinMode(ledPinG, OUTPUT);
pinMode(ledPinB, OUTPUT);
}
void loop() {
analogWrite(ledPinR, 0);
analogWrite(ledPinG, 0);
analogWrite(ledPinB, 0);
}

最佳答案

我认为你误解了我在@Secko 的回答下的最后评论,所以这就是我的意思:

int r = 5;
int g = 6;
int b = 3;

void setup() {
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
}

void loop() {
analogWrite(r, 128);
delay(50);
analogWrite(r, 0);
analogWrite(g, 128);
delay(50);
analogWrite(g, 0);
analogWrite(b, 128);
delay(50);
analogWrite(b, 0);
delay(50);
}

您需要关闭上次打开的颜色才能获得红色、绿色和蓝色的闪烁灯。否则如果你在红色之后打开绿色, strip 会短时间变黄。如果您随后打开蓝色,它将变成白色并保持白色,因为不会关闭任何颜色。

第二个参数是施加到引脚的电压。它的范围是 0 - 255,其中 0 是 0V,255 是 5V。 128就在中间,2.5V。

如果你的灯带很大(=>3 个带高能效 LED 的 LED。否则 >1),我希望你使用晶体管将电流消耗从 arduino 卸载到晶体管。否则你很快就会搞砸 arduino。

编辑:您可能已经通过从其引脚拉出过多电流(过多的 LED)而烧毁了 arduino。

您需要在每种颜色和能够处理大电流的 arduino 之间放置一个 PNP 晶体管(因为您驱动大量 LED),这意味着达林顿晶体管阵列集成电路。

我想到了 TIP125 之类的东西。 ( https://www.fairchildsemi.com/datasheets/TI/TIP125.pdf )

它的最大集电极电流为 5A。把它放在你的 VCC 和 strip 的中间(VCC 到集电极, strip 到发射极)并将 arduino 连接到晶体管的基极。您将需要 3 个,每种颜色一个。

编辑 2:这是一个非常快速制作的示意图,向您展示基础知识。对于一个 12V LED 灯条来说,它应该具有完整的功能,单个颜色的电流消耗高达 5A(因此总共 15A)。

尽管如此,您可能希望在晶体管基极上添加电阻以吸收电流。

tip125/arduino transistor schematic

编辑 3:由于您可能不熟悉电子产品:如果基极较低,PNP 晶体管将启用集电极和发射极之间的连接。含义:analogWrite(r, 0) 将打开 strip 上的颜色,analogWrite(r, 255) 将关闭它。它与中间的晶体管倒置。

此外,我希望这是显而易见的,请勿通过面包板或细线为每种颜色布线 5A。它们会冒烟。

关于c++ - 阿杜诺 | RGB LED 灯条 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38548926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com