[ESP32]リードスイッチ

ESP32

リードスイッチ

はじめに

リードスイッチとは、磁石を近づけるとONになり、離すとOFFになるスイッチです。

扉の開閉検知や、バイク・自転車のスピードメーターなどの回転検知などに使用されています。

LED付きのリードスイッチ👉

開発環境

OS : Windows 11 Pro
ESP32:ESP-WROOM-32
統合開発環境 : Arduino IDE 2.3.2
Arduino core for the ESP32:1.0.6
使用ライブラリ:なし

使用パーツ

ESP32開発ボード(38Pin)

電子工作ステーション https://electronicwork.shop/items/64134541d91711003035a5a6

リードスイッチ

作業内容

配線図

リードスイッチ とは GPIO 15 を使用して接続します。
リードスイッチの端子はどちらに接続しても大丈夫です。

リードスイッチESP32開発ボード(38Pin)
GND
GPIO 15

ライブラリインストール

なし。

スケッチ作成

単純にON,OFFを検知するようなスケッチを作成します。

#define REED_SW 15

void setup() {
  pinMode(REED_SW, INPUT_PULLUP);
  Serial.begin(115200);
}

void loop() {
  delay(1000);

  byte reedDigital = digitalRead(REED_SW);
  if (reedDigital) {
    Serial.println("=== REEDSWITCH ON ===");
  } else {
    Serial.println("=== REEDSWITCH OFF ===");
  }
}
コード説明
  pinMode(REED_SW, INPUT_PULLUP);

👈GPIO 15 をプルアップに設定します。

  byte reedDigital = digitalRead(REED_SW);

👈デジタル信号を読み取ります。

磁石が近くにない場合にLOW磁石が近くにある場合にHIGH。となります。
プロアップ接続ですので、ONでLOW・OFFでHIGHと信号が逆転しているように見えます。

動作確認

リードスイッチに磁石を近づけていない状態で動作させてみると、シリアルモニタには「=== REEDSWITCH ON ===」が表示されます。

リードスイッチに磁石を近づけてみると。。。
「=== REEDSWITCH OFF ===」が表示されました。

おわりに

簡単に動作確認できました。運用時には、念のためにチャタリング防止として、5回連続検知で状態を変化するなどした方が良いかもしれません。

コメント

タイトルとURLをコピーしました