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.4 Interruttore a Slitta

Introduzione

In questo progetto, impareremo come utilizzare un interruttore a slitta. Solitamente, l’interruttore a slitta è saldato su PCB come interruttore di alimentazione, ma qui dobbiamo inserirlo nella breadboard, quindi potrebbe non essere fissato. Lo utilizziamo sulla breadboard per mostrare la sua funzione.

Componenti Necessari

Per questo progetto, avremo bisogno dei seguenti componenti.

../_images/2.1.4_slide_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

Interruttore a Scorrimento

ACQUISTA

Condensatore

ACQUISTA

Schema Elettrico

Collega il pin centrale dell’interruttore a slitta a GPIO17 e due LED rispettivamente ai pin GPIO22 e GPIO27. Quindi, quando sposti l’interruttore, vedrai i due LED accendersi alternativamente.

../_images/2.1.4_slide_switch_schematic_1.png ../_images/2.1.4_slide_switch_schematic_2.png

Procedure Sperimentali

Passo 1: Costruisci il circuito.

../_images/2.1.4_slide_switch_circuit.png

Passo 2: Accedi alla cartella del codice.

cd ~/raphael-kit/python-pi5

Passo 3: Esegui.

sudo python3 2.1.4_Slider_zero.py

Mentre il codice è in esecuzione, sposta l’interruttore verso sinistra e si accenderà il LED giallo; sposta l’interruttore verso destra e si accenderà la luce rossa.

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 accedere alla 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 per il controllo dei GPIO
from time import sleep  # Importa la funzione sleep per aggiungere ritardi

# Inizializza l'interruttore a slitta sul pin GPIO 17 con la resistenza pull-up disabilitata
micro_switch = Button(17, pull_up=False)
# Inizializza LED1 sul pin GPIO 22
led1 = LED(22)
# Inizializza LED2 sul pin GPIO 27
led2 = LED(27)

try:
    # Ciclo principale per controllare lo stato dei LED in base allo stato dell'interruttore a slitta
    while True:
        if micro_switch.is_pressed:  # Verifica se l'interruttore è premuto
            print('    LED1 ON    ')  # Stampa un messaggio di stato
            led1.on()   # Accendi LED1
            led2.off()  # Spegni LED2
        else:  # Se l'interruttore non è premuto
            print('    LED2 ON    ')  # Stampa un messaggio di stato
            led1.off()  # Spegni LED1
            led2.on()   # Accendi LED2

        sleep(0.5)  # Attendi 0,5 secondi prima di verificare nuovamente lo stato dell'interruttore

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 per il controllo dei GPIO
    from time import sleep  # Importa la funzione sleep per aggiungere ritardi
    
  2. Inizializza un interruttore a slitta collegato al pin GPIO 17 con la resistenza pull-up disabilitata, e due LED collegati ai pin GPIO 22 e 27.

    # Inizializza l'interruttore a slitta sul pin GPIO 17 con la resistenza pull-up disabilitata
    micro_switch = Button(17, pull_up=False)
    # Inizializza LED1 sul pin GPIO 22
    led1 = LED(22)
    # Inizializza LED2 sul pin GPIO 27
    led2 = LED(27)
    
  3. Il ciclo principale controlla lo stato dell’interruttore a slitta. Se premuto, LED1 si accende e LED2 si spegne; se non premuto, LED1 si spegne e LED2 si accende. Il ciclo si ripete ogni 0,5 secondi. Gestisce un’interruzione da tastiera (come Ctrl+C) per permettere una chiusura corretta dello script.

    try:
        # Ciclo principale per controllare lo stato dei LED in base allo stato dell'interruttore a slitta
        while True:
            if micro_switch.is_pressed:  # Verifica se l'interruttore è premuto
                print('    LED1 ON    ')  # Stampa un messaggio di stato
                led1.on()   # Accendi LED1
                led2.off()  # Spegni LED2
            else:  # Se l'interruttore non è premuto
                print('    LED2 ON    ')  # Stampa un messaggio di stato
                led1.off()  # Spegni LED1
                led2.on()   # Accendi LED2
    
            sleep(0.5)  # Attendi 0,5 secondi prima di verificare nuovamente lo stato dell'interruttore
    
    except KeyboardInterrupt:
        # Gestisci un'interruzione da tastiera (Ctrl+C) per una chiusura pulita dal ciclo
        pass