Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Leggere un encoder incrementale: meglio sw o hw?

Sensori, trasduttori, regolatori...
0
voti

[1] Leggere un encoder incrementale: meglio sw o hw?

Messaggioda Foto Utentemach01 » 2 apr 2012, 23:33

Ciao a tutti,
mi presento, perché sono al primo post sul forum.

Mi diletto di elettronica e vi pongo un quesito che mi è venuto in mente mentre mi stavo occupando di leggere la velocità ed il senso di rotazione di un albero motore (cc 12V) collegato ad un encoder incrementale.

Stavo eseguendo lo studio per leggere l'encoder via sw con un PIC (18f4525 in C18), e la cosa
non è per niente banale essendo alla prima esperienza in tal senso: bisogna conoscere gli interrupt, preparare le routine di conteggio e di confronto; il tutto tenendo d'occhio i tempi.

Poi ho avuto una intuizione: e se convertissi la frequenza dell'onda quadra dell'encoder in tensione continua che posso leggere molto più agevolmente con l'ADC del PIC?
Il sw sarebbe molto più semplice e sarebbe così implementata una sorta di dinamo tachimetrica.

Sembra (e sottolineo sembra perché devo ancora passare dalla teoria alla pratica) che con un LM2917 non dovrebbero esserci grossi problemi nella conversione.

Premesso che bisognerebbe conoscere le caratteristiche dell'encoder (devo ancora sceglierlo), e che non ho bisogno di presazioni/precisioni elevate; la domanda è: il ragionamento, secondo voi, è valido oppure c'è qualche particolare che mi sfugge?

Grazie!
Avatar utente
Foto Utentemach01
0 3
 
Messaggi: 2
Iscritto il: 2 apr 2012, 23:18

0
voti

[2] Re: Leggere un encoder incrementale: meglio sw o hw?

Messaggioda Foto UtenteDonJ » 2 apr 2012, 23:41

Per funzionare funziona, ma è chiaro che la precisione non è quella digitale dell'encoder.
Io lo farei via software, è questione solo di spendere un po' di tempo per buttare giù il programma.
Gli altri componenti sono superflui. Io fossi in te mi sforzerei di usare la testa e trovare una soluzione software. Ne guadagni in affidabilità, precisione e compattezza.
"Computers, operating systems, networks are a hot mess. They're barely manageable, even if you know a decent amount about what you're doing. Nine out of ten software engineers agree: it's a miracle anything works at all."
@fasterthanlime
Avatar utente
Foto UtenteDonJ
4.611 6 10 13
Master EY
Master EY
 
Messaggi: 2559
Iscritto il: 19 lug 2009, 22:13
Località: Croccamauria

1
voti

[3] Re: Leggere un encoder incrementale: meglio sw o hw?

Messaggioda Foto UtenteDirtyDeeds » 3 apr 2012, 7:51

Convertire una frequenza in una tensione non è praticamente mai una buona idea! Resterei sulla soluzione software.

Piuttosto, se proprio vuoi alleggerire il compito del microcontrollore, puoi fare un circuito esterno che faccia la rivelazione del verso di rotazione.
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,9k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7012
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

0
voti

[4] Re: Leggere un encoder incrementale: meglio sw o hw?

Messaggioda Foto Utentemach01 » 3 apr 2012, 19:37

Grazie per le risposte.

Ho deciso di iniziare a preparare il.... sw! Mi sono (avete) convinto
che è il caso di provare a sviluppare il programma, farà comunque bene
per migliorare il livello di programmazione del PIC... mi tengo il barbatrucco
se proprio non ne esco vivo.

Thx
Avatar utente
Foto Utentemach01
0 3
 
Messaggi: 2
Iscritto il: 2 apr 2012, 23:18

1
voti

[5] Re: Leggere un encoder incrementale: meglio sw o hw?

Messaggioda Foto UtenteCandy » 3 apr 2012, 23:16

Cerca di uscirne vivo, anzi, escine vivo, perché un convertitore F/V da leggere poi con un ADC dove ti porterebbe? Già immagino un posizionatore di qualunque specie fatto in un modo simile... Addio.

Per carità, quando si è "giovani" ed alle prima armi, tutto è difficile, ma leggere un encoder incrementale con un PIC ed i suoi interrupt è veramente semplice. Le cose si potrebbero complicare nel momento in cui l'encoder si ferma col foto-transistor di uno dei canali sul punto di commutazione e magari ci sono sempre un poco di vibrazioni sull'albero...
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10123
Iscritto il: 14 giu 2010, 22:54

1
voti

[6] Re: Leggere un encoder incrementale: meglio sw o hw?

Messaggioda Foto UtenteTardoFreak » 3 apr 2012, 23:21

Foto Utentemach01, gli encoder si gestiscono via firmware, la conversione di cui parli è un suicidio elettronico.
C' è un sistema migliore che utilizzare interrupt e menate varie facendole gestire dal micro che dovrà poi fare anche tutto il resto: usare un microcontrollore dedicato come ha suggerito Foto UtenteDirtyDeeds.
Al tuo livello di conoscenza ed esperienza è la soluzione migliore: un micro che faccia solo quello e senza usare interrupt ma campionando continuamente gli ingressi. Il programma risulterà quasi banale ed otterrai un ottimo risultato.
Oppure ci spendi un po' di tempo e lo integri con il resto utilizzando le interrupt come ha giustamente osservato Foto UtenteCandy.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[7] Re: Leggere un encoder incrementale: meglio sw o hw?

