tonePitchFollower

はじめに

9番ピンに接続されたスピーカーに、A0ピンの電圧に応じた周波数の音を出力します。

プログラム

定義等

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
/*
  Pitch follower

  Plays a pitch that changes based on a changing analog input

  circuit:
  - 8 ohm speaker on digital pin 9
  - photoresistor on analog 0 to 5V
  - 4.7 kilohm resistor on analog 0 to ground

  created 21 Jan 2010
  modified 31 May 2012
  by Tom Igoe, with suggestion from Michael Flynn

  This example code is in the public domain.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/tonePitchFollower
*/
 

コメントだけで特に何もしていません。

setup()

20
21
22
23
24
void setup() {
  // initialize serial communications (for debugging only):
  Serial.begin(9600);
}
 

Serial.begin()を使ってシリアル通信の初期化を行います。

loop()

25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
void loop() {
  // read the sensor:
  int sensorReading = analogRead(A0);
  // print the sensor reading so you know its range
  Serial.println(sensorReading);
  // map the analog input range (in this case, 400 - 1000 from the photoresistor)
  // to the output pitch range (120 - 1500Hz)
  // change the minimum and maximum input numbers below depending on the range
  // your sensor's giving:
  int thisPitch = map(sensorReading, 400, 1000, 120, 1500);

  // play the pitch:
  tone(9, thisPitch, 10);
  delay(1);        // delay in between reads for stability
}

analogRead()を使って、アナログの0番ピン(A0と表します)から値を読みます。読み取った値は、まず、Serial.println()を使ってシリアルコンソールに出力します。

map()を使って、読み取った値を出力する周波数に変換します。このスケッチでは400から1000の範囲を120から1500に対応させています。その後、tone()を使い、変換後の周波数で音を出します。

バージョン

Hardware:Arduino Uno
Software:Arduino 1.8.16

最終更新日

September 11, 2021

inserted by FC2 system