lettura encoder ottico

10 Anni 9 Mesi fa #1 da Berardi
lettura encoder ottico è stato creato da Berardi
salve a tutti,
seguendo alcuni corsi on line mi è venuta la voglia di fare un piccolo robot.
Avendo già la freedomII ho deciso di sviluppare il robot tramite il PIC18F4550.
nel robot sono previsti 2 encoder ottico non in quadratura.
mi trovo in difficoltà su come poter leggere il segnale e successivamente convertirlo in tick.
qualcuno potrebbe illuminarmi?
:P

grazie mille a tutti

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Berardi
  • Visitatori
  • Visitatori
10 Anni 9 Mesi fa #2 da +RGZ
Risposta da +RGZ al topic lettura encoder ottico
Non in quadratura? Come fai a saper da che parte gira ?
Se l'encoder è in quadratura cerca di usare un PIC18F4431 o PIC18FXX31 che hanno già al loro interno la periferica QEI (Quadrature Encoder Interface)
Decodificare il segnale in quadratura via software se il segnale in ingresso è molto veloce non è sempre fattibile, dipende dagli impulsi/giro dell'encoder e dalla velocità di rotazione massima.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • +RGZ
  • Junior Member
  • Junior Member
Di più
10 Anni 9 Mesi fa #3 da Berardi
Risposta da Berardi al topic lettura encoder ottico
l'encoder che utilizzo è il seguente
www.sparkfun.com/products/12617
c'è scritto appunto che non è in quadratura infatti ho un solo di uscita per parte.
questo invece è il robot che devo poter pilotare
www.sparkfun.com/products/10825

grazie

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Berardi
  • Visitatori
  • Visitatori
10 Anni 9 Mesi fa #4 da +RGZ
Risposta da +RGZ al topic lettura encoder ottico
Salve, dalle immagini che ho visto l'encoder ha una ruota dentata con sei denti quindi la massima risoluzione sul giro che puoi avere è di 360 /12--> 30gradi, io manderei il "canale A" in un ingresso in cui posso abilitare l'interrupt sul fronte di salita.
Quando l'interrupt è intercettato se il motore lo stai pilotando avanti fai in modo che la variabile Posizione (ad esempio) venga incrementata nel caso contrario decrementata. In Posizione quindi avrai la posizione grossolana 360/6. Nel momento in cui nel Main devi confrontare il valore con un'altro per poi decidere se fermare o rallentare, prendi il valore Posizione e, se l'ingresso "canale A" è alto il valore Posizione non lo tocchi se è basso ci sommi 1, così avrai la risoluzione doppia. Spero di essermi spiegato, il sistema è molto rozzo prendilo come spunto. Ho visto che l'encoder ha OUTA e OUTB ma non capisco che relazione c'è fra i due canali Saluti Gabriele

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • +RGZ
  • Junior Member
  • Junior Member
Di più

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login