このプログラムはArduinoボード上のLEDを点滅させます。 点滅の速さは半固定抵抗(可変抵抗)の角度で決まります。
analogRead(0)はA0ピンの電圧に比例した0から1023の値を返します。 A0ピンが0Vのときには0で、2.5Vで512、5Vで1023になります。 半固定抵抗(可変抵抗)の抵抗値は、つまみの角度に応じて変わります。 上の回路のようにグラウンドと5Vを1と3の端子につなぐと、2の端子の電圧が0Vから5Vまで、つまみの角度に応じてなめらかに変化します。
したがって
delay(analogRead(0));の行の待ち時間は、つまみの角度に応じて0秒から約1秒(1023ミリ秒)の間で変わります。
Arduinoに計算をさせることが出来ます。+,ー,×,÷は、それぞれ+, -, *, / の記号で表します。
delay(analogRead(0) + 500);とすると、待ち時間を決める値が500から1523の間になるので、0.5秒から1.5秒の間で変わるようになります。
delay(analogRead(0)*2);とすると、待ち時間を決める値が0から2046の間になるので、0秒から2秒の間で変わるようになります。
delay(analogRead(0)/2);とすると、待ち時間を決める値が0から511の間になるので、0秒から0.5秒の間で変わるようになります。
delay(analogRead(0)/2 + 500);とすると、待ち時間を決める値が500から1011の間になるので、0秒から1秒の間で変わるようになります。
ほんとうになるか試してみましょう。また1秒から10秒にするにはどうしたらいいでしょうか?1秒から1000秒になるようにしたとき、ちょうど10秒になるよう調整することは簡単でしょうか?難しいでしょうか。そうなる理由を考えてみましょう。