以下のパーツが必要になります。Arduino の電源は USB 経由で PC から供給します。スピーカーに SP50MM を使用する場合、配線をはんだづけする必要があるため別途工具が必要になります。
スピーカの背面の端子にジャンプワイヤをはんだづけした様子です。作業時は、はんだごてがスピーカの磁石に引きよせられることに注意します。
RE-210 等の焦電型赤外線センサおよびその周辺の増幅回路などがモジュール化された SE-10 を利用しているため、回路は非常にシンプルになります。Arduino の D2 端子をプルアップしておき、SE-10 が反応して ALARM 端子に電流が流れると D2 が LOW になるようにしてあります。ダイナミックスピーカ SP50MM は PWM が利用できる D13 ピン等に接続します。
http://schematics.com/project/anti-crime-buzzer-48536/
ちなみに、焦電型赤外線センサに被せられているフレネルレンズは、レンズとして機能して赤外線が検知しやすくなるだけでなく、スリットとしての機能も有します。焦電型赤外線センサは赤外線の変化量を検知するため、視野角内の熱源が移動しても検知できません。角度によって赤外線が遮断されるスリットを介することで、視野角内で移動する熱源も検知できるようになります。
センサ出力を監視し続けて、値が LOW になり次第 tone 関数を利用した簡単なメロディを鳴らします。
#define PIR_PIN 2
#define SPEAKER_PIN 13
// 'ド' 'レ' 'ミ' 'ファ' 'ソ' 'ラ' 'シ' 'ド'
// https://www.arduino.cc/en/Tutorial/ToneMelody?from=Tutorial.Tone
#define NOTE_C4 262
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 494
#define NOTE_C5 523
const int SOUND_SIZE = 7;
const int SOUNDS[][2] = { // ドレミのうた
{NOTE_C4, 400},
{NOTE_D4, 100},
{NOTE_E4, 300},
{NOTE_C4, 100},
{NOTE_E4, 200},
{NOTE_C4, 200},
{NOTE_E4, 150}
};
void setup() {
pinMode(PIR_PIN, INPUT);
}
void loop() {
if (digitalRead(PIR_PIN) == LOW) {
// 人体や動物の動きを検知
// Arduino の tone 関数で音を鳴らします。
// https://www.arduino.cc/en/Reference/Tone
for(int i = 0; i < SOUND_SIZE; ++i) {
tone(SPEAKER_PIN, SOUNDS[i][0], SOUNDS[i][1]);
delay(SOUNDS[i][1]);
}
delay(1000);
}
delay(100);
}