Note
Bonjour, bienvenue dans la communauté SunFounder Raspberry Pi & Arduino & ESP32 sur Facebook ! Plongez plus profondément dans l’univers du Raspberry Pi, d’Arduino et d’ESP32 avec d’autres passionnés.
Pourquoi nous rejoindre ?
Assistance d’experts : Résolvez les problèmes après-vente et surmontez les défis techniques avec l’aide de notre communauté et de notre équipe.
Apprenez et Partagez : Échangez des conseils et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Bénéficiez d’un accès anticipé aux annonces de nouveaux produits et à des avant-premières.
Réductions spéciales : Profitez de remises exclusives sur nos derniers produits.
Promotions festives et concours : Participez à des concours et à des promotions spéciales.
👉 Prêt à explorer et à créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !
2.1.3 Interrupteur à Inclinomètre
Introduction
Il s’agit d’un interrupteur à bascule à bille avec une bille métallique à l’intérieur. Il est utilisé pour détecter de petites inclinaisons angulaires.
Composants

Schéma de câblage


Procédures expérimentales
Étape 1 : Construire le circuit.

Étape 2 : Accéder au dossier du code.
cd ~/davinci-kit-for-raspberry-pi/nodejs/
Étape 3 : Exécuter le code.
sudo node tilt_switch.js
Placez l’interrupteur à inclinaison verticalement, et la LED verte s’allumera. Si vous le basculez, la LED rouge s’allumera. Replacez-le verticalement, et la LED verte s’allumera à nouveau.
Code
const Gpio = require('pigpio').Gpio;
const led1 = new Gpio(22, { mode: Gpio.OUTPUT });
const led2 = new Gpio(27, { mode: Gpio.OUTPUT });
const tilt = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.EITHER_EDGE
});
tilt.on('interrupt', (level) => {
if (level) {
console.log("Horizontally");
}
else {
console.log("Vertically");
}
led1.digitalWrite(level);
led2.digitalWrite(!level);
});
Explication du code
const Gpio = require('pigpio').Gpio;
const led1 = new Gpio(22, { mode: Gpio.OUTPUT });
const led2 = new Gpio(27, { mode: Gpio.OUTPUT });
const tilt = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.EITHER_EDGE
});
Importer le module pigpio
et créer trois objets : led1
, led2
et tilt
,
pour contrôler l’allumage et l’extinction des LEDs led1
et led2
en lisant le niveau de l’IO du tilt
.
const tilt = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.EITHER_EDGE
});
Créer un objet tilt
pour contrôler le port IO Gpio17
, en le définissant en mode d’entrée avec une résistance de tirage vers le bas (initialement en niveau bas).
Définir une fonction d’interruption en mode EITHER_EDGE
, c’est-à-dire que les deux transitions, montante et descendante, déclencheront la fonction d’interruption.
tilt.on('interrupt', (level) => {
if (level) {
console.log("Horizontally");
}
else {
console.log("Vertically");
}
led1.digitalWrite(level);
led2.digitalWrite(!level);
});
Lorsque l’interruption est déclenchée, écrire le même niveau dans led1
et le niveau opposé dans led2
.
Lorsque le port IO de tilt
est en niveau haut, le terminal affiche « Position Horizontale ».
Lorsque le port IO de tilt
est en niveau bas, le terminal affiche « Position Verticale ».
Image du résultat
