- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Arduino UNO,我正在尝试打开和关闭 strip 的颜色(红色、绿色或蓝色)灯。这是我的代码,但所有灯都亮着。问题是,例如我可能只想显示红色,但我似乎无法关闭任何颜色。我的引脚如下:
相关代码:
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)。
尽管如此,您可能希望在晶体管基极上添加电阻以吸收电流。
编辑 3:由于您可能不熟悉电子产品:如果基极较低,PNP 晶体管将启用集电极和发射极之间的连接。含义:analogWrite(r, 0)
将打开 strip 上的颜色,analogWrite(r, 255)
将关闭它。它与中间的晶体管倒置。
此外,我希望这是显而易见的,请勿通过面包板或细线为每种颜色布线 5A。它们会冒烟。
关于c++ - 阿杜诺 | RGB LED 灯条 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38548926/
我是一名优秀的程序员,十分优秀!