Nota
Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 con altri appassionati.
Perché Unirsi?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara & Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato agli annunci dei nuovi prodotti.
Sconti Speciali: Godi di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Omaggi: Partecipa a omaggi e promozioni speciali per le festività.
👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!
2.1.3 Interruttore a Inclinazione
Introduzione
Questo è un interruttore a inclinazione a sfera con una sfera di metallo all’interno. Viene utilizzato per rilevare inclinazioni di un piccolo angolo.
Componenti
Schema a Blocchi
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Vai alla cartella del codice.
cd ~/davinci-kit-for-raspberry-pi/nodejs/
Passo 3: Esegui il codice.
sudo node tilt_switch.js
Posiziona l’interruttore verticalmente e il LED verde si accenderà. Se lo inclini, il LED rosso si accenderà. Rimettendolo in posizione verticale, il LED verde si riaccenderà.
Codice
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);
});
Spiegazione del Codice
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
});
Importa il modulo pigpio e crea tre oggetti: led1, led2, e tilt. Controlla l’accensione e lo spegnimento di led1 e led2 leggendo il livello del pin di tilt.
const tilt = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.EITHER_EDGE
});
Crea un oggetto tilt per controllare il pin Gpio17, impostandolo come input con resistenza pull-down (inizialmente a livello basso). Imposta inoltre una funzione di interrupt che viene attivata su entrambi i fronti (EITHER_EDGE), quindi sia in salita che in discesa.
tilt.on('interrupt', (level) => {
if (level) {
console.log("Horizontally");
}
else {
console.log("Vertically");
}
led1.digitalWrite(level);
led2.digitalWrite(!level);
});
Quando si attiva l’interrupt, il livello letto viene assegnato a led1, mentre a led2 viene assegnato il livello opposto. Se il livello del pin tilt è alto, il terminale visualizza «Orizzontale»; Se il livello del pin tilt è basso, il terminale visualizza «Verticale».
Immagine del Fenomeno