刚刚得到一个Arduino,我正在弄乱灯的问题。
我相信我使用的是共阳极LED,所以我有三个颜色的引脚通过一个270欧姆的电阻到arduino上的10,11和12。最后一个直接挂钩到VSS。
很像这样:http://www.instructables.com/id/RGB-LED-Tutorial-using-an-Arduino-RGBL/step2/Testing/
现在,它正在与我预测的相反。当我写analogWrite( red, 0 )
时,LED点亮为红色,255点完全关闭。
现在,调整0-254的值几乎不会调整亮度。在闪烁一秒后,255完全关闭。
任何人都可以解释到底发生了什么吗?
答案 0 :(得分:9)
您的LED是共阳极,因此它与共阴极相反。试试这个:
int PWM_value = xxx;
analogWrite(red, 255 - PWM_value);
答案 1 :(得分:3)
AS A.H.指出,Pin 12不是PWM pin。 尝试更改您的代码以使用引脚9,10,11而不是10,11,12并再给它一次。
这是文档示例的修改版本,用于说明这个想法:
int rPin = 9;
int gPin = 10;
int bPin = 11;
int analogPin = 0; // potentiometer connected to analog pin 0
int val = 0; // variable to store the read value
void setup()
{
pinMode(rPin, OUTPUT); // sets the pin as output
pinMode(gPin, OUTPUT); // sets the pin as output
pinMode(bPin, OUTPUT); // sets the pin as output
}
void loop()
{
val = analogRead(analogPin); // read the input pin
analogWrite(rPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
analogWrite(gPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
analogWrite(bPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
}
请注意,您需要一个连接到模拟引脚0的传感器来更改LED值。
答案 2 :(得分:1)
[http://arduino.cc/en/Reference/analogWrite][1]
这里你没有改变任何东西。只是更新PWM引脚