配列に音符を入れる
CoddyのArduinoジャーニー「出力」セクションの一部。レッスン 13/24。
メロディーは音符のリストです。配列を使うと、1つの名前で値のリストを保持できます。
int notes[] = {262, 294, 330, 349}; // C, D, E, F各値にはインデックスと呼ばれる位置があり、数え始めるのは0です。notes[0]は262、notes[1]は294、最後のnotes[3]は349です。notes[4]はありません。これを読み取ると、配列の後ろのメモリにたまたま入っている値が得られます。
インデックスには変数を使えます。インデックスを保持し、その位置の音符を鳴らしてから、次に進めます。
int i = 0;
void loop() {
tone(8, notes[i]);
delay(400);
i = i + 1;
if (i == 4) {
i = 0;
}
}loop()が実行されるたびに、次の音符が鳴ります。最後の音符の後、インデックスは0に戻り、メロディーが再び始まります。
チャレンジ
簡単ピン 8 で音符 C、D、E、F をそれぞれ 400 ms ずつ、順番に繰り返し再生します。
- 4 つの周波数を配列に格納します: 262、294、330、349
loop()が実行されるたびに次の音を再生するためのインデックス変数を使います- 最後の音の後は、最初の音に戻ります
Run を押してから、Check を押します。
自分で試してみよう
const int buzzerPin = 8;
// ここでnotes配列とindex変数を作成する
void setup() {
}
void loop() {
// indexの位置にある音を鳴らし、400 ms待ってから次の音に進む
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
出力のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド