home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca
 
IL TACHIMETRO PIù SEMPLICE DEL MONDO! tipo: livello:
Questo circuito visualizza su un display alfanumerico LCD pilotato da un PIC 16F84A la velocità oraria di una macchina per il riempimento e la tappatura di bottiglie.
 
 



 

Il tachimetro più semplice del mondo!



Ho realizzato questo semplice circuito perché avevo la necessità di visualizzare con una discreta approssimazione la velocità di produzione di una macchina riempitrice e i progetti che ho trovato in rete erano tutti troppo complessi o poco adattabili alle mie esigenze.
  
 

Per effettuare la misurazione, ho montato un encoder ottico incrementale su uno degli assi di rotazione della macchinaquindi ad ogni giro dell'encoder la macchina produce X bottiglie a questo punto basta contare il numero di impulsi in un secondo, per risalire alla velocità della macchina.

  Data la conformazione della macchina, il posto più semplice dove potevo montare l'encoder, era sul pignoncino di uno dei ruotismi della macchina accoppiato mediante una catena alla stella di ingresso delle bottiglie, ma questo particolare è poco importante ai fini dell'articolo.

 

Quello che è importante invece è lo schema di calcolo per determinare il numero di impulsi per bottiglia.

 

 

  

Dati:

  La stella di ingresso produce in un giro completo 10 bottiglie.
    Il pignone della stella ha 76 denti.

  Il pignone dell'encoder ha 15 denti.

  l'encoder produce in un giro completo 100 impulsi.

  Il rapporto tra i due pignoni è 76/15=5,067, ciò vuol dire che per ogni giro della stella, l'encoder effettua 5,067 giri.

  Il numero di impulsi per bottiglia è 5,067*100/10= 50.67.

 Quindi per ciascun impulso dell'encoder la macchina produce 1/50,67= 0,0197 bottiglie.

   la velocità oraria della macchina è pari a: n. impulsi al secondo * 0,0197*3.600.

   Essendo 0,0197 e 3.600 due costanti, anche il loro prodotto è una costante ed è pari a: 0,0197*3.600 = 71,04.

 Quindi la velocità della macchina è uguale al numero di impulsi al secondo * la costante 71,04 che ho approssimato a 71.

 

 

  Se viene contato un solo impulso in un secondo, la velocità oraria è pari a 71 bottiglie orarie, e questa è la risoluzione del sistema, quindi la velocità sarà misurata in multipli di 71.

 

Naturalmente per adattare il progetto alle vostre esigenze bisogna determinare il valore della costante.
 
 
 

Schema elettrico:
 
 
 
 
Sullo schema elettrico, vista la sua semplicità, c'è veramente poco da dire, un PIC 16F84A, un display LCD, il quarzo e una mezza dozzina di componenti.
Sulla macchina è presente la tensione di 24Vcc filtrata e stabilizzata che, vista l'esuguità delle correnti in gioco viene convertita a 5V da DC1.
L'encoder, collegato a J1 manda i suo impulsi al pin a RA1, mentre l'LCD è collegato nella configurazione a 4 bit a portB. Essendo l'encoder un prodotto industriale di buona qualità, i suoi impulsi sono sufficientemente puliti per essere letti correttamente dal PIC, quindi non c'è stato bisogno di alcun circuito di condizionamento.
R1 mantiene alto il pin di reset e R2 tiene basso RA1 per evitare di avere incertezza sull'ingresso in assenza di impulsi.
 
LISTA COMPONENTI:
R1    10K
R2    10K
C1    22 pF
C2    22pF
C3    100.000 pF
C4    100.000 pF
Q1    Quarzo da 4 Mhz DC1  7805
DIS1 display tipo HITACHI 2 X 16
IC1   PIC 16F84A
J1    Connettore a vite 3 poli
J2    Connettore a vite 2 poli
 
 
FIRMWARE:
 
Per il firmware ho utilizzato il compiatore BASIC di PIC SIMULATOR IDE, e queste sono le poche righe del codice debitamente commentate:
 
Define LCD_BITS = 4                   'pilotaggio a 4 bit
Define LCD_DREG = PORTB               'PORTB per il pilotaggio
Define LCD_DBIT = 4                   'pilotaggio mediante RB4, RB5, RB6, RB7
Define LCD_RSREG = PORTB              'RS su RB1
Define LCD_RSBIT = 1  'RS su PORTB
Define LCD_EREG = PORTB               'E su RB3
Define LCD_EBIT = 3  'E su PORTB
Dim impulsi As Word                   'impulsi dell'encoder
Dim bottiglie As Word                 'variabile da visualizzare sul display
Const za = 71                         'costante per la conversione impulsi - bottiglie/ora (vedi articolo)
TRISA = 0xff                          'PORTA tutti output
Lcdinit                               'inizializzo display
Lcdcmdout LcdClear                    'pulisco lo schermo e vado accapo
Lcdout "  PROD. ORARIA"               'scrivo stringa

loop:
Count RA1, 1000, impulsi              'conto quanti impulsi entrano in RA1 in un secondo e li memorizzo nella variabile impulsi
bottiglie = impulsi * za              'converto impulsi in bott./ora
Lcdcmdout LcdLine2Home                'vado alla linea 2
Lcdout "    "                         'mi sposto di 4 caratteri a dx
Lcdout #bottiglie                     'scrivo la variabile
Lcdout "    "                         'sovrascrivo con spazi eventuali cifre rimaste dal ciclo precedente
Goto loop                             'ciclo infinito
 
 
 
 
Non allego l'HEX, perché va bene soltanto in questa specifica applicazione.
 
 
Queste sono alcune foto della realizzazione:
 
 
Montaggio di prova su breadboard
 
 
 
 
Montaggio su millefori
 
 
 
 

Prova di funzionamento

 
 
 
 
 
 



  il parere della community
esprimi il tuo voto approvi questa pagina? promo


  non sei autenticato, per questo non puoi visualizzare i commenti sulla pagina. Se sei registrato accedi oppure registrati.


difficoltà
costo
informazioni
Questa pagina è stata creata da liberolibero
il 15/11/2012 ore 12:26
ultima modifica del 25/11/2012 ore 19:33
la pagina è stata visitata 5872 volte




Lo staff di www.grix.it non si assume responsabilità sul contenuto di questa pagina.
Se tu sei l'autore originale degli schemi o progetti proposti in questo articolo, e ritieni che siano stati violati i tuoi diritti, contatta lo staff di www.grix.it per segnalarlo.

   
 







 
 
indietro | homepage | torna su copyright © 2004/2024 GRIX.IT - La community dell'elettronica Amatoriale