Tilt Switch Sensor Features
The function of this sensor is similar to a switch. There are 2 rolling ball inside the cylindrical housing of the sensor. Depending on how the two ball are positioned, the switch is connected and disconnected.
Tilt Switch Sensor Pinout
This sensor has 3 pins:
- VCC: Module power supply –3.3-5 V
- GND: Ground
- OUT: Digital output
You can see pinout of this module in the image below.
Required Materials
Hardware Components
Software Apps
Interfacing Tilt Switch Sensor with Arduino
Step 1: Circuit
The following circuit shows how you should connect Arduino to tilt switch sensor. Connect wires accordingly.
Step 2: Code
Upload the following code to your Arduino. This code turns the Arduino LED on and off based on the sensor angle.
/* Tilt Switch
Better Debouncer
This debouncing circuit is more rugged, and will work with tilt switches!
http://www.ladyada.net/learn/sensor/tilt.html
*/
int inPin = 2; // Tilt Sensor
int outPin = 13; // LED Pin
int LEDstate = HIGH; // the current state of the output pin
int reading; // the current reading from the input pin
int previous = LOW; // the previous reading from the input pin
// the following variables are long because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long time = 0; // the last time the output pin was toggled
long debounce = 50; // the debounce time, increase if the output flickers
void setup()
{
pinMode(inPin, INPUT);
digitalWrite(inPin, HIGH); // turn on the built in pull-up resistor
pinMode(outPin, OUTPUT);
}
void loop()
{
int switchstate;
reading = digitalRead(inPin);
// If the switch changed, due to bounce or pressing...
if (reading != previous) {
// reset the debouncing timer
time = millis();
}
if ((millis() - time) > debounce) {
// whatever the switch is at, its been there for a long time
// so lets settle on it!
switchstate = reading;
if (switchstate == HIGH)
LEDstate = LOW;
else
LEDstate = HIGH;
}
digitalWrite(outPin, LEDstate);
// Save the last reading so we keep a running tally
previous = reading;
}