Menu
CoddyTech

つまみで音の高さを変える

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秒間に何千回も音を再開するのを防げます。

challenge icon

チャレンジ

簡単

ノブは 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 に変換して音を鳴らす
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

出力のすべてのレッスン

自分で練習してみよう: Arduinoプレイグラウンド