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

Introduzione

In questo progetto impareremo a usare un interruttore a slitta. Di solito, l’interruttore a slitta è saldato su PCB come interruttore di alimentazione, ma qui dobbiamo inserirlo nel breadboard, quindi potrebbe non essere ben fissato. Lo utilizziamo sul breadboard per mostrarne la funzione.

Componenti necessari

In questo progetto abbiamo bisogno dei seguenti componenti.

../_images/list_2.1.2_slide_switch.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

Interruttore a Scorrimento

ACQUISTA

Condensatore

ACQUISTA

Schema elettrico

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

../_images/image305.png ../_images/image306.png

Procedure sperimentali

Passo 1: Costruisci il circuito.

../_images/image161.png

Passo 2: Vai nella cartella del codice.

cd ~/raphael-kit/c/2.1.4

Passo 3: Compila.

gcc 2.1.4_Slider.c -lwiringPi

Passo 4: Esegui il file eseguibile sopra.

sudo ./a.out

Durante l’esecuzione del codice, se l’interruttore è spostato a sinistra, il LED giallo si accende; a destra, si accende la luce rossa.

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 slidePin        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("setup wiringPi failed !");
        return 1;
    }
    pinMode(slidePin, INPUT);
    pinMode(led1, OUTPUT);
    pinMode(led2, OUTPUT);
    while(1){
        // interruttore a slitta alto, led1 acceso
        if(digitalRead(slidePin) == 1){
            digitalWrite(led1, LOW);
            digitalWrite(led2, HIGH);
            printf("LED1 on\n");
        }
        // interruttore a slitta basso, led2 acceso
        if(digitalRead(slidePin) == 0){
            digitalWrite(led2, LOW);
            digitalWrite(led1, HIGH);
            printf(".....LED2 on\n");
        }
    }
    return 0;
}

Spiegazione del codice

if(digitalRead(slidePin) == 1){
            digitalWrite(led1, LOW);
            digitalWrite(led2, HIGH);
            printf("LED1 on\n");
    }

Quando l’interruttore viene spostato verso destra, il pin centrale e quello di destra sono collegati; il Raspberry Pi legge un livello alto sul pin centrale, quindi LED1 si accende e LED2 si spegne.

if(digitalRead(slidePin) == 0){
            digitalWrite(led2, LOW);
            digitalWrite(led1, HIGH);
            printf(".....LED2 on\n");
        }

Quando l’interruttore viene spostato verso sinistra, il pin centrale e quello di sinistra sono collegati; il Raspberry Pi legge un livello basso, quindi LED2 si accende e LED1 si spegne.

Immagine del fenomeno

../_images/image162.jpeg