Overview

Tilt sensors detect changes in orientation, inclination, or vibration. They work using a rolling ball mechanism or mercury switch that completes a circuit when tilted beyond a certain angle. These sensors are perfect for security systems, motion detection, and orientation-based control applications. They provide simple digital output making them easy to integrate with microcontrollers.

Technical Specifications

Operating Voltage: 3.3V - 5V DC
Operating Current: < 1 mA
Tilt Angle: 10–60°
Output: Digital (ON/OFF)
Response Time: < 10 ms
Operating Temperature: −40 °C to +125 °C
Mechanical Life: 100,000+ cycles
Package: Cylindrical, 6mm dia

Key Features

  • Simple tilt and vibration detection
  • Digital ON/OFF output signal
  • Fast response time
  • Low power consumption
  • Wide operating temperature range
  • Long mechanical lifespan
  • Easy integration with microcontrollers
  • Cost-effective motion sensing solution

Wiring Diagram

Basic Connection (Arduino Uno)

Tilt Sensor Pin Arduino Pin
Pin 1 Digital Pin 2
Pin 2 GND
Pull-up Resistor Pin 2 to 5V (10kΩ)

Note: Use internal pull-up resistor or external 10 kΩ resistor for reliable operation.

Common Applications

Security Systems

Tamper detection and theft prevention

Motion Detection

Vibration and movement sensing

Orientation Control

Device positioning and tilt-based switching

Gaming Controllers

Motion-based game controls and interfaces

Quick Info

Difficulty: Beginner
Price Range: ₹80-250
Interface: Digital Switch

Sample Code

#define TILT_PIN 2
#define LED_PIN 13
#define BUZZER_PIN 8

void setup() {
  Serial.begin(9600);
  pinMode(TILT_PIN, INPUT_PULLUP);
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  
  Serial.println("Tilt Sensor Security System");
}

void loop() {
  int tiltState = digitalRead(TILT_PIN);
  
  if (tiltState == LOW) {
    digitalWrite(LED_PIN, HIGH);
    digitalWrite(BUZZER_PIN, HIGH);
    Serial.println("ALERT: Movement Detected!");
    delay(100);
    digitalWrite(BUZZER_PIN, LOW);
  } else {
    digitalWrite(LED_PIN, LOW);
    Serial.println("System Normal");
  }
  
  delay(500);
}