Note
Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l’univers des Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi rejoindre ?
Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.
Apprendre et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.
Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.
Promotions festives et cadeaux : Participez à des cadeaux et des promotions de vacances.
👉 Prêt à explorer et à créer avec nous ? Cliquez [Ici] et rejoignez-nous aujourd’hui !
2.1.5 Interrupteur à Bascule
Introduction
Ceci est un interrupteur à bascule à bille avec une bille en métal à l’intérieur. Il est utilisé pour détecter des inclinaisons de petits angles.
Composants Nécessaires
Dans ce projet, nous avons besoin des composants suivants.
Il est vraiment pratique d’acheter un kit complet, voici le lien :
Nom |
ÉLÉMENTS DANS CE KIT |
LIEN |
|---|---|---|
Kit Raphael |
337 |
Vous pouvez également les acheter séparément à partir des liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
|---|---|
- |
Schéma de Circuit
Procédures Expérimentales
Étape 1 : Construisez le circuit.
Étape 2 : Accédez au dossier du code.
cd ~/raphael-kit/nodejs/
Étape 3 : Exécutez le code.
sudo node tilt_switch.js
Placez l’interrupteur à bascule verticalement, et la LED verte s’allumera. Si vous le basculez, la LED rouge s’allumera. Replacez-le verticalement, et la LED verte se rallumera.
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
});
Importez le module pigpio et créez trois objets : led1, led2 et tilt. En lisant le niveau du port IO du tilt, on contrôle l’allumage et l’extinction de led1 et led2.
const tilt = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.EITHER_EDGE
});
Créez un objet tilt pour contrôler le port IO Gpio17, réglez-le en mode entrée avec une résistance de tirage vers le bas (niveau bas initialement). Définissez la fonction d’interruption, le mode est EITHER_EDGE, c’est-à-dire que les deux bords montants et descendants 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, écrivez le même niveau à led1 et l’opposé à led2. Lorsque le port IO du tilt est élevé, le terminal affiche « Horizontally »; lorsque le port IO du tilt est bas, le terminal affiche « Vertically ».
Phénomène Observé