.. note::
Ciao, benvenuto nella Community su Facebook per gli appassionati di SunFounder Raspberry Pi, Arduino e ESP32! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
**Perché unirti a noi?**
- **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 consigli e tutorial per migliorare le tue competenze.
- **Anteprime Esclusive**: Ottieni accesso anticipato agli annunci dei nuovi prodotti e anteprime esclusive.
- **Sconti Speciali**: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
- **Promozioni e Giveaway Festivi**: Partecipa a concorsi e promozioni in occasione delle festività.
👉 Pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti oggi stesso!
3.1.1 Dispositivo Contatore
==============================
Introduzione
-------------
Qui realizzeremo un sistema di conteggio che visualizza numeri, composto da
un sensore PIR e un display a 4 cifre. Quando il sensore PIR rileva il passaggio
di una persona, il numero sul display a 4 cifre aumenterà di 1. Puoi utilizzare
questo contatore per contare il numero di persone che attraversano un passaggio.
Componenti
-------------
.. image:: img/list_Counting_Device1.png
:align: center
.. image:: img/list_Counting_Device2.png
:align: center
Schema di Collegamento
-------------------------
============ ======== ======== ===
T-Board Name physical wiringPi BCM
GPIO17 Pin 11 0 17
GPIO27 Pin 13 2 27
GPIO22 Pin 15 3 22
SPIMOSI Pin 19 12 10
GPIO18 Pin 12 1 18
GPIO23 Pin 16 4 23
GPIO24 Pin 18 5 24
GPIO26 Pin 37 25 26
============ ======== ======== ===
.. image:: img/Schematic_three_one1.png
:align: center
Procedure Sperimentali
---------------------------
**Passo 1**: Costruisci il circuito.
.. image:: img/image235.png
:width: 800
**Passo 2**: Accedi alla cartella del codice.
.. raw:: html
.. code-block::
cd ~/davinci-kit-for-raspberry-pi/c/3.1.1/
**Passo 3**: Compila il codice.
.. raw:: html
.. code-block::
gcc 3.1.1_CountingDevice.c -lwiringPi
**Passo 4**: Esegui il file eseguibile.
.. raw:: html
.. code-block::
sudo ./a.out
Dopo l'esecuzione del codice, quando il PIR rileva il passaggio di una
persona, il numero sul display a 4 cifre aumenterà di 1.
Sul modulo PIR sono presenti due potenziometri: uno per regolare la
sensibilità e l'altro per regolare la distanza di rilevamento. Per far
funzionare meglio il modulo PIR, è necessario ruotare entrambi in senso
antiorario fino al massimo.
.. note::
Se non funziona dopo l'esecuzione o compare un messaggio di errore: \"wiringPi.h: No such file or directory\", consulta :ref:`faq_c_nowork`.
**Spiegazione del Codice**
.. code-block:: c
void display()
{
clearDisplay();
pickDigit(0);
hc595_shift(number[counter % 10]);
clearDisplay();
pickDigit(1);
hc595_shift(number[counter % 100 / 10]);
clearDisplay();
pickDigit(2);
hc595_shift(number[counter % 1000 / 100]);
clearDisplay();
pickDigit(3);
hc595_shift(number[counter % 10000 / 1000]);
}
Inizia con il quarto segmento del display e scrive il numero delle unità.
Poi passa al terzo segmento e scrive le decine; successivamente visualizza
le centinaia e le migliaia sui segmenti restanti. Poiché la velocità di
aggiornamento è molto elevata, vediamo un display completo a quattro cifre.
.. code-block:: c
void loop(){
int currentState =0;
int lastState=0;
while(1){
display();
currentState=digitalRead(sensorPin);
if((currentState==0)&&(lastState==1)){
counter +=1;
}
lastState=currentState;
}
}
Questa è la funzione principale: visualizza il numero sul display a 4 cifre e
legge il valore del PIR. Quando il PIR rileva il passaggio di una persona, il
numero sul display a 4 cifre aumenta di 1.