Programmable Digital Counter

www.narcisivalter.it
Progetti Elettronici

 

Translate Page


CONTAPEZZI PROGRAMMABILE con PIC16F886

(Digital Programmable Counter 999.999 based on PIC16F886 microcontroller)


Contapezzi Digitale - Digital Counter

INTRODUZIONE    [ TORNA ALL'INDICE ]

Il Contapezzi Digitale Programmabile è utile quando si desidera rilevare il numero di pezzi che scorrono su un nastro trasportatore oppure il numero di auto che passano su una strada o ancora, il numero di persone che attraversano una porta e può essere utilizzato perfino come contaimpulsi. Gli impieghi di questo dispositivo, dunque, possono essere tanti: sarà sufficiente collegare un sensore idoneo (oppure un microswitch o altri tipi di dispositivi) per rilevare il passaggio di oggetti o persone.

Contapezzi Contaumpulsi Contagiri Contapersone

In questo progetto è stato utilizzato il microcontrollore della Microchip siglato PIC16F886 ed un modulo LCD 1602 per visualizzare i risultati e le impostazioni.

Le caratteristiche principali del CONTAPEZZI sono le seguenti:

  • Conta fino a 1 milione di pezzi (999.999 max)
  • Velocità di conteggio fino a 6-7 pezzi al secondo (circa 400 pezzi al minuto)
  • Possibilità di programmare il numero di pezzi per il FERMO MACCHINA
  • Possibilità di programmare il Restart automatico (Autoreset, solo con FERMO MACCHINA attivato)
  • Possibilità di conteggio all'indietro (fino a -99.999)
  • Interruttore Abilitazione/Disabilitazione del conteggio (Pausa conteggio)
  • Possibilità di attivare la scansione audio del conteggio (breve beep per ogni oggetto rilevato)
  • Uscita relè per il FERMO MACCHINA (contatti puliti NC-COM-NO, 250V-5A)
  • Possibilità di programmare il relè come MONOSTABILE (breve impulso singolo) oppure BISTABILE
  • 4 pulsanti on-board: PROGRAMMAZIONE, OPZIONI, RESET e CONFERMA DATI
  • Lettura su modulo LCD 16x2 retroilluminato (2 righe)
  • LED SENSOR di rilevazione oggetto
  • Alimentazione 12-13 Vcc (circa 80-100 mA)

LO SCHEMA ELETTRICO    [ TORNA ALL'INDICE ]

Nella figura successiva è riportato lo schema elettrico del CONTAPEZZI (cliccare sopra l'immagine per ingrandirla).

Schematic Diagram of 6 digit Preset Digital Counter

Gran parte del lavoro è svolto dal firmware presente nel microcontrollore della Microchip siglato PIC16F886.

Il circuito integrato CD4011 si è reso necessario per creare un multivibratore monostabile (U1A e U1B) per poter pilotare correttamente il piedino di ingresso RB0/INT del microcontrollore senza dare origine a falsi conteggi e, soprattutto, senza sovraccaricare il software del micro con complicate e laboriose righe di codice (antirimbalzo, durata dell'impulso, ecc.).

L'integrato U2 (4011, quadruplo NAND) deve necessariamente essere del tipo B: nel prototipo è stato utilizzato il circuito integrato della Motorola siglato MC14011BCP.

Il componente siglato XT è in realtà un risonatore ceramico da 16 MHz a 3 piedini (quindi con i condensatori incorporati) e non può essere sostituito con un quarzo HC-49 a meno che non si saldino i classici due condensatori da 18-22pF direttamente sui reofori del quarzo.

Il connettore MX (ICSP) è utile per la programmazione On-Board del Microcontrollore (questo connettore consente di lasciare il chip montato sulla scheda durante la programmazione). Tuttavia, una volta programmato il PIC, consiglio di rimuovere questo connettore per evitare che un accidentale cortocircuito tra i suoi piedini possa danneggiare irrimediabilmente il microcontrollore.

Per pilotare il Buzzer è stato utilizzato un transistor NPN (BC337) perché le porte A0 e A1 non possono pilotare direttamente il buzzer (il cui assorbimento si aggira intorno ai 30 mA). Il fatto che siano DUE porte a pilotare il buzzer è dettato dalla praticità ed evita di scrivere ulteriori righe di codice: il PortA.0 emette il classico "toc" quando è impostata la scansione audio dei pezzi mentre il PortA.1 emette esclusivamente un segnale da 600 ms per avvisare l'utente che il conteggio ha raggiunto il valore dei pezzi programmati per il FERMO MACCHINA.

Per i 4 pulsanti, possono essere utilizzati diversi tipi, secondo le proprie necessità e i propri gusti e per il collegamento alla scheda con conduttori molto lunghi consiglio sempre di usare il cavetto schermato.

Il Modulo LCD va collegato alla scheda per mezzo di un cavetto a 16 vie.

Il relè è utile SOLO per la funzione del "FERMO MACCHINA": ha dei contatti puliti (NO-Com-NC) che possono sopportare fino a 5A @ 250Vac. Inoltre, questo relè può essere programmato per funzionare sia come MONOSTABILE (singolo impulso da 600 ms) oppure come BISTABILE (in questo caso è necessario agire sul pulsante di RESET per riportare i contatti allo stato di riposo).

Il LED Rosso (DL1 - SENSOR) si accende ogni volta che il sensore rileva un oggetto (questo vale anche se si usa un semplice microswitch come "sensore"). Ad esempio, utilizzando un sensore infrarossi a riflessione (del tipo con catarifrangente), il LED rimane acceso fino a quando il raggio IR è ostruito da un oggetto: quando l'oggetto esce dal campo di rilevazione, il LED rosso si spegne.

6 digit Preset Counter   6 digit Preset Counter (rear panel)

L'assorbimento massimo del circuito non raggiunge i 80-100 mA e dipende dal tipo di modulo LCD, dal numero di LED accesi e dal sensore utilizzato.

MORSETTIERE    [ TORNA ALL'INDICE ]

Di seguito, una breve descrizione delle morsettiere presenti sulla scheda.

  •  M1 - Power Supply  - Morsetto per il collegamento dell'alimentazione. Il circuito deve essere alimentato con una tensione continua stabilizzata di 12-13 Vcc./0.5A.

  •  M2 - Sensor  - Morsetto per il collegamento del sensore (es., IR, Microswitch, Relé Reed, ecc.). Su questo morsetto possono essere collegati rilevatori con uscite contatti di tipo N.O. (Normally Open) oppure del tipo O.C. NPN (Open Collector del tipo NPN). Per collegamenti di sensori molto distanti è consigliato l'uso del cavetto schermato (la cui calza va collegata sul morsetto contrassegnato dal simbolo GROUND).
  •  M3 - PULSE/FIXED  - Morsetto da collegare ad un interruttore o deviatore esterno. E' utile per impostare il funzionamento del Relè FERMO MACCHINA. Nel modo PULSE (o MONOSTABILE), i contatti del relè si chiudono per circa 600mS per poi ritornare nella posizione di riposo. Nel modo FIXED (BISTABILE) i contatti del Relè si chiudono e rimangono chiusi fino a quando non si preme il pulsante RESET.

  •  M4 - ENABLED/DISABLED  - Anche questo morsetto va collegato ad un interruttore o deviatore esterno. E' utile per Abilitare o meno il conteggio. Quando il dispositivo è DISABILITATO, non c'è nessun conteggio (anche se il sensore rileva il passaggio degli oggetti, visualizzati anche dall'accensione del LED rosso). Sostanzialmente, questo morsetto può essere paragonato ad una sorta di ON/OFF oppure a una semplice PAUSA.

COLLEGAMENTI    [ TORNA ALL'INDICE ]

Nell'immagine seguente è riportato il tipico collegamento del CONTAPEZZI con un sensore ad infrarossi completo di catarifrangente: nello schema è stato utilizzato il sensore ad Infrarossi modello E3JK-R4M2 che possiede una portata massima di quasi 4 metri ed un'uscita di tipo relè (contatti puliti NC-Com-NO). Per alimentare il sensore è sufficiente collegarsi al morsetto di ingresso dei +12V.

Wiring of Digital Counter with E3JK-R4M2 sensor

Nell'immagine seguente, invece, è riportato lo schema di collegamento con un sensore ad infrarossi siglato E18-D80NK che possiede una portata massima di 80 cm. ma che, rispetto al precedente, è del tipo O.C. (Open Collector, NPN). Per alimentare il sensore, scegliere un punto sulla scheda dove sia presente la tensione +5Vcc.

Wiring of Digital Counter with E18-D80NK sensor

IMPORTANTE - I collegamenti sulle morsettiere M2, M3 e M4 (specialmente se molto lunghi) dovrebbero essere fatti sempre con il cavetto schermato per evitare qualsiasi tipo di interferenze che potrebbero portare a falsi conteggi. La calza metallica va collegata al morsetto contrassegnato dal simbolo  GROUND.

COMANDI E SPIE    [ TORNA ALL'INDICE ]

I pulsanti di comando del CONTAPEZZI sono quattro:

COMMANDs of PIECE COUNTER

  •   PROG. or CANCEL
  • Premendo questo pulsante si entra nella fase di programmazione pezzi per il FERMO MACCHINA. Una successiva pressione di questo pulsante annulla qualsiasi programmazione in corso ed esce senza salvare nulla.

  •   Frecce e (SOLO durante la PROGRAMMAZIONE)
  • I pulsanti OPTIONS or e RESET or hanno una doppia funzione: infatti, quando si entra nella fase di PROGRAMMAZIONE, questi pulsanti consentono di:
    (OPTIONS) inserire i valori da programmare nella posizione corrente (lampeggiante) sul display LCD,
    (RESET) spostare la posizione del cursore del modulo LCD a quella successiva.
    Quando si esce dalla programmazione, questi pulsanti tornano ad essere i normali pulsanti OPTIONS e RESET.

  •   OPTIONS or
  • Pulsante per impostare la direzione del conteggio (AVANTI o INDIETRO) e la scansione audio dei pezzi (breve beep per ogni oggetto rilevato) come descritto di seguito:

  •   OPTIONS + RESET
  • Per impostare la direzione del conteggio in AVANTI oppure all'INDIETRO, premere e mantenere premuto il pulsante OPTIONS e contemporaneamente, premere il pulsante RESET. Ogni volta che si esegue questa sequenza, la direzione del conteggio si alterna tra AVANTI (LED Giallo acceso) e INDIETRO (LED Verde acceso). I simboli oppure sulla prima riga del display LCD indicano la direzione corrente del conteggio (vedi immagini successive).

    FORWARD Counter    BACKWARD Counter

  •   OPTIONS + CONFIRM PROG
  • Per abilitare o meno la scansione audio degli oggetti (breve beep ad ogni oggetto rilevato), premere e mantenere premuto il pulsante OPTIONS e contemporaneamente, premere il pulsante CONFIRM PROG. Ogni volta che si esegue questa sequenza, si Abilita o Disabilita la scansione audio. Il simbolo dell'altoparlante sarà visualizzato sul display LCD solo quando la scansione audio dei pezzi è Abilitata, come mostrato nella seguente immagine:

    SPEAKER for Audio Scan

  •   RESET or
  • Questo pulsante azzera il contatore dei pezzi conteggiati e riporta a riposo, se attivati, i contatti del relè.

  •   CONFIRM PROG.
  • Questo pulsante, una volta entrati nella fase di PROGRAMMAZIONE, conferma il valore dei pezzi impostati per il FERMO MACCHINA salvandolo nella memoria del microcontrollore. In questo modo, ogni volta che si accende il contapezzi, il valore sarà richiamato automaticamente dalla memoria e visualizzato sulla seconda riga del display LCD (Stop a:...). Se non si desidera la funzione del Fermo Macchina, programmare il valore a 000000: in questo caso sulla seconda riga del display LCD apparirà la scritta "No Stop" come visibile nelle immagini seguenti:

  • Stop Machine Function    No Stop Machine

I LED del contapezzi sono 3 (più un quarto LED sulla scheda relè):

LEDs of Counter

  •   SENSOR (LED Rosso acceso)
  • Se acceso, indica che il Sensore sta rilevando il passaggio di un oggetto.

  •    (LED Giallo)
  • Se acceso indica che il conteggio dei pezzi va in AVANTI.

  •    (LED Verde)
  • Se acceso indica che il conteggio dei pezzi va all'INDIETRO.

  •   LED Blu acceso (sulla Scheda RELE')
  • Quando acceso, questo LED indica che il relè per il FERMO MACCHINA è stato eccitato. Nella modalità MONOSTABILE, questo LED si accende solo per 600 mS circa (come per i contatti del relè) mentre nella modalità BISTABILE, questo LED rimane acceso (e il relè attivato) fino a quando non si preme il pulsante RESET.

Nel CONTAPEZZI ci sono anche 2 interruttori (già descritti nel paragrafo "MORSETTIERE"):

  •   ENABLED / DISABLED
  • Questo interruttore è utile per Abilitare o meno il conteggio. Quando il contapezzi è DISABILITATO, il conteggio rimane in pausa e sul Display LCD appare la scritta * DISABILITATO * (come mostrato nel seguente screenshot):

  • DISABLED Screen

    DISABLED Counter
  •   RELAY PULSE / FIXED (per il comando del FERMO MACCHINA)
  • Questo interruttore è utile per impostare il funzionamento del Relè quando il CONTAPEZZI raggiunge il numero programmato per il FERMO MACCHINA. A seconda del modo scelto, apparirà un'icona sulla seconda linea del Display LCD come descritto di seguito:

  •   Modo PULSE (o MONOSTABILE) i contatti del relè si chiudono per circa 600 mS per poi ritornare nella posizione di riposo.

  •   Modo FIXED (o BISTABILE) i contatti del Relè si chiudono e rimangono chiusi fino a quando non si preme il pulsante RESET (nel prototipo costruito dall'autore, questo interruttore è stato installato sul pannello posteriore).

  • Stop Machine Function  No Stop Machine

    RELAY PULSE
  • Da notare che se non è stato programmato nessun valore per il Fermo Macchina (ovvero 000000), le due icone non saranno mai visibili come mostrato nel seguente screenshot:

  • No Stop Machine Function

PROGRAMMAZIONE FERMO MACCHINA    [ TORNA ALL'INDICE ]

L'unico valore da programmare per la funzione FERMO MACCHINA è il numero dei pezzi (max. 999999) che si dovranno raggiungere per far scattare il relè.

  ENTRATA IN PROGRAMMAZIONE

  • Per entrare in programmazione, premere il pulsante PROG (or CANCEL): sul display appare la schermata 'PROGRAMMAZIONE' e un valore già preimpostato (ad esempio, 0000030).
    LCD screenshoot PROGRAMMING

  IMPOSTAZIONE DEL NUMERO DEI PEZZI PER IL FERMO MACCHINA

  • Utilizzare il pulsante OPTIONS per inserire la cifra (da 0 a 9) in corrispondenza del cursore lampeggiante. Ad ogni pressione del pulsante, la cifra aumenta di una unità e dopo il numero 9, il ciclo inizia nuovamente da 0.
  • Utilizzare il pulsante RESET per spostare il cursore sulla cifra successiva. All'ultima cifra, la pressione del pulsante RESET riporta il cursore all'inizio e così via.
  • LCD screenshoot PROGRAMMAZIONE

  USCITA DALLA PROGRAMMAZIONE

  • Una volta terminata la fase di programmazione, premere il pulsante CONFIRM PROG. per confermare il numero dei pezzi inserito oppure, in alternativa, premere di nuovo il pulsante PROG. (or CANCEL) per uscire dalla programmazione senza confermare nulla e lasciare tutto invariato.
    LCD screenshoot PROGRAMMAZIONE

RESET AUTOMATICO (Autoreset)    [ TORNA ALL'INDICE ]

Questa impostazione è utile per riportare automaticamente il conteggio a 0 quando è stato programmato il valore per il FERMO MACCHINA (Autoreset). In questo caso, infatti, quando il contapezzi raggiunge il numero programmato, attiva il relè e, contemporaneamente, azzera il conteggio (che, come accennato, ripartirà sempre da 0).

Per attivare il RESET AUTOMATICO, tenere premuto il pulsante CONFIRM PROG. durante l'accensione del contapezzi fino a quando sul display LCD non apparirà uno dei seguenti messaggi:

Reset Automatico attivato - Autoreset    Autoreset Disattivato - Reset Automatico disattivato

Ogni volta che si accende il contapezzi tenendo premuto il pulsante CONFIRM PROG., si alterneranno i due messaggi Reset ON (attivato) e NO Reset (non attivato).

IL PANNELLO POSTERIORE    [ TORNA ALL'INDICE ]

All'accensione, il CONTAPEZZI si predispone con le ultime modalità impostate dall'utente (Direzione del Conteggio, Scansione Audio dei pezzi e Reset automatico al Fermo Macchina) ed è subito pronto per il conteggio.

Nel pannello posteriore, oltre all'interruttore di accensione e a quello per settare la modalità di funzionamento del relè (RELAY PULSE, già descritto nel paragrafo "COMANDI E SPIE"), è stato installato il mammuth che fa capo ai contatti NO-COM-NC del relè e la presa DIN (siglata "SENSOR") per il collegamento al sensore di rilevazione oggetti.

Digital Counter - Rear Panel

Sulla presa DIN pentapolare puo' essere prelevata l'alimentazione per l'eventuale sensore (+5Vcc oppure +12Vcc).

Inoltre, sulla DIN, sono presenti i due pin per l'ingresso dei segnali provenienti dal sensore (o altro dispositivo di rilevazione).

Qui a destra è riportata la pedinatura della presa DIN Pentapolare. Quando si usa il cavetto schermato per i pin Signal, collegare la calza metallica sul pin siglato "shield".

Socket DIN Pentapolare

LE FOTO DEL CONTAPEZZI    [ TORNA ALL'INDICE ]

Presettable Counter 6 digit Presettable Counter 6 digit Preset Counter LCD Programmable Digital Counter 6 digit Preset Counter LCD

DOWNLOAD    [ TORNA ALL'INDICE ]

Cliccando sul seguente link, potete scaricare il datasheet del microcontrollore PIC16F886: per tutte le altre richieste (firmware HEX, domande, suggerimenti, ecc.) utilizzare SEMPRE la sezione COMMENTI.

Download

Scarica il Datasheet del Microcontrollore PIC16F886 (4.3 MB)

COMMENTI    [ TORNA ALL'INDICE ]

[ Torna all'inizio della pagina ]

DISCLAIMER (Dichiarazione di esclusione di responsabilità) - Tutti i progetti elettronici presentati e descritti nel sito internet https://www.narcisivalter.it possono essere utilizzati solo ed esclusivamente ad uso privato e senza scopo di lucro, pertanto non commercializzati. Le documentazioni dei progetti (schemi elettrici, disegni, foto, video, firmware, ecc.) non sono di dominio pubblico per cui i diritti d'autore rimangono dell'ideatore. Per utilizzare a fini commerciali i progetti (o parte di essi) presenti in questo sito web, si dovrà contattare l'Autore per concordare un'eventuale autorizzazione scritta.
- All the projects in this webpage is provided with no explicit or implicit warranties of operation. I do not assume any responsibility for any problems or damage to persons. The project is released "as is" and no support of any kind is provided. If you build the project, you implicitly accept my terms of not taking responsibility. If you do not agree, please, do not build this project and do not download any informations from this website!
- Tutti i progetti elettronici presenti nel sito internet www.narcisivalter.it sono stati realizzati e sperimentati personalmente dall'Autore, tuttavia l'Autore stesso non garantisce, a chi li realizzerà, un sicuro e perfetto funzionamento. Tutti i progetti elettronici presentati sul sito www.narcisivalter.it sono pensati e realizzati per un'utenza addetta ai lavori, specializzata nel settore elettrico ed elettronico e quindi in grado di valutare la correttezza e la funzionalità dei progetti stessi. Pertanto l'utente accetta espressamente di utilizzare i contenuti del sito sotto la propria responsabilità. I PROGETTI ELETTRONICI PRESENTATI SU QUESTO SITO SONO STATI RILASCIATI A PURO TITOLO HOBBISTICO E/O DI STUDIO E L'AUTORE NON GARANTISCE LA MATEMATICA CERTEZZA CIRCA IL LORO FUNZIONAMENTO E NON SI ASSUME ALTRESI' NESSUNA RESPONSABILITÀ, ESPLICITA O IMPLICITA, RIGUARDANTE INCIDENTI O CONSEGUENTI POSSIBILI DANNI A PERSONE E/O COSE DERIVANTI DALL'USO DEI PROGETTI STESSI. CHI REALIZZA E UTILIZZA I PROGETTI ELETTRONICI DESCRITTI IN QUESTE PAGINE, LO FA COME SUA LIBERA SCELTA ASSUMENDOSI TUTTE LE RESPONSABILITÀ CHE, EVENTUALMENTE, NE POTREBBERO DERIVARE.
AVVERTENZE IMPORTANTI - Molti circuiti descritti nelle pagine di questo sito sono sottoposti a tensione di rete 110-240 Vac e pertanto potenzialmente pericolosi; si può rimanere folgorati se non realizzati ed utilizzati secondo le norme di sicurezza vigenti. Pertanto l'utente e' tenuto a verificare se quanto realizza e' conforme alla normativa ed alla legislazione vigente. Per i non "addetti ai lavori" (improvvisati auto-costruttori) va ricordato che in particolari situazioni (diminuzione resistenza del corpo) già una tensione di 25V alternata potrebbe essere pericolosa. L'elettronica e l'elettricita' in genere affascina molte persone ma va ricordato che non basta uno schema scaricato da Internet per poter arrivare a un prodotto funzionante e sicuro: infatti ci vogliono un minimo di conoscienze delle fondamentali leggi della fisica, dell'elettricita' e dell'elettronica oltre all'esperienza pratica nell'uso di attrezzi e strumenti indispensabili, come saldatore, tester, oscilloscopio, ecc...

Privacy Policy - Cookie Policy - Condizioni d'Uso