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.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Kit Raphael |
337 |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE COMPONENTE |
LINK PER L’ACQUISTO |
|---|---|
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.
Procedure sperimentali
Passo 1: Costruisci il circuito.
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