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.

../_images/2.1.3component.png

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

Nome

ELEMENTI IN QUESTO KIT

LINK

Kit Raphael

337

Raphael Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE COMPONENTE

LINK PER L’ACQUISTO

Scheda di estensione GPIO

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistore

ACQUISTA

LED

ACQUISTA

Modulo Interruttore a Sfioramento

ACQUISTA

Schema elettrico

../_images/2.1.3circuit.png

Procedure sperimentali

Passo 1: Costruisci il circuito.

../_images/2.1.3fritzing.png

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à.

Immagine del fenomeno

../_images/2.1.3touch_switch_module.JPG