1

我正在使用 LED RGB LightStrips 进行 PWM 项目。我有根据链接构建的电路

http://www.ladyada.net/products/rgbledstrip/

现在我正在尝试放弃 Arduino 并应用 Android IOIO 板。我的arduino代码如下...

void setup() {
pinMode(REDPIN, OUTPUT);
pinMode(GREENPIN, OUTPUT);
pinMode(BLUEPIN, OUTPUT);
}


void loop() {
  int r, g, b;

  // fade from blue to violet
  for (r = 0; r < 256; r++) { 
        analogWrite(REDPIN, r);
    delay(FADESPEED);
  } 
      // fade from violet to red
  for (b = 255; b > 0; b--) { 
                analogWrite(BLUEPIN, b);
        delay(FADESPEED);
          } 
  // fade from red to yellow
    for (g = 0; g < 256; g++) { 
    analogWrite(GREENPIN, g);
    delay(FADESPEED);
  } 
  // fade from yellow to green
  for (r = 255; r > 0; r--) { 
    analogWrite(REDPIN, r);
    delay(FADESPEED);
  } 
  // fade from green to teal
  for (b = 0; b < 256; b++) { 
    analogWrite(BLUEPIN, b);
    delay(FADESPEED);
  } 
  // fade from teal to blue
  for (g = 255; g > 0; g--) { 
    analogWrite(GREENPIN, g);
        delay(FADESPEED);
  } 
}

当我读到关于 Arduino 的模拟写入时,它的最大 pwm 为 255。现在当我插入 IOIO 板时,我的代码如下

public void setup() throws ConnectionLostException {
        try {

            blueOutput_ = ioio_.openPwmOutput(14, 490);
            led_ = ioio_.openDigitalOutput(IOIO.LED_PIN, true);
            enableUi(true);
        } catch (ConnectionLostException e) {
            enableUi(false);
            throw e;
        }
public void loop() throws ConnectionLostException {

            try {

                blueOutput_.setPulseWidth(seekBlue.getProgress());

                led_.write(!toggle.isChecked());
                sleep(10);

            } catch (InterruptedException e) {
                ioio_.disconnect();
            } catch (ConnectionLostException e) {
                enableUi(false);
                throw e;
            }
        }
    }

请注意,我的频率与 Arduino 和 IOIO 相匹配,为 490 Hz。现在,当我在引脚 14 上输出一个 PWM 模块时,LED 开始亮起,但在接近其最大亮度之前就已达到最大值。如果我将 PWM 增加到 255 以上,蓝色(以及红色和绿色)的强度不会增加。我在 RGB 灯条中有 12V 电压,长度为 3 个 LED 灯(大约 1.75 英寸用于测试目的)

我无法从 IOIO 获得与 Arduino 相同的响应是否有原因?谢谢你。

4

1 回答 1

2

您想在 0 到 1 之间更改 pwm 占空比。您现有的代码会更改脉冲宽度(以微秒为单位)。

于 2012-05-08T02:10:55.963 回答