Nota

Ciao, benvenuto nella Community SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino e ESP32 con altri appassionati.

Perché unirti a noi?

  • Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.

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

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

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

  • Promozioni Festive e Omaggi: Partecipa a giveaway e promozioni festive.

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

2.1.2 Interruttore a Scorrimento

Introduzione

In questa lezione impareremo a utilizzare un interruttore a scorrimento. Solitamente, l’interruttore a scorrimento è saldato sul PCB come interruttore di alimentazione, ma qui lo inseriamo nella breadboard, anche se potrebbe non essere ben saldo, per dimostrarne la funzione.

Componenti

../_images/list_2.1.2_slide_switch1.png

Principio

Interruttore a Scorrimento

../_images/image1561.jpeg

Un interruttore a scorrimento, come suggerisce il nome, funziona facendo scorrere la leva per connettere o interrompere il circuito, commutando così i circuiti. I tipi più comuni sono SPDT, SPTT, DPDT, DPTT, e vengono utilizzati frequentemente nei circuiti a bassa tensione. Presenta caratteristiche di flessibilità e stabilità, ed è ampiamente utilizzato in strumenti elettrici e giocattoli elettronici.

Funzionamento: Imposta il pin centrale come fisso. Quando fai scorrere l’interruttore a sinistra, i due pin a sinistra sono collegati; quando lo fai scorrere a destra, si collegano i due pin a destra. In questo modo, funziona come un interruttore per connettere o disconnettere i circuiti. Vedi la figura seguente:

../_images/image3041.png

Il simbolo del circuito dell’interruttore a scorrimento è mostrato di seguito. Il pin 2 nella figura si riferisce al pin centrale.

../_images/image1591.png

Condensatore

Un condensatore è un componente che ha la capacità di immagazzinare energia sotto forma di carica elettrica o di produrre una differenza di potenziale (tensione statica) tra le sue piastre, come una piccola batteria ricaricabile.

Unità standard di capacità:

Microfarad (μF) 1μF = 1/1.000.000 = 0,000001 = \(10^{- 6}\) F

Nanofarad (nF) 1nF = 1/1.000.000.000 = 0,000000001 = \(10^{- 9}\)F

Picofarad (pF) 1pF = 1/1.000.000.000.000 = 0,000000000001 = \(10^{- 12}\)F

Nota

Qui utilizziamo un condensatore 104 (10 x 10^4 PF). Proprio come gli anelli dei resistori, i numeri sui condensatori aiutano a leggere i valori una volta assemblati sulla scheda. Le prime due cifre rappresentano il valore e l’ultima cifra indica il moltiplicatore. Pertanto, 104 rappresenta una potenza di 10 x 10 alla 4 (in pF), pari a 100 nF.

Schema Elettrico

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

../_images/image3051.png ../_images/image3061.png

Procedure Sperimentali

Passo 1: Costruisci il circuito.

../_images/image1611.png

Passo 2: Vai alla cartella del codice.

cd ~/davinci-kit-for-raspberry-pi/c/2.1.2

Passo 3: Compila.

gcc 2.1.2_Slider.c -lwiringPi

Passo 4: Esegui il file eseguibile.

sudo ./a.out

Durante l’esecuzione del codice, collega l’interruttore a sinistra e si accenderà il LED giallo; spostandolo a destra, si accenderà il LED rosso.

Nota

Se non funziona dopo l’esecuzione, o appare un messaggio di errore: "wiringPi.h: No such file or directory", fai riferimento a Il codice C non funziona?.

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

Spiegazione del Codice

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

Quando l’interruttore è spostato a destra, il pin centrale e quello destro 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 è spostato a sinistra, il pin centrale e quello sinistro sono collegati; il Raspberry Pi legge un livello basso, quindi LED2 si accende e LED1 si spegne.