Nota

Ciao, benvenuto nella Community di appassionati di Raspberry Pi, Arduino e ESP32 di SunFounder su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti a noi?

  • Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra community e del nostro team.

  • Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Ottieni accesso anticipato ai nuovi annunci di prodotti e alle anteprime.

  • Sconti speciali: Godi di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e giveaway: Partecipa a concorsi e promozioni durante le festività.

👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!

2.1.1 Pulsante

Introduzione

In questo progetto, impareremo a accendere o spegnere il LED utilizzando un pulsante.

Componenti necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

../_images/list_2.1.1_Button.png

È sicuramente conveniente acquistare un kit completo, ecco il link:

Nome

OGGETTI IN QUESTO KIT

LINK

Raphael Kit

337

Raphael Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE AI COMPONENTI

LINK PER L’ACQUISTO

Scheda di estensione GPIO

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistore

ACQUISTA

LED

ACQUISTA

Pulsante

ACQUISTA

Schema elettrico

Utilizzare un pulsante normalmente aperto come ingresso del Raspberry Pi, la connessione è mostrata nello schema elettrico qui sotto. Quando il pulsante viene premuto, il GPIO18 passerà a livello basso (0V). Possiamo rilevare lo stato del GPIO18 attraverso la programmazione. Cioè, se il GPIO18 passa a livello basso, significa che il pulsante è stato premuto. Puoi eseguire il codice corrispondente quando il pulsante viene premuto e il LED si accenderà.

Nota

Il pin più lungo del LED è l’anodo e quello più corto è il catodo.

../_images/image302.png ../_images/image303.png

Procedure sperimentali

Passo 1: Costruisci il circuito.

../_images/image152.png

Passo 2: Vai alla cartella del codice.

cd ~/raphael-kit/nodejs/

Passo 3: Esegui il codice.

sudo node button.js

Adesso, premi il pulsante e il LED si accenderà; rilascia il pulsante e il LED si spegnerà.

Codice

const Gpio = require('pigpio').Gpio;


const led = new Gpio(17, {mode: Gpio.OUTPUT});

const button = new Gpio(18, {
  mode: Gpio.INPUT,
  pullUpDown: Gpio.PUD_DOWN,
  edge: Gpio.EITHER_EDGE
});


button.on('interrupt', (level) => {
  led.digitalWrite(level);
});

Spiegazione del codice

const Gpio = require('pigpio').Gpio;

const led = new Gpio(17, {mode: Gpio.OUTPUT});

Importa il modulo pigpio, crea un oggetto led per controllare la porta IO Gpio17 e impostalo in modalità output.

const button = new Gpio(18, {
  mode: Gpio.INPUT,
  pullUpDown: Gpio.PUD_DOWN,
  edge: Gpio.EITHER_EDGE
});

Crea un oggetto pulsante per controllare la porta IO Gpio18, impostandolo in modalità input, Pull down (basso quando il pulsante non è premuto, alto quando il pulsante è premuto). Imposta inoltre la funzione di interrupt, in modalità EITHER_EDGE, cioè sia i fronti di salita che quelli di discesa attiveranno la funzione di interrupt.

button.on('interrupt', (level) => {
  led.digitalWrite(level);
});

Scrivi una funzione di interrupt, quando il pulsante viene premuto, si verifica un fronte di discesa che attiva la funzione di interrupt, in questo momento scrive il livello basso della porta IO del pulsante nella porta IO del LED e il LED si accende.

Quando il pulsante viene rilasciato, si verifica un fronte di salita che attiva la funzione di interrupt, in questo momento scrive il livello alto della porta IO del pulsante nella porta IO del LED e il LED si spegne.

Immagine del fenomeno

../_images/image153.jpeg