Arduino - Capteur d'Inclinaison SW520D

Le module de capteur d'inclinaison SW520D (également connu sous le nom d'interrupteur à bille ou capteur d'angle) est capable de détecter l'inclinaison ou les changements d'orientation. Il peut être utilisé pour créer des projets réactifs à l'inclinaison, comme une alarme qui se déclenche lorsqu'un objet est déplacé ou un servomoteur qui répond à l'orientation.

Dans ce tutoriel, nous allons apprendre à utiliser Arduino et un capteur d'inclinaison SW520D pour détecter l'inclinaison. En détail, nous allons apprendre :

Arduino SW520D tilt sensor

Ensuite, vous pouvez modifier le code pour activer une LED ou une lumière (via un relais) lorsqu'une inclinaison est détectée, ou même faire tourner un servomoteur.

Matériel Requis

1×Arduino Uno R3
1×Câble USB 2.0 type A/B (pour PC USB-A)
1×Câble USB 2.0 type C/B (pour PC USB-C)
1×SW520D Tilt Sensor Module
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables STEM V3 (Arduino inclus)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À Propos du Capteur d'Inclinaison SW520D

Le module de capteur d'inclinaison SW520D peut être utilisé pour détecter l'inclinaison ou les changements d'orientation dans l'environnement. À l'intérieur du module, il y a une petite bille métallique qui roule entre deux contacts électriques selon l'angle d'inclinaison. Le module émet un simple signal numérique (ON/OFF), ce qui facilite l'interface avec Arduino.

Brochage du Capteur d'Inclinaison SW520D

Le capteur d'inclinaison SW520D a trois broches :

  • Broche VCC : doit être connectée à VCC (3,3V à 5V)
  • Broche GND : doit être connectée à GND (0V)
  • Broche DO : est une broche de sortie : HAUTE lorsque le capteur est droit et BASSE lorsque le capteur est incliné. Cette broche doit être connectée à la broche d'entrée d'Arduino.
SW520D Tilt Sensor Pinout
image source: diyables.io

Le module de capteur d'inclinaison SW520D dispose également de deux indicateurs LED :

  • Un indicateur LED pour l'alimentation
  • Un indicateur LED pour l'état d'inclinaison : allumé lorsque le capteur est droit, éteint lorsqu'il est incliné

Fonctionnement

  • Lorsque le capteur est droit, la bille métallique à l'intérieur ferme le contact, et la broche de sortie est HAUTE.
  • Lorsque le capteur est incliné, la bille métallique à l'intérieur ouvre le contact, et la broche de sortie est BASSE.

Schéma de Câblage

Arduino SW520D Tilt Sensor Wiring Diagram

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Comment Programmer pour le Capteur d'Inclinaison SW520D

  • Initialise la broche Arduino en mode entrée numérique en utilisant la fonction pinMode(). Par exemple, la broche 5
pinMode(5, INPUT);
  • Lit l'état de la broche Arduino en utilisant la fonction digitalRead().
int tiltState = digitalRead(5);

Code Arduino - Détection de l'Inclinaison

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-sw520d-tilt-sensor */ // Arduino's pin connected to DO pin of the SW520D tilt sensor #define SENSOR_PIN 5 int lastState = HIGH; // the previous state from the input pin int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: currentState = digitalRead(SENSOR_PIN); if (lastState == HIGH && currentState == LOW) Serial.println("The tilt has been detected"); else if (lastState == LOW && currentState == HIGH) Serial.println("The tilt has disappeared"); // save the the last state lastState = currentState; }

Étapes Rapides

  • Copiez le code ci-dessus et ouvrez-le avec l'Arduino IDE
  • Cliquez sur le bouton Téléverser dans l'Arduino IDE pour téléverser le code sur Arduino
  • Inclinez le capteur SW520D dans tous les sens
  • Observez le résultat dans le Moniteur Série.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
The tilt has been detected The tilt has disappeared The tilt has been detected The tilt has disappeared
Ln 11, Col 1
Arduino Uno on COM15
2

Nous pouvons maintenant personnaliser le code pour activer une LED ou une lumière lorsqu'une inclinaison est détectée, ou même faire tourner un servomoteur. Vous pouvez trouver plus d'informations et des instructions étape par étape dans les tutoriels fournis à la fin de ce tutoriel.

Dépannage

Si le capteur d'inclinaison SW520D ne fonctionne pas correctement, essayez les étapes suivantes :

  • Vérifiez l'orientation : Le SW520D est sensible à son orientation de montage. Assurez-vous qu'il est installé dans la bonne position verticale pour une détection fiable.
  • Réduisez les vibrations : Le capteur d'inclinaison peut également capter les vibrations mécaniques. Le monter sur une surface solide peut aider à minimiser les fausses détections.
  • Vérifiez le câblage : Assurez-vous que les broches VCC, GND et DO sont correctement connectées.
  • Vérifiez l'alimentation : Assurez-vous que l'alimentation est stable pour des lectures cohérentes.

Vidéo

Références des Fonctions

Commentaires

Tutoriels connexes

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !