黒電話のBluetooth化③

作ってみたBluetooth,黒電話のBluetooth化

概要

ベルを鳴らす回路について、トランスで昇圧する回路の制作例を見つけたため改良します。

参考サイト

仕様検討

秋月電子のキットでは15V単電源から±48Vを作り出しています。回路図が公開されているので参考にしました。
昇圧には小型の電源トランス「HP-124」を使用しています。
パワーアンプのTA8201AKは入手性が悪かったので、前回同様にモータードライバで矩形波を作ります。

また、16HzでHigh/Lowを入れるだけの回路に高価なマイコンを使うのもどうかと思い、CH32V003J4M6を使ってみます。
秋月電子で40円で売られている激安マイコンです。

ブレッドボード上で原理試作したところ、回路電源は12Vでも出力は48V近くまで出ていたので、12V駆動で設計します。

回路図

仕様検討を元に回路図を作成します。

コーディング

ENABLEを内部プルアップで初期化しています。ENABLEとGNDを短絡させると鳴動し、離すと鳴動が止まります。

CH32VはArduinoでプログラムすると、クロック設定の関係でdelay()の長さが倍になってしまいます。
そのためプログラム上では約32Hzで設定しています。

#define PIN_IN1 PC2
#define PIN_IN2 PC1
#define PIN_ENABLE PC4

void setup() {
  pinMode(PIN_IN2, OUTPUT);
  pinMode(PIN_IN1, OUTPUT);
  pinMode(PIN_ENABLE, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(PIN_ENABLE) == LOW) {
    while (1) {
      for (int i = 0; i < 16; i++) {
        if (digitalRead(PIN_ENABLE) == HIGH) {
          digitalWrite(PIN_IN2, LOW);
          digitalWrite(PIN_IN1, LOW);
          break;
        }
        digitalWrite(PIN_IN2, HIGH);
        digitalWrite(PIN_IN1, LOW);
        delay(16);
        digitalWrite(PIN_IN2, LOW);
        digitalWrite(PIN_IN1, HIGH);
        delay(15);
      }
      digitalWrite(PIN_IN2, LOW);
      digitalWrite(PIN_IN1, LOW);
      if (digitalRead(PIN_ENABLE) == HIGH) {
        break;
      }
      delay(1000);
    }
  } else {
    digitalWrite(PIN_IN2, LOW);
    digitalWrite(PIN_IN1, LOW);
  }
}

動作確認

601-A2形の黒電話で動作確認しました。±24Vに比べて若干ですがしっかりと鳴っているように感じます。

黒電話だけでなく、一般的なプッシュホンも接続してみました。呼び出し部分の回路は同じなので当たり前なのですが、普通に呼び出し音が鳴ったのでちょっと感動です。
受話器が上がったのを検知して呼び出しを止める回路が実装できていないので、念の為受話器は挙げないようにしました。

メモ

ネットで調べた限りでは、電話回線の回線電圧は48Vとのことでした。
念の為、自宅のIP電話の電話回線の電圧を測ったところ47.5Vでした。

電話回線が48Vに決まったのは100年以上前で、当時の文献等が残っていないため、いつ・どこで・誰が決めたのかはわかっていないようです。100年以上も実用レベルで使われている通信規格と考えるとすごいですね。。。