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.

../_images/2.1.3component.png

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

Nome

COMPONENTI IN QUESTO KIT

LINK

Raphael Kit

337

Raphael Kit

Puoi anche acquistarli separatamente dai link seguenti.

INTRODUZIONE AI COMPONENTI

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

Immagine del Fenomeno

../_images/2.1.3touch_switch_module.JPG