戻る

50 ラーメンタイマ

回路かいろ

回路は22番のプログラム例と同じです。

Arduino と抵抗(1kΩ茶黒赤金, 1kΩから10kΩ(茶黒橙金)ぐらいならよい)とスイッチ、圧電スピーカを用意します。図のスイッチはタクトスイッチです。回路図のように Arduinoの2番ピンとスイッチの片方の足、抵抗の片方の足の3つをつなぎます。 スイッチの反対の足はグラウンド(GND)へ、抵抗の反対の足は5Vへつなぎます。 スイッチの向きを90度間違えると動作しないので注意してください。

プログラム

動作どうさ

このプログラムを実行している間にスイッチを押すとタイマーがスタートし、 3分が経過するとメロディーが流れます。プログラムを止めるには Ctrl+C を入力します。

解説かいせつ

このプログラムは大きく分けると5つに分かれています。

  1. (黄)初期化:13番ピンを出力にする
  2. (青)スイッチが押されるまで待つ
  3. (緑)0.5秒の間、LEDを点灯して音を出し、0.5秒の間、LEDを消灯する(175回→175秒)
  4. (赤)0.1秒の間、LEDを点灯して音を出し、0.1秒の間、LEDを消灯する(25回→5秒)
  5. (水色)メロディーを流す(チャルメラの前半)
1は一回だけ実行し、2から5をforの無限ループで繰り返します。
pinMode(13, OUTPUT);
for(;;) {
 while(digitalRead(2) == HIGH) {
  delay(10);
 }
 for(i=0; i<175; i=i+1) {
  digitalWrite(13, HIGH);
  tone(8, 1000);
  delay(100);
  noTone(8);
  delay(400);
  digitalWrite(13, LOW);
  delay(500);
 }
 for(i=0; i<25; i=i+1) {
  digitalWrite(13, HIGH);
  tone(8, 1000);
  delay(100);
  noTone(8);
  digitalWrite(13, LOW);
  delay(100);
 }

 tone(8, 523);
 delay(200);
 noTone(8);
 tone(8, 587);
 delay(200);
 noTone(8);
 tone(8, 659);
 delay(400);
 noTone(8);
 tone(8, 587);
 delay(200);
 noTone(8);
 tone(8, 523);
 delay(200);
 noTone(8);
}


戻る
(c) 2014 N. Mitsunaga
サンプルプログラムの著作権は放棄します。fritzingで作成した図は、そちらのライセンスに従って再配布して構いません。