ウェルカム¶
このプロジェクトでは、PIRセンサーを使用して人の存在を検出し、スピーカーを使用してコンビニエンスストアの入口のドアベルに似たドアベルをシミュレートします。 歩行者がPIRセンサーの範囲内に現れると、スピーカーが鳴り、ドアベルを模倣します。
必要なコンポーネント
このプロジェクトには以下のコンポーネントが必要です。
全体のキットを購入すると便利です。こちらがリンクです:
名称 |
このキットのアイテム数 |
リンク |
---|---|---|
Elite Explorer Kit |
300+ |
以下のリンクから別々に購入することもできます。
コンポーネント紹介 |
購入リンク |
---|---|
- |
|
- |
配線図
回路図
コード
注釈
ファイル
01_welcome.ino
をelite-explorer-kit-main\fun_project\01_welcome
のパスから直接開くことができます。または、このコードをArduino IDEにコピーしてください。
どのように動作しますか?
以下はコードの詳細な説明です:
ヘッダーファイルのインクルード:
analogWave.h
とpitches.h
という二つのヘッダーファイルをインクルードします。analogWave.h
ファイルにはanalogWave
クラスの定義が含まれており、pitches.h
には音楽ノートの定義が含まれています。オブジェクトのインスタンス化と定数の定義:
analogWave
クラスを使用してwave
オブジェクトを作成し、PIRセンサーに接続されたピンとしてPIR_PIN
を2として定義します。メロディ配列:
melody
配列は、音楽的なメロディを定義し、各ノートにはその持続時間を表す数が続きます。 負の数は点付きのノートを表し(持続時間を50%増加)、符点をつけます。グローバル変数:
関数間でデータを共有するためのグローバル変数を定義します。
setup()
:PIR_PIN
を入力として初期化し、wave.sine(10)
を使用して正弦波の周波数を10Hzに設定します。loop()
:PIRセンサーの値を継続的に監視します。 人の存在が検出されると(pirValueがHIGHの場合)、
playMelody()
関数を呼び出してメロディを演奏し、メロディの反復的な再生を防ぐために10秒待ちます。playMelody()
:この関数は
melody
配列のデータに基づいて各ノートの持続時間を計算し、対応するノートを演奏します。ノート間には短い一時停止があります。 この関数はwave.freq()
を使用して波形の周波数を設定し、delay()
関数を使用してノートとノート間の一時停止の持続時間を制御します。注意:このコードを実行する前に、
pitches.h
ヘッダーファイルが実際に存在することを確認してください。