A tilt sensor (also called a ball switch or mercury switch) is a digital switch that changes its output based on orientation. When tilted beyond a certain angle, the internal mechanism (metal ball or mercury drop) makes or breaks contact, changing the signal.
📌 Key Features:
Simple ON/OFF output
Detects if the object is upright or tilted
Digital signal (HIGH or LOW)
No orientation angle info — only tilt or no tilt
📦 Types of Tilt Sensors:
Type
Inside it
Behavior
Metal ball type
Rolling metal ball
Conducts when level
Mercury type
Liquid metal drop
Conducts when tilted
MEMS Tilt Module
Accelerometer-based
Gives angle info
We’ll focus on the basic ball type, which is easiest to use with ESP32.
🧰 Components Needed:
ESP32 board
Tilt sensor module (KY-017, SW-520D, or similar)
Jumper wires
LED (optional for output)
🧪 How It Works:
Inside the sensor is a small metal ball.
When upright → ball connects two metal contacts → Circuit closed → Output LOW
When tilted → ball breaks contact → Circuit open → Output HIGH (or floating)
Some modules have built-in pull-up resistors and LED to indicate state.
🔌 Wiring Tilt Sensor to ESP32
Tilt Sensor Pin
ESP32 Pin
VCC
3.3V or 5V
GND
GND
OUT
GPIO 14 (or any digital pin)
🧠 What This Code Does:
Reads digital value from the sensor.
If LOW: the sensor is upright.
If HIGH: the sensor is tilted.
LED shows the state.
💡 Real-world Applications
Use Case
Description
🛠️ Anti-Tamper Alarm
Alert when a box/device is moved
🔒 Laptop Security
Lock or alert if tilted or stolen
🎮 Game Controller
Basic motion control in DIY games
🛑 Vehicle Crash Alert
Detect if a device tips over
📦 Package Monitoring
Detect tilting during delivery/shipping
🛠️ Sensor Not Working? Troubleshooting:
Problem
Fix
No response
Check VCC, GND, and OUT connection
Inverted readings
Try changing logic (HIGH/LOW check)
Floating output
Add external pull-up/down resistor
No LED on module
Try tilting more or check supply voltage
HOW TO OPERATE// #include <LiquidCrystal_I2C.h>#defineMOI 15// LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line displayvoidsetup(){pinMode(MOI,INPUT);Serial.begin(9600);Serial.println("MOISTURE START");// lcd.init();// lcd.backlight();// lcd.setCursor(3,0);// lcd.print("moisture data");// lcd.setCursor(3, 1);}voidloop(){int data=analogRead(MOI);Serial.println(data);// lcd.print(data);delay(1000);// lcd.clear();}
Water quality is one of the most important factors in drinking water, aquaculture, industries, and environmental monitoring. A Turbidity Sensor... Read More
ESP32 with 2-Channel Relay Module: A Beginner's GuideIntroductionThe ESP32 is a powerful microcontroller that has gained immense popularity due to... Read More
Are you searching for robotics components in Kanpur for projects, training, or experiments?IoT Web Planet is your one-stop destination for... Read More
The APDS-9960 is an advanced, compact sensor from Broadcom (formerly Avago Technologies) that offers multiple sensing capabilities in one chip. It is widely used... Read More
ESP32 Joystick Controlled Robot Using ESP-NOW Protocol & L298N Motor DriverWireless bot control with speed adjustment via joystick tilt📝 IntroductionIn... Read More
IntroductionIn today's age of automation, controlling devices remotely has become increasingly popular. One of the most common applications is controlling... Read More
Leave a Reply
You must be logged in to post a comment.