Nota

Ciao, benvenuto nella Community di SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci il mondo di Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti a noi?

  • Supporto Tecnico Esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.

  • Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime Esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e alle anteprime.

  • Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni durante le festività.

👉 Sei pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!

2.1.3 Modulo Interruttore Tattile

Introduzione

In questo progetto imparerai a conoscere il modulo interruttore tattile. Questo può sostituire i tipi tradizionali di interruttori con i seguenti vantaggi: operazione conveniente, piacevole sensazione al tatto, controllo preciso e minore usura meccanica.

Componenti Necessari

Per questo progetto, avremo bisogno dei seguenti componenti.

../_images/2.1.3_touch_switch_list.png

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

Nome

COMPONENTI NEL KIT

LINK

Raphael Kit

337

Raphael Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE AI COMPONENTI

LINK D’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.3_touch_switch_schematic.png

Procedure Sperimentali

Passo 1: Costruisci il circuito.

../_images/2.1.3_touch_switch_circuit.png

Passo 2: Vai nella cartella del codice.

cd ~/raphael-kit/python-pi5

Passo 3: Esegui.

sudo python3 2.1.3_TouchSwitch_zero.py

Mentre il codice è in esecuzione, il LED rosso si accende; quando tocchi il modulo interruttore tattile, si accende il LED giallo.

Avvertimento

Se viene visualizzato l’errore RuntimeError: Cannot determine SOC peripheral base address, fare riferimento a If gpiozero doesn’t work..

Code

Nota

Puoi Modificare/Resettare/Copiare/Eseguire/Fermare il codice qui sotto. Ma prima, devi andare nella directory del codice come raphael-kit/python-pi5. Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l’effetto.

#!/usr/bin/env python3
from gpiozero import LED, Button  # Importa le classi LED e Button da gpiozero
from time import sleep  # Importa sleep per il ritardo

# Inizializza il sensore tattile (Button) sul pin GPIO 17, resistenza pull-up disabilitata
touch_sensor = Button(17, pull_up=False)  # Adatto a sensori che portano il pin a basso quando premuti

# Inizializza LED1 e LED2 collegati rispettivamente ai pin GPIO 22 e 27
led1 = LED(22)  # LED1 collegato al pin GPIO 22
led2 = LED(27)  # LED2 collegato al pin GPIO 27

try:
    # Controlla continuamente lo stato del sensore tattile e gestisce i LED di conseguenza
    while True:
        if touch_sensor.is_pressed:  # Verifica se il sensore tattile è premuto
            print('You touch it!')  # Messaggio di output che indica l'attivazione del sensore
            led1.off()  # Spegni LED1
            led2.on()   # Accendi LED2
        else:  # Se il sensore non è premuto
            led1.on()   # Accendi LED1
            led2.off()  # Spegni LED2

        sleep(0.5)  # Pausa di 0,5 secondi prima di verificare nuovamente lo stato del sensore

except KeyboardInterrupt:
    # Gestisci un'interruzione da tastiera (Ctrl+C) per una chiusura pulita dal ciclo
    pass

Spiegazione del Codice

  1. Questa linea imposta lo script per essere eseguito con Python 3. Importa LED e Button da gpiozero per controllare i dispositivi GPIO, e sleep da time per i ritardi.

    #!/usr/bin/env python3
    from gpiozero import LED, Button  # Importa le classi LED e Button da gpiozero
    from time import sleep  # Importa sleep per il ritardo
    
  2. Inizializza un sensore tattile (come Button) sul pin GPIO 17 con pull-up disabilitato, e due LED sui pin GPIO 22 e 27.

    # Inizializza il sensore tattile (Button) sul pin GPIO 17, resistenza pull-up disabilitata
    touch_sensor = Button(17, pull_up=False)  # Adatto a sensori che portano il pin a basso quando premuti
    
    # Inizializza LED1 e LED2 collegati rispettivamente ai pin GPIO 22 e 27
    led1 = LED(22)  # LED1 collegato al pin GPIO 22
    led2 = LED(27)  # LED2 collegato al pin GPIO 27
    
  3. Il ciclo principale controlla lo stato del sensore tattile. Quando toccato, LED2 si accende e LED1 si spegne; quando non toccato, LED1 è acceso e LED2 spento. Il ciclo si ripete ogni 0,5 secondi. Gestisce un’interruzione da tastiera (come Ctrl+C) per permettere una chiusura corretta dello script.

    try:
        # Controlla continuamente lo stato del sensore tattile e gestisce i LED di conseguenza
        while True:
            if touch_sensor.is_pressed:  # Verifica se il sensore tattile è premuto
                print('You touch it!')  # Messaggio di output che indica l'attivazione del sensore
                led1.off()  # Spegni LED1
                led2.on()   # Accendi LED2
            else:  # Se il sensore non è premuto
                led1.on()   # Accendi LED1
                led2.off()  # Spegni LED2
    
            sleep(0.5)  # Pausa di 0,5 secondi prima di verificare nuovamente lo stato del sensore
    
    except KeyboardInterrupt:
        # Gestisci un'interruzione da tastiera (Ctrl+C) per una chiusura pulita dal ciclo
        pass