Experiment 21: SW-520D Angle Tilt Sensor Experiment

From Diustou Wiki

Arduino

Experimental Phenomenon

  • When the module detects a tilt greater than 45 degrees, the onboard LED lights up. When no tilt is detected or the tilt angle is less than 45 degrees, the onboard LED turns off.

Circuit Connection

  • 实验二十一:SW-520D角度倾斜传感器实验 接线.png

Reference Program

int Led = 13; // Define LED pin
int buttonpin = 3;  // Define tilt switch sensor pin
int val; // Define numerical variable val
 
void setup()
{
  pinMode(Led,OUTPUT); // Set LED as output pin 
  pinMode(buttonpin,INPUT); // Set tilt switch sensor as input pin
}

void loop()
{
  val = digitalRead(buttonpin); // Read digital value from pin 3 and assign it to val
  if(val == LOW)// When the tilt sensor detects the switch, the LED turns on 
  {
    digitalWrite(Led,HIGH);
  }
  else
  {
    digitalWrite(Led,LOW);
  }
}
 

Raspberry Pi

Circuit Connection

  • 实验二十一:SW-520D角度倾斜传感器实验 接线1.png

Program Execution

Python

  • Install the gpiozero library
    • You can use the following command to install the library:
sudo apt update
sudo apt install python3-gpiozero
  • For other systems on the Raspberry Pi, you can use the following command to install the library:
sudo pip3 install gpiozero
  • Run the following command to view the GPIO pin definitions on the Raspberry Pi:
pinout
  • Download the Raspberry Pi reference example, unzip the file, copy it to the user directory, and run it:
cd raspberrypi/21/python_gpiozero
python sensor.py
  • You can see the Raspberry Pi running the program correctly. To exit, press ctrl+C.
  • Command explanation: gpiozero.Button(pin, pull_up, active_state, bounce_time, hold_time, hold_repeat)
    • Button inherits from DigitalInputDevice and represents a simple button or switch. One end of the button is connected to the ground, and the other end is connected to any GPIO pin; or one end of the button is connected to the 3V3 pin, and the other end is connected to any GPIO pin, and then set pull_up to False in the Button's initialization method.
    • Main parameters:
      • pin: GPIO pin number;
      • pull_up: Internal pull-up/pull-down resistor setting,
        • When set to True (default), the GPIO pin is pulled high, and the other end of the button should be connected to ground.
        • When set to False, the GPIO pin is pulled low, and the other end of the button should be connected to 3V3.
        • When set to None, the GPIO pin is floating, and gpiozero cannot guess the active state, so active_state must be set.
      • active_state:
        • When set to True, the software considers the pin state as "high" when the hardware pin state is "high".
        • When set to False, the input polarity is reversed, and the software considers the pin state as "low" when the hardware pin state is "high".
        • When pull_up is set to None, use this parameter to set the unknown pin active state.
        • When pull_up is set to True or False, the pin's active state is automatically assigned.
      • bounce_time: Software debounce time. Generally, a switch has unstable signals within about 20ms, known as "switch bounce".
        • When set to None, no software debounce compensation is performed; otherwise, this parameter is the length of time (in seconds) that the component ignores after the initial change, with a default of 1s.
      • hold_time: The time after pressing the button until when_held is triggered, in seconds.
      • hold_repeat:
        • If True, when_held will continue to be triggered every hold_time seconds as long as the button remains pressed.
        • If False, when_held will only be triggered once.


  • Command explanation: gpiozero.LED(pin, pwm, active_high, initial_value)
    • Main parameters:
      • pin: GPIO pin number,
      • active_high:
        • When set to True (default), connect the negative lead of the LED to GND and the other end to the GPIO pin.
        • When set to False, connect the negative lead of the LED to the GPIO pin and the other end to the 3.3V pin.
      • initial_value:
        • If False (default), the LED initial state is off.
        • If None, the LED pin is in an unstable state.
        • If True, the LED initial state is on.

Example Download

Related Examples

Basic Experiment Kits and Examples for Arduino and Raspberry Pi
教程名2
  • 列表2
教程名3
  • 列表3
教程名4
  • 列表4
教程名5
  • 列表5
教程名6
  • 列表6