電子ガジェットいろいろ

電子系のガジェットやアプリ開発等の話題を書いてます

超簡単電子工作!ArduinoでPC98起動音を再現

NECの国民機 PC-98シリーズの起動音をArduinoで超簡単に再現してみました。

今回はArduino UNO R3を使用しましたが、特別なことはしていないので、何でもよいです。
またArduinoエントリーキットだけで作ることができるので、初めての方はこれがお勧めです。


他に用意したものは圧電スピーカーとタクトスイッチのみです。
接続は下の図のように、DIGITAL3番に圧電スピーカー、DIGITAL4番にタクトスイッチを接続しました。
圧電スピーカーとタクトスイッチは両方とも、反対のピンはGNDに接続しています。
このままではスピーカーによっては結構大きな音がするので、その場合は適当に抵抗を挟んでください。

この構成でタクトスイッチを押すと、PC98の起動音が鳴るようにします。

PC98の起動音について調べたところ、
2000Hz 1秒
1000Hz 1秒
のようです。

これをArduinoのtone関数で再現してみると

tone(3, 2000); // 3番ピンに接続されたスピーカーを2000Hzで鳴らす
delay(100);    // 100ms(1秒)待つ
tone(3, 1000); // 3番ピンに接続されたスピーカーを1000Hzで鳴らす
delay(100);    // 100ms(1秒)待つ
noTone(3);     // 3番ピンに接続されたスピーカーを止める

になります

これを適用した全ソースコードは以下になります。

int is_button = 0;

void setup() {
  pinMode(4, INPUT_PULLUP);  // DIGITAL4番ピン プルアップで入力
}

void loop() {
  if (digitalRead(4) == LOW) {
    is_button = 1;
  } else {
    if (is_button == 1) {
      // ボタンを押して離したときに実行
      tone(3, 2000); // 3番ピンに接続されたスピーカーを2000Hzで鳴らす
      delay(100);    // 100ms(1秒)待つ
      tone(3, 1000); // 3番ピンに接続されたスピーカーを1000Hzで鳴らす
      delay(100);    // 100ms(1秒)待つ
      noTone(3);     // 3番ピンに接続されたスピーカーを止める
    }
    is_button = 0;
  }
  
}

これだけです。
初めての方はこれを機にArduinoの手軽さを実感できたらと思います。

Arduino エントリーキット(Uno版)- Physical Computing Lab

Arduino エントリーキット(Uno版)- Physical Computing Lab

80年代マイコン大百科

80年代マイコン大百科