Nota
Ciao, benvenuto nella community di SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Immergiti più a fondo in Raspberry Pi, Arduino ed ESP32 con altri appassionati.
Perché unirti?
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 suggerimenti e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime.
Sconti speciali: Goditi 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.3 Modulo Interruttore Touch
Introduzione
In questo progetto imparerai a conoscere il modulo interruttore touch. Può sostituire i tipi di interruttore tradizionali con questi vantaggi: operazione conveniente, sensazione al tocco raffinata, 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 |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Kit Raphael |
337 |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE COMPONENTE |
LINK PER L’ACQUISTO |
|---|---|
Schema elettrico
Procedure sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Cambia la directory.
cd ~/raphael-kit/c/2.1.3/
Passo 3: Compila.
gcc 2.1.3_TouchSwitch.c -lwiringPi
Passo 4: Esegui.
sudo ./a.out
Durante l’esecuzione del codice, il LED rosso si accende; quando tocchi il modulo interruttore touch, il LED giallo si accende.
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 touchPin 0
#define led1 3
#define led2 2
int main(void)
{
// Se l'inizializzazione di wiring fallisce, stampa un messaggio sullo schermo
if(wiringPiSetup() == -1){
printf(etup w"siringPi failed !");
return 1;
}
pinMode(touchPin, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
while(1){
// interruttore touch alto, led1 acceso
if(digitalRead(touchPin) == 1){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
printf("You touch it! \r\n");
}
// interruttore touch 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 scheda di espansione T corrispondono ai
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 e led2 come output per scrivere valori su di essi e imposta touchPin come input per leggere il valore.
while(1){
// interruttore touch alto, led1 acceso
if(digitalRead(touchPin) == 1){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
printf("You touch it! \r\n");
}
// interruttore touch basso, led2 acceso
if(digitalRead(touchPin) == 0){
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
}
}
Imposta un ciclo infinito, quando tocchi il modulo interruttore touch, touchPin è alto, led1 si accenderà e verrà stampato «Lo hai toccato!». Quando touchPin è basso, il led2 si accenderà.