Interfacing of Ball Switch with Arduino

Ball Switch Module

A Ball Switch, also known as a tilt sensor or vibration sensor, detects physical orientation or movement. It uses a metal ball that rolls and makes contact with internal terminals to trigger signals. It's simple, low-cost, and perfect for motion detection projects.

Working Principle of Ball Switch

The Ball Switch works on a mechanical principle. Inside the switch, a small conductive ball rolls and completes a circuit when tilted in a specific direction. This change in state can be read as HIGH or LOW by a microcontroller like Arduino.

Types of Ball Switches

Mercury Tilt Switch

  • Uses mercury to create a conductive path.
  • Reliable but less environmentally friendly.
  • Not commonly used today due to safety concerns.

Metal Ball Switch

  • Ball moves and touches terminals inside the capsule.
  • Completes or breaks the circuit based on tilt angle.
  • Outputs digital signal based on position.

Requirements

1. Arduino

2. Ball Switch Module

3. Breadboard

4. Jumper wires

Pin Configuration of Ball Switch

Ball Switch Module

  • VCC: Connect to +5V on Arduino.
  • GND: Connect to GND on Arduino.
  • DO: Digital Output pin - connects to any digital input on Arduino.

Wiring the Ball Switch to Arduino

Connect the VCC and GND pins of the Ball Switch module to the Arduino's 5V and GND. Connect the DO (Digital Output) pin to a digital input pin (like D2). This allows the Arduino to monitor changes in tilt.

Algorithm

  1. Initialize Components

    • Connect the Ball Switch to Arduino (VCC, GND, and DO to digital pin).
    • Initialize the digital pin as INPUT in the setup() function.
  2. Write the Code

    • Use digitalRead() in the loop() function to check the tilt state.
    • Trigger LEDs or buzzers based on the sensor state.
  3. Implement Response

    • If the Ball Switch is tilted, perform a predefined action.
    • Example: Turn ON a warning LED or send a serial message.
  4. Test the System

    • Upload the sketch to Arduino.
    • Tilt the Ball Switch and observe the output.
    • Monitor changes via Serial Monitor or output indicators.
1//  Define pin connections
2const int ballSwitchPin = 2;  // Signal (OUT) pin of the Ball Switch connected to D2
3const int ledPin = 13;        // Built-in LED pin on most Arduino boards
4
5void setup() {
6  // Set ball switch pin as input
7  pinMode(ballSwitchPin, INPUT);
8
9  //  Set LED pin as output
10  pinMode(ledPin, OUTPUT);
11
12  // 🖥 Start Serial Monitor for debugging
13  Serial.begin(9600);
14  Serial.println("Ball Switch Initialized...");
15}
16
17void loop() {
18  // Read the state from the Ball Switch
19  int switchState = digitalRead(ballSwitchPin);
20
21  // Print sensor value to Serial Monitor
22  Serial.print("Ball Switch State: ");
23  Serial.println(switchState);
24
25  //  If switch is activated (i.e., tilted), turn ON the LED
26  if (switchState == HIGH) {
27    digitalWrite(ledPin, HIGH); // LED ON
28  } else {
29    digitalWrite(ledPin, LOW);  // LED OFF
30  }
31
32  delay(100); // Small delay to avoid reading too quickly
33}
34

Applications of Ball Switch Modules

  • Fall detection systems
  • Anti-theft alarms
  • Vibration sensing in appliances
  • Orientation sensing in robots
  • Toys and gadgets with motion activation
  • DIY tilt-based switches

Conclusion

The Ball Switch is a handy and affordable sensor for detecting orientation or motion. When connected to Arduino, it opens the door to a variety of creative and practical applications, from alarms to automation and interactive projects.