Nota

Ciao, benvenuto nella community SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Immergiti più a fondo in Raspberry Pi, Arduino ed ESP32 insieme ad 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 esclusive.

  • Sconti speciali: Goditi sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e omaggi: Partecipa a concorsi e promozioni festive.

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

2.2.7 PIR

Introduzione

In questo progetto realizzeremo un dispositivo utilizzando sensori piroelettrici a infrarossi per il corpo umano. Quando qualcuno si avvicina al LED, il LED si accenderà automaticamente. Se non rileva movimento, la luce si spegnerà. Questo sensore di movimento a infrarossi è un tipo di sensore in grado di rilevare gli infrarossi emessi da persone e animali.

Componenti necessari

In questo progetto abbiamo bisogno dei seguenti componenti.

../_images/list_2.2.4_pir2.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 RGB

ACQUISTA

Modulo Sensore di Movimento PIR

-

Schema elettrico

../_images/image327.png

Procedure sperimentali

Passo 1: Costruisci il circuito.

../_images/image214.png

Passo 2: Vai alla cartella del codice.

cd ~/raphael-kit/c/2.2.7/

Passo 3: Compila il codice.

gcc 2.2.7_PIR.c -lwiringPi

Passo 4: Esegui il file eseguibile.

sudo ./a.out

Dopo l’esecuzione del codice, il sensore PIR rileva l’ambiente circostante e accende il LED RGB in giallo se rileva qualcuno che passa vicino.

Ci sono due potenziometri sul modulo PIR: uno per regolare la sensibilità e l’altro per regolare la distanza di rilevamento. Per far funzionare meglio il modulo PIR, è necessario ruotarli entrambi in senso antiorario fino in fondo.

../_images/PIR_TTE.png

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 <softPwm.h>
#include <stdio.h>
#define uchar unsigned char

#define pirPin    0     //il pir è connesso a GPIO0
#define redPin    1
#define greenPin  2
#define bluePin   3

void ledInit(void){
    softPwmCreate(redPin,  0, 100);
    softPwmCreate(greenPin,0, 100);
    softPwmCreate(bluePin, 0, 100);
}
void ledColorSet(uchar r_val, uchar g_val, uchar b_val){
    softPwmWrite(redPin,   r_val);
    softPwmWrite(greenPin, g_val);
    softPwmWrite(bluePin,  b_val);
}
int main(void)
{
    int pir_val;
    if(wiringPiSetup() == -1){ //se l'inizializzazione di wiring fallisce, stampa un messaggio sullo schermo
        printf("setup wiringPi failed !");
        return 1;
    }
    ledInit();
    pinMode(pirPin, INPUT);
    while(1){
        pir_val = digitalRead(pirPin);
        if(pir_val== 1){ //se il sensore pir rileva un livello ALTO
            ledColorSet(0xff,0xff,0x00);
        }
        else {
            ledColorSet(0x00,0x00,0xff);
        }
    }
    return 0;
}

Spiegazione del Codice

void ledInit(void);
void ledColorSet(uchar r_val, uchar g_val, uchar b_val);

Questi codici sono usati per impostare il colore del LED RGB. Per ulteriori dettagli, consulta 1.1.2 LED RGB.

int main(void)
{
    int pir_val;
    //……
    pinMode(pirPin, INPUT);
    while(1){
        pir_val = digitalRead(pirPin);
        if(pir_val== 1){ //se il sensore pir rileva un livello ALTO
            ledColorSet(0xff,0xff,0x00);
        }
        else {
            ledColorSet(0x00,0x00,0xff);
        }
    }
    return 0;
}

Quando il sensore PIR rileva lo spettro infrarosso umano, il LED RGB emette luce gialla; in caso contrario, emette luce blu.

Immagine del fenomeno

../_images/image215.jpeg