つまみで音の高さを変える
CoddyのArduinoジャーニー「出力」セクションの一部。レッスン 12/24。
つまみを使って、ブザーを楽器のように鳴らすことができます。考え方は調光器と同じです。つまみの値を読み取り、その値を変換して使います。
今回は、周波数が変換先の範囲です。200 Hzは低いハム音、2000 Hzは高い笛の音なので、次のようになります。
int reading = analogRead(A0);
int pitch = map(reading, 0, 1023, 200, 2000);
tone(8, pitch);map()では、新しい範囲を0から始める必要はありません。0は200に、1023は2000になり、つまみの中間では約1100になります。
新しい周波数で再びtone()を呼び出すと、音程はすぐに変わるため、つまみを回すと音程もそれに合わせて変化します。短いdelay(10)を入れると、スケッチが1秒間に何千回も音を再開するのを防げます。
チャレンジ
簡単ノブは A0 に、ブザーはピン 8 に接続されています。ノブで音の高さを設定しましょう:
- ノブの値を読み取る
map()で読み取り値を 200~2000 Hz の周波数に変換するtone()で音を鳴らし、その後 10 ms 待つ
Runを押してノブを回し、次にCheckを押してください。
自分で試してみよう
const int knobPin = A0;
const int buzzerPin = 8;
void setup() {
}
void loop() {
// ノブの値を読み取り、200..2000 Hz に変換して音を鳴らす
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
出力のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド