Nota
Ciao, benvenuto nella Community di appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci 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 comunità e del nostro team.
Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e alle anteprime.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e omaggi: Partecipa a omaggi e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!
2.1.1 Pulsante
Introduzione
In questo progetto, impareremo come accendere o spegnere un LED utilizzando un pulsante.
Componenti necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
COMPONENTI IN QUESTO KIT |
LINK |
|---|---|---|
Raphael Kit |
337 |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
Schema di Collegamento
Utilizza un pulsante normalmente aperto come ingresso per Raspberry Pi, il collegamento è mostrato nello schema sottostante. Quando il pulsante viene premuto, il GPIO18 sarà impostato a livello basso (0V). Possiamo rilevare lo stato del GPIO18 tramite il programma. Ovvero, se il GPIO18 diventa 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, mentre quello più corto è il catodo.
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Apri il file del codice.
cd ~/raphael-kit/c/2.1.1/
Nota
Cambia la directory nel percorso del codice per questo esperimento tramite cd.
Passo 3: Compila il codice.
gcc 2.1.1_Button.c -lwiringPi
Passo 4: Esegui il file eseguibile.
sudo ./a.out
Dopo l’esecuzione del codice, premi il pulsante e il LED si accenderà; altrimenti rimarrà spento.
Nota
Se non funziona dopo l’esecuzione o compare un messaggio di errore: "wiringPi.h: No such file or directory", consulta Installazione e verifica di WiringPi.
Codice
#include <wiringPi.h>
#include <stdio.h>
#define LedPin 0
#define ButtonPin 1
int main(void){
// Se l'inizializzazione di wiring fallisce, stampa un messaggio a schermo
if(wiringPiSetup() == -1){
printf("setup wiringPi failed !");
return 1;
}
pinMode(LedPin, OUTPUT);
pinMode(ButtonPin, INPUT);
digitalWrite(LedPin, HIGH);
while(1){
// Indica che il pulsante è stato premuto
if(digitalRead(ButtonPin) == 0){
// Accendi il LED
digitalWrite(LedPin, LOW);
// printf("...LED acceso\n");
}
else{
// Spegni il LED
digitalWrite(LedPin, HIGH);
// printf("LED spento...\n");
}
}
return 0;
}
Spiegazione del Codice
#define LedPin 0
Il pin GPIO17 sulla scheda T_Extension equivale al GPIO0 su wiringPi.
#define ButtonPin 1
ButtonPin è collegato a GPIO1.
pinMode(LedPin, OUTPUT);
Imposta LedPin come uscita per assegnargli un valore.
pinMode(ButtonPin, INPUT);
Imposta ButtonPin come ingresso per leggere il valore di ButtonPin.
while(1){
// Indica che il pulsante è stato premuto
if(digitalRead(ButtonPin) == 0){
// Accendi il LED
digitalWrite(LedPin, LOW);
// printf("...LED acceso\n");
}
else{
// Spegni il LED
digitalWrite(LedPin, HIGH);
// printf("LED spento...\n");
}
}
if (digitalRead (ButtonPin) == 0) : controlla se il pulsante è stato premuto.
Esegue digitalWrite(LedPin, LOW) quando il pulsante è premuto per accendere il LED.
La funzione digitalRead() serve a leggere HIGH (livello alto) o LOW (livello basso)
del pin parametro di input, restituisce 1 quando il pin è HIGH e restituisce 0 quando il
pin è LOW.
La funzione digitalWrite() serve a scrivere HIGH (livello alto) o LOW (livello basso)
sul pin parametro di input.
Immagine del Fenomeno