guruguru123’s diary

かなり雑な作業日記です。

PWMによるLED制御

PWMを用いると擬似的なアナログ信号が生成される。ということなので、

これを用いてLEDをだんだん明るくしたり暗くしたりするスケッチを書いた上で、

そのスケッチに、任意で明滅の周期を変えられるようにしていきたい。

今回はとりあえず周期が変わることには変わるが、forループを抜けるまで

シリアル通信で指定した数値が反映されないものになってしまった。

この部分の改善をしていきたい。

 

以下スケッチ

int k=2;
int l=2;
void setup() {
Serial.begin(9600);
}

void loop() {
int i,j;
if(Serial.available()>0){
k=Serial.read();
l=Serial.read();
}
for (i=0; i<256; i=i+k){
analogWrite(9, i);
j = 255 - i;
analogWrite(10, j);
delay(10);
}

for (i=255; i>-1; i=i-l){
analogWrite(9, i);
j = 255 -i;
analogWrite(10, j);
delay(10);
}
}