Messaggioda Foto UtenteCandy » 3 apr 2012, 23:27

Per carità, si possono gettare anche i soldi dalla finestra e, quindi, si può anche dedicare un PIC solo per la gestione encoder... Ma è tutto sprecato.
Comunque sì, come primo approccio può anche essere. Comincia a fare un programma che faccia solo ed esclusivamente quello, controllando e rimuovendo tutti gli errori del caso, vedrai che poi, poco alla volta, col PIC ci prendi anche dimestichezza e gusto.
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10123
Iscritto il: 14 giu 2010, 22:54

6
voti

[8] Re: Leggere un encoder incrementale: meglio sw o hw?

Messaggioda Foto UtenteTardoFreak » 4 apr 2012, 0:38

candy ha scritto:Per carità, si possono gettare anche i soldi dalla finestra e, quindi, si può anche dedicare un PIC solo per la gestione encoder... Ma è tutto sprecato...

Si, è vero, si sprecano potenzialità ... ma solo quelle.
Piccolo O.T.
Questo è un aspetto dell' elettronica odierna al quale mi sono dovuto adeguare. Un microcontrollore che gestisca un encoder costa meno di un euro. E' vero che è sprecato ma, sforzandosi un po' non lo è poi tanto.
A livello, diciamo filosofico lo è ma a livello pratico no.
Faccio un esempio pratico.
Mi è capitato di dover realizzare un semplice circuito che pilota 8 display a 7 segmenti che deve collegarsi ad un altro circuito tramite isolamento galvanico. Inizialmente ho pensato realizzare un qualcosa di hardware (il solito driver con interfaccia SPI) che si collega al micro principale tramite optoisolatori. Poi ho pensato di utilizzare un micro per far svolgere alcune funzioni al display, fosse anche solo il multiplexing.
La cosa singolare è che il micro che gestisce tutto l' abaradan costa quanto un solo display, uno solo e la scheda ne monta otto! :shock:
Ma non finisce qui. Spulciando le varie soluzioni sono approdato ad un micro a 32 bit perché costava meno di un PIC delle balle.
Mettiamola come vogliamo ma, per un' applicazione commerciale si guarda il prezzo.
Quello che è venuto fuori è un display intelligente, che fa molte cose che avrebbe dovuto fare il micro principale e che utilizza un mostro assolutamente sprecato per l' applicazione ma economicamente conveniente.
Capisci che per uno come me che ha sempre combattuto contro i limiti dei micro, trovarmi ad utilizzarne uno al 5% delle sue possibilità per fargli fare un lavoro da manovale è come utilizzare un motore di una ferrari in un tosaerba.
Confesso che mi sento colpevole di lesa maestà per aver fatto questo ma ... il portafoglio è contento, ho un risparmio e mi posso permettere il lusso di fare un multiplexing a 20 kHz. :mrgreen:
Un altro esempio: mi sto organizzando per usare i notepad (o come diavolo si chiamano) android come periferiche di I/O.
Con 100 euro compro una periferica intelligente con un display della Madonna, grande, e con ottima risoluzione, touch screen, wi-fi, bluetooth sulla quale posso far girare un programma. E' di sicuro uno spreco di potenzialità ma è economicamente conveniente rispetto ad un semplice display nudo e crudo che mi costerebbe di più e che dovrei gestire i toto partendo da zero.
Comunque così facendo si fa solo quello che le case produttrici di micro cercano di far fare ai progettisti, in pratica ci stanno dicendo "quando dovete fare un circuito con più di un integrato usate un micro! Fate più cose e risparmiate denaro", e non hanno torto. E lo dimostra il fatto che tutte stanno spingendo verso i 32 bit, In effetti sono seducenti, strapotenti, a basso consumo ed al costo delle patate. Il ink al documento che ho segnalato nel thread Passare dai PIC al Cortex-M3 dice chiaramente "tu, pirla, smettila di usare quelle ciofeche ad 8 bit ed usa questi mostri che ti rendono la vita facile e ti fanno pure risparmiare". :?
Che ci vuoi fare? Il mondo è pieno di contraddizioni e questi sono solo due esempi fra le migliaia. :?
Poi, per carità, il buon sviluppatore integra tutto in un solo micro, risparmiando un euro che moltiplicato per le decine di migliaia fanno valore.
Fine O.T.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[9] Re: Leggere un encoder incrementale: meglio sw o hw?

Messaggioda Foto Utentestevetdr » 11 giu 2012, 15:48

Ciao, io ci sto' lavorando su ma voglio usare solo software, pero' su una rivista di Nuova Elettronica di molti anni fa' avevo trovato lo schema di un "gestore" di encoder. Il numero del progetto e' il LX.1156 e permetteva di collegare un encoder ottico ad un altro dispositivo. Nel caso specifico un contatore up/down.
Il circuito e' utile perche' trasforma il segnale dell'encoder in due segnali su due pin.
Uno che fa' incrementare ed uno che fa' decrementare un contatore.
Ma se gestisci questi due pin con 2 pin di una porta "on change" secondo me con 2 righe semplici semplici ottieni il risultato.
Non so' come fare a postare un PDF e pertanto fammi sapere come posso informarti.
Un saluto
Stefano
Avatar utente
Foto Utentestevetdr
0 1
 
Messaggi: 1
Iscritto il: 11 giu 2012, 15:37


Torna a Sensoristica

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti