🔌

磁気リードスイッチの使い方

2023/03/09に公開


MKA-10110 (組み込み向け)


SPS-320 (ドアの開閉向け)

特徴

  • 非接触な二つの金属板がガラスで覆われている
  • 磁力をかけることで金属板同士が接触する
  • 電子レンジのドアロックなどで使用される

補足

  • リードは Reed と書く
  • Reed = 葦(あし)のこと

部品

MKA-10110

https://akizukidenshi.com/catalog/g/gP-03676/

項目
定格開閉電圧 150V
定格開閉電流 0.5A
定格開閉皮相電力 15W

上の値が何に影響するのかはわからない。

SPS-320

https://akizukidenshi.com/catalog/g/gP-13371/

ドアの開閉に用いる場合は配線と磁石とねじがセットになったこちらの方が扱いやすそう。

配線

  • Vdd → 抵抗(10KΩ) → LED → GND
    • ここで LED が薄く点灯したら次へ
  • LED の前にリードスイッチを入れる
    • リードスイッチに向きはない
    • ここでリードスイッチに磁石を近づけたときだけLEDが点灯したら次へ
  • リードスイッチの前から派生して GPIO 7 に入力する
    • シリアルモニタが常時 1 になったらよし

確認しやすいようにリードスイッチのあとに LED を入れたけど、そもそもそこに LED を入れてよかったのかはわからない。

コード

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(7, INPUT);
}

void loop() {
  int value = digitalRead(7);
  Serial.println(value);
  digitalWrite(LED_BUILTIN, value);
  delay(1000 / 60);
}

10KΩの値はどこから来たのか?

Vdd 側についている抵抗なのでプルアップ抵抗ということになる。毎回疑問だが、その抵抗値 10K はどこから来たのだろうか? こちらの抵抗付きリードスイッチモジュールの抵抗値も 10K とのこと。

ChatGPT に聞く

Arduino のプルアップ抵抗またはプルダウン抵抗に 10KΩ がよく使われるのはどうしてですか?

Arduinoのデジタルピンに接続されたスイッチやセンサーなどの入力信号は、ピンがHIGHまたはLOWの状態を取るようにする必要があります。プルアップ抵抗またはプルダウン抵抗を使うことで、ピンがどちらの状態になるかを確実にすることができます。

プルアップ抵抗は、入力ピンとVCC(電源)間に接続され、ピンがスイッチやセンサーからの信号を受け取らない場合でも、ピンはHIGHの状態を維持します。スイッチやセンサーからの信号が入力されると、ピンはLOWになります。

同様に、プルダウン抵抗は、入力ピンとGND(接地)間に接続され、ピンがスイッチやセンサーからの信号を受け取らない場合でも、ピンはLOWの状態を維持します。スイッチやセンサーからの信号が入力されると、ピンはHIGHになります。

10KΩの抵抗がよく使われる理由は、入力ピンにかかる電流が適切であり、Arduinoの内部の抵抗とのバランスがとれるからです。また、10KΩは一般的に入手しやすく、コストも安価であるため、広く使われる標準的な値となっています。

どのような計算で10KΩが出ましたか?

10KΩの抵抗が一般的に使われる理由は、Arduinoの入力ピンの仕様と内部抵抗のバランスを考慮して選ばれた結果です。以下はその詳細な説明です。

Arduinoのデジタル入力ピンは、HIGHまたはLOWの状態を取るように設計されています。ピンがHIGHの状態になるためには、最低限の電圧(通常は3V)が必要です。入力ピンに何も接続されていない場合、ピンは電圧がない状態(floating)になり、ランダムな状態(HIGHまたはLOW)をとることがあります。これを防ぐために、入力ピンにプルアップまたはプルダウン抵抗を接続することが一般的です。

Arduinoの内部抵抗は、20KΩから50KΩの範囲にあります。プルアップまたはプルダウン抵抗を接続することにより、この内部抵抗とのバランスを取る必要があります。プルアップ抵抗の場合、10KΩが一般的に使用されます。これは、内部抵抗とプルアップ抵抗の並列回路において、ピンに流れる電流が最小限に抑えられるようになっています。また、10KΩは一般的に入手しやすく、コストも安価であるため、Arduinoにとって理想的な値とされています。

以上のように、10KΩの抵抗が一般的に使用される理由は、Arduinoの仕様と内部抵抗のバランスを考慮して選ばれた結果です。

バランスがよいからの一点だった。

参考

https://omoroya.com/arduino-lesson37/

Discussion