Nota
Ciao, benvenuto nella community di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti a noi?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e Condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a concorsi e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti subito!
2.1.1 Pulsante
Introduzione
In questo progetto, impareremo a utilizzare un pulsante per accendere o spegnere un LED.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
COMPONENTI NEL KIT |
LINK |
|---|---|---|
Raphael Kit |
337 |
Puoi anche acquistarli separatamente dai link seguenti.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
Schema Elettrico
Utilizza un pulsante normalmente aperto come input per il Raspberry Pi, come mostrato nello schema elettrico sottostante. Quando il pulsante viene premuto, il GPIO18 diventa a livello basso (0V). Possiamo rilevare lo stato del GPIO18 tramite il programma. Se il GPIO18 diventa a livello basso, significa che il pulsante è stato premuto. È possibile eseguire il codice corrispondente quando il pulsante viene premuto e successivamente 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 directory al percorso del codice di 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, premendo il pulsante il LED si accenderà, altrimenti rimarrà spento.
Nota
Se non funziona dopo l’esecuzione o viene visualizzato un errore come: "wiringPi.h: No such file or directory", fai riferimento a Installa e Controlla wiringPi.
Codice
#include <wiringPi.h>
#include <stdio.h>
#define LedPin 0
#define ButtonPin 1
int main(void){
// Se l'inizializzazione di wiring fallisce, stampa il 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){
// Accende il LED
digitalWrite(LedPin, LOW);
// printf("...LED acceso\n");
}
else{
// Spegne il LED
digitalWrite(LedPin, HIGH);
// printf("LED spento...\n");
}
}
return 0;
}
Spiegazione del Codice
#define LedPin 0
Il pin GPIO17 della T_Extension Board corrisponde al GPIO0 di wiringPi.
#define ButtonPin 1
Il ButtonPin è collegato al GPIO1.
pinMode(LedPin, OUTPUT);
Imposta LedPin come output per assegnare un valore.
pinMode(ButtonPin, INPUT);
Imposta ButtonPin come input per leggere il valore di ButtonPin.
while(1){
// Indica che il pulsante è stato premuto
if(digitalRead(ButtonPin) == 0){
// Accende il LED
digitalWrite(LedPin, LOW);
// printf("...LED acceso\n");
}
else{
// Spegne il LED
digitalWrite(LedPin, HIGH);
// printf("LED spento...\n");
}
}
if (digitalRead (ButtonPin) == 0) : verifica se il pulsante è stato premuto.
Esegui digitalWrite(LedPin, LOW) quando il pulsante è premuto per accendere il LED.
La funzione digitalRead() legge HIGH (livello alto) o LOW (livello basso) dal
pin specificato, restituisce 1 se il pin è HIGH e 0 se è LOW.
La funzione digitalWrite() scrive HIGH (livello alto) o LOW (livello basso) nel
pin specificato.
Immagine del Fenomeno