プロジェクト21 音声制御LED

1. 説明

音声制御LEDは、音を検出してLEDの明るさを制御する装置で、Arduinoボードといくつかの部品で構成されています。マイクロフォンなど複数のセンサーに接続可能です。音を電圧信号に変換し、その信号をArduinoが受け取ってLEDの点灯・消灯を制御します。

2. 動作原理

音を検出すると、マイクロフォン内のエレクトレットフィルムが振動し、静電容量が変化して微小な電圧変化が発生します。

次に、LM386チップを使って検出した音を最大200倍まで増幅する適切な回路を構築します。増幅率は可変抵抗で調整可能で、時計回りに回すと増幅率が大きくなります。

3. 配線図

4. テストコード

「Sound」カテゴリの「値を読む」ブロックを見つけ、読み取った音の値をシリアルポートに表示します。ブロックは以下のように組み立ててください。音センサー使用時はdelayを入れないよう注意してください。

5. テスト結果

配線を接続しコードをアップロードした後、シリアルモニターを開きボーレートを9600に設定すると、アナログ値が表示されます。

6. 拡張コード

よく見かける廊下のライトは音声制御ライトの一種で、同時にフォトレジスターも含まれています。

これとは異なり、ここではLEDが音だけに影響されるモデルを作成します。アナログ音量が100を超えると、LEDが2秒間点灯し、その後消灯します。

フローチャート:

配線図:

コード:

  1. 基本ブロックを2つドラッグします。

  2. 「if else」ブロックをドラッグし、六角形には「item>100」ブロックを入れます。値は「sound IO33の値を読む」に設定します。条件が満たされた場合、IO25ピンでLEDをHIGHレベルにし2秒遅延させます。そうでなければ、同じピンでLOWレベルを出力し遅延はありません。

完成コード:

7. コード説明

関連ピンを設定して音の値を読み取ります。

プロジェクト22 ノイズメーター

1. 説明

Arduinoノイズメーターは音の信号を一連のドットに変換し、それをドットマトリックスにパターン表示します。

2. 配線図

3. テストコード

  1. 基本ブロックをドラッグしディスプレイを初期化します。CSピンをIO15に、明るさを3に設定します。次に変数ブロックを追加し、型をint、名前を「item」、初期値を0に設定します。

  2. 変数ブロックを追加し名前を「item」にします。map関数を使い、読み取った音の値の範囲0-4095を0-7に変換します。ただし音の最大値は800と仮定します。

  1. ディスプレイをクリアします。

  2. 条件をプログラムします。変数itemが-1より大きければ、ドットマトリックスは(x0:0 y0:0 x1:1 y1:0)を赤色で表示します。

  1. ステップ4を繰り返しますが、判定はitemが0より大きいかどうかです。条件を満たせば(x0:1 y0:0 x1:1 y1:1)のドットが点灯します。同様に以下の座標を参照してコードブロックを構築します。

  2. 最後にディスプレイを更新します。

参照座標:

完成コード:

4. テスト結果

配線を接続しコードをアップロードすると、ノイズレベルがドットマトリックスに表示されます。以下のように表示されます。