#define CONTROL_PIN 5 // スピーカー・スイッチ接続ピン
void setup() {
// 最初は入力モードに設定
pinMode(CONTROL_PIN, INPUT);
}
void loop() {
// 接続ピンの電圧状態を確認
int status = digitalRead(CONTROL_PIN);
// もしHIGHだったら、ピンを一時的に出力モードにしてスピーカーを鳴らす
if( status == HIGH) {
pinMode(CONTROL_PIN, OUTPUT); // 出力モードにする
tone(CONTROL_PIN, 262, 250); // ドの音を1秒間鳴らす
pinMode(CONTROL_PIN, INPUT); // 入力モードに戻す
// 圧電スピーカーを鳴らした直後は電荷が溜まっているため
// 少し時間をおいて溜まった電荷を解放する必要があります
// この時間待ちがないと直後のdigitalReadでHIGHのままになり
// スピーカーが鳴り続けてしまいます
delay(500);
}
}