リードスイッチは、磁気ドアスイッチ、ラップトップ、スマートフォンなど、実際のアプリケーションの多くで使用されています。この記事では、リードスイッチについて学習し、リードスイッチとArduinoのインターフェイスについて説明します。
リードスイッチ
リードスイッチは、基本的 には磁場を近づけると作動する 電気スイッチです。これは、1936年にベル研究所でWBEllwoodによって発明されました。それは真空下でガラス管の中に保たれた2つの小さな金属片で構成されています。典型的なリードスイッチでは、2つの金属片が強磁性体でできており、ロジウムまたはルテニウムで覆われているため、長寿命です。磁界の存在があるときにスイッチが活性化されるスイッチの周囲に。
2つの金属片のガラス筐体は、汚れ、ほこり、その他の粒子からそれらを保護します。リードスイッチは、可燃性ガスが存在する環境や腐食が開いたスイッチ接点に影響を与える環境など、あらゆる環境で操作できます。
リードスイッチには2種類あります。
- ノーマルオープンリードスイッチ
- ノーマルクローズリードスイッチ
常開リードスイッチ、スイッチは、磁界の不在下でオープンであり、これは、磁場の存在下で閉鎖されます。磁場の存在下で、ガラス管内の2つの金属接点が互いに引き付け合って接触します。
常時閉のリードスイッチ、スイッチは、磁場の非存在下で閉じ、それは磁場の存在下で開放されています。
リードスイッチの用途
- 電話交換で使用
- ラップトップでは、ふたが閉じている場合に画面をスリープ状態にします
- 盗難警報システムの窓およびドアセンサーで使用
必要なコンポーネント
- Arduino Uno
- リードスイッチ
- 抵抗器
- 導いた
- 磁石
- 接続線
Arduinoリードスイッチの回路図
Arduinoでのリードスイッチの動作
Arduino Unoは、ATmega328pマイクロコントローラーをベースにしたオープンソースのマイクロコントローラーボードです。14個のデジタルピン(うち6個のピンはPWM出力として使用可能)、6個のアナログ入力、オンボード電圧レギュレーターなどがあります。ArduinoUnoには、32KBのフラッシュメモリ、2KBのSRAM、および1KBのEEPROMがあります。16MHzのクロック周波数で動作します。Arduino Unoは、他のデバイスと通信するためのシリアル、I2C、SPI通信をサポートしています。以下の表は、ArduinoUnoの技術仕様を示しています。
マイクロコントローラー |
ATmega328p |
動作電圧 |
5V |
入力電圧 |
7〜12V(推奨) |
デジタルI / Oピン |
14 |
アナログピン |
6 |
フラッシュメモリー |
32KB |
SRAM |
2KB |
EEPROM |
1KB |
クロック速度 |
16MHz |
するにはArduinoのでリードスイッチをインターフェイス我々は下図に示すように、分圧回路を構築する必要があります。Voは、スイッチが開いているときは+ 5V、スイッチが閉じているときは0Vです。このプロジェクトでは、 通常開いているリードスイッチ を使用してい ます 。スイッチは、磁場が存在する場合は閉じ、磁場がない場合は開きます。
コードの説明
このArduinoリードスイッチプロジェクトの完全なコードは、この記事の最後にあります。コードは意味のある小さなチャンクに分割され、以下で説明されています。
コードのこの部分では、リードスイッチとArduinoに接続されているLEDのピンを定義する必要があります。リードスイッチはArduinoのデジタルピン4に接続され、LEDは電流制限抵抗を介してArduinoのデジタルピン7に接続されます。変数 「reed_status」 は、リードスイッチのステータスを保持するために使用されます。
int LED = 7; int reed_switch = 4; int reed_status;
コードのこの部分では、LEDとリードスイッチが接続されているピンのステータスを設定する必要があります。ピン番号4が入力として設定され、ピン番号7が出力として設定されます。
void setup() { pinMode(LED、OUTPUT); pinMode(reed_switch、INPUT); }
次に、リードスイッチの状態を読み取る必要があります。1に等しい場合、スイッチが開いてLEDがオフになります。0に等しい場合、スイッチは閉じており、LEDをオンにする必要があります。このプロセスは毎秒繰り返されます。このタスクは、以下のコードのこの部分で実行されます。
void loop(){reed_status = digitalRead(reed_switch); if(reed_status == 1)digitalWrite(LED、LOW); それ以外の場合、digitalWrite(LED、HIGH); delay(1000); }
ご覧のとおり、Arduinoで非常に使いやすいリードスイッチです。