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

音を検出すると、マイクロフォン内のエレクトレットフィルムが振動し、静電容量が変化して微小な電圧変化が発生します。
次に、LM386チップを使って検出した音を最大200倍まで増幅する適切な回路を構築します。増幅率は可変抵抗で調整可能で、時計回りに回すと増幅率が大きくなります。
3. 配線図

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

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

6. 拡張コード
よく見かける廊下のライトは音声制御ライトの一種で、同時にフォトレジスターも含まれています。
これとは異なり、ここではLEDが音だけに影響されるモデルを作成します。アナログ音量が100を超えると、LEDが2秒間点灯し、その後消灯します。
フローチャート:

配線図:

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

完成コード:

7. コード説明
関連ピンを設定して音の値を読み取ります。

プロジェクト22 ノイズメーター
1. 説明
Arduinoノイズメーターは音の信号を一連のドットに変換し、それをドットマトリックスにパターン表示します。
2. 配線図

3. テストコード
基本ブロックをドラッグしディスプレイを初期化します。CSピンをIO15に、明るさを3に設定します。次に変数ブロックを追加し、型をint、名前を「item」、初期値を0に設定します。
変数ブロックを追加し名前を「item」にします。map関数を使い、読み取った音の値の範囲0-4095を0-7に変換します。ただし音の最大値は800と仮定します。

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

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


完成コード:

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