【问题标题】:Arduino RGB LED issuesArduino RGB LED 问题
【发布时间】:2011-12-22 11:47:44
【问题描述】:

刚买了一个 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闪烁一秒后完全熄灭。

谁能解释一下到底发生了什么?

【问题讨论】:

  • 嗯...引脚 12 不是我的 Arduino 上的 PWM 引脚。所以analogWrite 不会像预期的那样工作。

标签: arduino


【解决方案1】:

您的 LED 是共阳极,因此它的工作原理与共阴极相反。试试这个:

int PWM_value = xxx;
analogWrite(red, 255 - PWM_value);

【讨论】:

    【解决方案2】:

    正如 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 值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多