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.3 Modulo Interruttore a Sfioramento
Introduzione
In questo progetto, imparerai a utilizzare un modulo interruttore a sfioramento. Può sostituire i tradizionali tipi di interruttori con questi vantaggi: operazione conveniente, sensazione al tatto fine, controllo preciso e minima usura meccanica.
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 seguenti.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
Schema Elettrico
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Cambia directory.
cd ~/raphael-kit/c/2.1.3/
Passo 3: Compila.
gcc 2.1.3_TouchSwitch.c -lwiringPi
Passo 4: Esegui.
sudo ./a.out
Mentre il codice è in esecuzione, il LED rosso si accende; quando tocchi il modulo interruttore a sfioramento, il LED giallo si accende.
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 touchPin 0
#define led1 3
#define led2 2
int main(void)
{
// Se l'inizializzazione di wiring fallisce, stampa il messaggio a schermo
if(wiringPiSetup() == -1){
printf(etup w"siringPi failed !");
return 1;
}
pinMode(touchPin, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
while(1){
// interruttore a sfioramento alto, led1 acceso
if(digitalRead(touchPin) == 1){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
printf("You touch it! \r\n");
}
// interruttore a sfioramento basso, led2 acceso
if(digitalRead(touchPin) == 0){
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
}
}
return 0;
}
Spiegazione del Codice
#define touchPin 0
#define led1 3
#define led2 2
I pin GPIO17, GPIO22 e GPIO27 della T_Extension Board corrispondono a GPIO0,
GPIO3 e GPIO2 in wiringPi. Assegna GPIO0, GPIO3 e GPIO2 a touchPin, led1 e led2.
pinMode(touchPin, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
Imposta led1, led2 come output per assegnare un valore a loro e imposta touchPin come input per leggere il valore da esso.
while(1){
// interruttore a sfioramento alto, led1 acceso
if(digitalRead(touchPin) == 1){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
printf("You touch it! \r\n");
}
// interruttore a sfioramento basso, led2 acceso
if(digitalRead(touchPin) == 0){
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
}
}
Imposta un ciclo infinito, quando tocchi il modulo interruttore a sfioramento, touchPin è alto, led1 si accende e viene stampato «Hai toccato!». Quando touchPin è basso, led2 si accende.