リードスイッチ with Arduino IDE
はじめに
リードスイッチとは、磁石を近づけると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)
ESP32 Development Board ESP-32S NodeMCU-32S MICRO/TYPE-C Wireless Module WiFi+Bluetooth ESP-WROOM-32 IOT Expansion Board - AliExpress 502
Smarter Shopping, Better Living! Aliexpress.com
電子工作ステーション 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回連続検知で状態を変化するなどした方が良いかもしれません。
コメント