[ESP32]傾斜(ボール)センサー(KY-020) with Arduino IDE
はじめに
KY-020 は、傾斜(ボール)センサーです。
傾斜(ボール)センサーと抵抗が基板上に接続されています。
センサーの中にボールが内蔵されており、そのボールが動くことで HIGH と LOW が切り替わります。
ただし、HIGH の場合は、常に HIGH となるわけではなく、HIGH と LOW を繰り返す動作をします。
KY-020 は、こちらのスターターキットの一部です。
開発環境
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-020)
ジャンパーワイヤー(メスーメス)
電子工作ステーション https://electronicwork.shop/items/637f92415988dc5175f8a9ec
ブレッドボード
電子工作ステーション https://electronicwork.shop/items/622568eb4773a34f1c2e0966
抵抗内蔵LED
電子工作ステーション https://electronicwork.shop/items/654363e51d75b600325e389e
作業内容
配線図
KY-020 とは GPIO 23 を使用して接続します。
傾斜確認に抵抗内蔵LEDを GPIO12 に接続して使用しています。
(通常LEDを抵抗と一緒に接続しても良いですし、内蔵LEDのあればそちらでも可。)
傾斜(ボール)センサーの性質上、シリアルモニタでの確認はややこしいと思います。
KY-020 | ESP32開発ボード(38Pin) |
– | GND |
middle | 3.3V or 5V |
S | GPIO 23 |
抵抗内蔵LED | ESP32開発ボード(38Pin) |
アノード(長い方) | GPIO12 |
カソード(短い方) | GND |
ライブラリインストール
なし
スケッチ作成
#define TILT_SENSOR 23
#define LED 12
void setup ()
{
Serial.begin(115200);
pinMode(TILT_SENSOR, INPUT);
pinMode(LED, OUTPUT);
}
void loop ()
{
if (digitalRead(TILT_SENSOR) == HIGH) {
digitalWrite(LED, HIGH);
} else {
digitalWrite(LED, LOW);
}
}
コード説明
使用するGPIOピンを設定します。
#define TILT_SENSOR 23
#define LED 12
使用するGPIOピンをインプットに設定します。
pinMode(TILT_SENSOR, INPUT);
pinMode(LED, OUTPUT);
HIGH,LOWを読み取ります。
if (digitalRead(TILT_SENSOR) == HIGH) {
動作確認
KY-020 を傾けてみてください。
どの状態が通常位置なのか調べてもわかりませんでしたが、ブレッドボードに刺した状態では、LOW となり、そこから傾けると HIGH となって LED が点灯しました。
ただし、HIGH になる時、常に HIGH になっているわけではなく、HIGH と LOW を繰り返しています。
よって、シリアルモニタで確認する場合は、注意が必要です。
(LEDでは、HIGH と LOW の繰り返しが短いため点灯しているように見えます。)
コメント