[ESP32]リードスイッチ(KY-021)with Arduino IDE

ESP32

[ESP32]リードスイッチ(KY-021) with Arduino IDE

はじめに

KY-021 は、リードスイッチです。
リードスイッチと抵抗が基板上に接続されています。

ガラス管内にリードの一部が入っている。磁石を近づけることによりリードが磁化され、たわむことによりリードとリードが接触して通電する。
KY-003 では片極のみ反応していたが、リードスイッチは両極反応する。

KY-021 は、こちらのスターターキットの一部です。

開発環境

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

使用パーツ

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

リードスイッチ(KY-021)

ジャンパーワイヤー(メスーメス)

センサーについている場合は、必要ありません。

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

作業内容

配線図

KY-021 とは GPIO 23 を使用して接続します。

KY-021ESP32開発ボード(38Pin)
GND
SGPIO 23

ライブラリインストール

なし

スケッチ作成

#define REED_SWITCH 23
  
void setup() {
  Serial.begin(115200);
  pinMode(REED_SWITCH, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(REED_SWITCH) == LOW) {
    Serial.println("Magnetic detected !!");
    delay(1000);
  }
}
コード説明

使用するGPIOピンを設定します。

#define REED_SWITCH 23

使用するGPIOピンをインプットプルアップに設定します。

  pinMode(REED_SWITCH, INPUT_PULLUP);

HIGH,LOWを読み取ります。

  if (digitalRead(REED_SWITCH) == LOW) {

プルアップに設定したため通常は HIGH になり、磁石を検知した場合にスイッチが ON になり LOW となります。

動作確認

KY-021 に磁石を近づけてみてください。

シリアルモニタに「Magnetic detected !!」と表示されれば、成功です。

おわりに

コメント

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