質問: arduinoのサンプルプログラムのfor文が理解できないのですが、どなたか教えていただけないでしょうか?
回答: 基本的には、1つずつ増やすか?或いは減らすか?というものです。 analogWriteの第2引数は符号なし8ビット(0~255)です。 おおよそ、その強さでLEDが出力される、という事です。 重要なのは単なる計算だけでなく、その後にその範囲(0~255)になり代入される、という事です。 そのあたりを考慮してじっくり読み解いてください。(特に範囲外の場合の数値) コメント部に動きを付けておきました。 ※直接計算すれば()内の数値ですけど、それがbyteの範囲になり代入されます。 for(val=255; val>0; val--) { analogWrite(11, val);//255→1 analogWrite(10, 255-val);//0→254 analogWrite(9, 128-val);//129(-127)→255(-1),0→127 } for(val=0; val<255; val++) { analogWrite(11, val);//0→254 analogWrite(10, 255-val);//255→1 analogWrite(9, 128-val);//128→0,255(-1)→130(-126) } 動作的に言えば、緑があまり良くないです。(0→255、あるいは255→0が有るため、中間で急に色が変化する) 本来は、3相交流波形?のようにスケッチを書けば良いのでしょうけど、スケッチ的には難しく、解り難いものになります。