[ESP32]傾斜(水銀)スイッチ(KY-017) with Arduino IDE
はじめに
KY-017 は、傾斜(水銀)スイッチです。
水銀センサーと抵抗・LEDが基板上に接続されています。
ガラス製の容器の中に水銀が入っており、容器を傾けると水銀が移動します。端子に水銀が接触すると通電し、端子から水銀が離れると電気が通らなくなることで、傾きを検知しています。
チャタリングが発生しないという特徴があります。
水銀は強い毒性があるため、容器を割らないように注意してください。

KY-017 は、こちらのスターターキットの一部です。
開発環境
OS : Windows 11 Pro
ESP32:ESP-WROOM-32
統合開発環境 : Arduino IDE 2.3.2
Arduino core for the ESP32:2.0.17
使用ライブラリ:なし
使用パーツ
ESP32開発ボード(38Pin)

電子工作ステーション https://electronicwork.shop/items/64134541d91711003035a5a6
傾斜(水銀)スイッチ (KY-017)
ジャンパーワイヤー(メスーメス)
センサーについている場合は、必要ありません。
電子工作ステーション https://electronicwork.shop/items/637f92415988dc5175f8a9ec
作業内容
配線図
KY-017 とは GPIO 23 を使用して接続します。

KY-017 | ESP32開発ボード(38Pin) |
– | GND |
middle | 3.3V or 5V |
S | GPIO 23 |
ライブラリインストール
なし
スケッチ作成
#define TILT_SENSOR 23
void setup ()
{
Serial.begin(115200);
pinMode(TILT_SENSOR, INPUT);
}
void loop ()
{
if (digitalRead(TILT_SENSOR) == HIGH) {
Serial.println("Tilt not detected");
} else {
Serial.println("Tilt detected !!");
}
delay(1000);
}
コード説明
使用するGPIOピンを設定します。
#define TILT_SENSOR 23
使用するGPIOピンをインプットに設定します。
pinMode(TILT_SENSOR, INPUT);
HIGH,LOWを読み取ります。
if (digitalRead(TILT_SENSOR) == HIGH) {
水銀が端子に接触しているとき、 LOW となります。
動作確認
KY-017 を傾けてみてください。




水銀が端子に接触していない時、LEDが消灯しシリアルモニタに「Tilt not detected」と表示されます。
水銀が端子に接触している時、LEDが点灯しシリアルモニタに「Tilt detected !!」と表示されます。
コメント