2012-05-08 54 views
0

我正在使用LED RGB LightStrips進行PWM項目。我根據鏈路Arduino PWM到Android IOIO 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); 
    } 
} 

當我讀到analogWrite的Arduino的這是255的最大PWM現在,當我插上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; 
      } 
     } 
    } 

注意我的頻率在490赫茲時與Arduino和IOIO相匹配。 現在,當我在引腳14上輸出一個PWM模時,LED開始點亮,但在接近其最大亮度之前達到最大值。如果我將PWM增加到255以上,藍色(以及紅色和綠色)的強度不會增加。我有12V到RGB燈條與爲3個LED燈(約1.75" 用於測試目的)的長度

是否有一個原因,我不能得到從IOIO相同的響應爲Arduino的?謝謝。

回答

1

您想要將pwm佔空比從0改爲1. 您現有的代碼更改脈衝寬度(以微秒爲單位)。