Ciao a tutti carissimi, sono nuovo del forum,sto progettando con display LCD e encoder la visualizzazione di una quota Asse.Sono arrivato al punto di leggere gli impulsi up down dell' encoder,solo che mi sono fermato sulla visualizzazione della quota, nel senso come faccio a rappresentare ad es. La quota in mm,decimi e centesimi?prefetto che l' asse ha una corsa di 500 mm
picmicro675
postato il: 01.03.2015, alle ore 05:23
Meglio vedere la parte interessata del codice.
Poi se vuoi mostrare anche i decimali, molto probabilmente dovresti usare un float oppure un valore tale che moltiplicato per 100 stia in una long o una word.
Poi la rappresentazione gli metti il punto decimale alla seconda cifra da destra dopo la moltiplicazione per 100.
In quanto all' encoder quale risoluzione ha?
Dov'è montato ?
Anno nuovo, forum nuovo.
Mi sa che lascio.
sparide74
postato il: 01.03.2015, alle ore 10:12
ciao questo e' il mio Prog.Manca la parte che mi interessa
_______________________________________________________________________
program Lcd 'Pic16f628A
' Lcd module connections
dim LCD_RS as sbit at RB0_bit
LCD_EN as sbit at RB1_bit
LCD_D4 as sbit at RB2_bit
LCD_D5 as sbit at RB3_bit
LCD_D6 as sbit at RA0_bit
LCD_D7 as sbit at RA1_bit
LCD_RS_Direction as sbit at TRISB0_bit
LCD_EN_Direction as sbit at TRISB1_bit
LCD_D4_Direction as sbit at TRISB2_bit
LCD_D5_Direction as sbit at TRISB3_bit
LCD_D6_Direction as sbit at TRISA0_bit
LCD_D7_Direction as sbit at TRISA1_bit
' End Lcd module connections
dim CH_A as bit 'Lettura canale A Encoder
CH_B as bit 'Lettura canale B Encoder
CH_A1 as bit 'Lettura precedente canale A Encoder
CH_B1 as bit 'Lettura precedente canale B Encoder
UpDown as longword
L'encoder ha risoluzione 500ppi, va installato in un tornio
Jasson
postato il: 01.03.2015, alle ore 11:17
ppi sono impulsi per pollice, e sapendo che un pollice è 25,4mm, significa che l'encoder ti restituisce 500 impulsi ogni 2,54cm ovvero 1 impulso ogni 0,00508mm, o 508 centomillesimi.
A questo punto non ti rimane che moltiplicare il numero di impulsi per 508 e ottieni la misura espressa in centomillesimi.
Dividi questa misura per 10.000 e ottieni i millimetri,
Ora prendi il resto della divisone, dividi per 100 e ottieni i centesimi.
Esempio:
Hai contato 6530 impulsi.
Moltiplichi per 508 e ottieni 3317240 centomillesimi di millimetro.
Dividi per 10.000 e ottieni la misura di 331 millimetri(in mikrobasic se esegui una divisone ti viene restituito l'intero della divisione)
In mikrobasic esiste l'istruzione mod che permette di ottenere il resto di una divisone
Quindi avrai che:
Impulsi contati 6530
Centomillesimi=6530x508 Centomillesimi=3317240
Millimetri=3317240/10000 millimetri= 331
Resto=3317240 mod 10000 resto=724
Centesimi=724/10 Centesimi=72
Stringa da visualizzare uguale a (Millimetri,".",Centesimi)
picmicro675
postato il: 01.03.2015, alle ore 13:49
sparide74: L'encoder ha risoluzione 500ppi, va installato in un tornio
Per me è incomprensibile. L' encoder è lineare o rotativo è montato sulla guida del tornio o montato sulla vite del movimento ?
Può essere come dice Jasson ma non l' hai specificato.
Anno nuovo, forum nuovo.
Mi sa che lascio.
sparide74
postato il: 01.03.2015, alle ore 15:03
E rotativo, quello lineare costa una botta, quindi dovro' montarlo con opportuna meccanica direttamento sullo spostamento dell'asse, cosi' anche se ho gioco sulla vite (e sui torni senza riga ci sono)avro' il reale spostamento...
Jasson
postato il: 01.03.2015, alle ore 15:27
sparide74: E rotativo, quello lineare costa una botta, quindi dovro' montarlo con opportuna meccanica direttamento sullo spostamento dell'asse, cosi' anche se ho gioco sulla vite (e sui torni senza riga ci sono)avro' il reale spostamento...
Che io sappia il parametro PPI è relativo agli encoder lineari, infatti PPI stà per pulse per inch, ovvero il numero di impulsi relativo allo spostamento di un pollice.
Se fosse rotativo, allora dovrebbe avere un parametro espresso in PPR ovvero pulse per revolution, che stà ad indicare il numero di impulsi per ogni giro.
sparide74
postato il: 01.03.2015, alle ore 15:51
Mi sono dimenticato dovrei calcolare anche il passo della vite....
quindi con il tuo ragionamento dovrei scrivere nel mio codice:???
sparide74
postato il: 01.03.2015, alle ore 15:59
un'altra cosa quando visualizzo attualmente gli impulsi il conteggio mi parte da sx esempio:000000023
io vorrei che iniziasse con : 23; poi mam mano che si inseriscono le centinaia il numero dovrebbe diventare:230 e cosi via, ho visto un po i comandi dell'lcd ma non sono riuscito a farlo....
comunque grazie x la disponibilitÃ
Jasson
postato il: 01.03.2015, alle ore 16:09
Quello che devi scrivere nel codice te l'ho già detto.
Devi fare una moltiplicazione poi una divisone e ottieni i millimetri.
Poi calcoli l resto, fai un altra divisone e calcoli i centesimi.
Un passo alla volta, intanto fai queste operazioni, e vedi se i risultati tornano, poi dopo eventualmente vediamo anche di trovare la soluzione per formattare a modo il testo.
Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito