LEDRGBLightStripsを使用してPWMプロジェクトに取り組んでいます。リンクに従って回路を構築しています
http://www.ladyada.net/products/rgbledstrip/
今、私はArduinoをドロップして、AndroidIOIOボードを適用しようとしています。私の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);
}
}
最大pwmが255であるArduinoのanalogWriteについて読んだとき。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;
}
}
}
490HzでArduinoおよびIOIOと周波数が一致していることに注意してください。ここで、ピン14にPWM modを出力すると、LEDが点灯し始めますが、最大輝度に近づく前に最大になります。PWMを255より上に上げても、青(および赤と緑)の強度は上がりません。私はRGBライトストリップに12Vを持っており、3つのLEDライトの長さです(テスト目的で約1.75 ")
IOIOからArduinoと同じ応答が得られない理由はありますか?ありがとうございました。