Sto sviluppando un prototipo che utilizza un codificatore di quadratura per misurare il suo spostamento lineare. L'encoder è attaccato al corpo del prototipo e ha una ruota nel suo albero. Quando il prototipo si sposta in avanti, l'encoder misura la distanza lineare. Tutti i problemi intorno alla conversione tra unità lineari / angolari sono stati risolti.
Il motivo per misurare la distanza con un encoder è che DEVO sapere ogni volta che il prototipo ha percorso esattamente 1 mm (1 millimetro = 0,0393 pollici). Ogni volta che si sposta di 1 mm, PIC attiva un altro sistema.
Il modo in cui è stato fatto prima che iniziassi a lavorarci è leggendo l'encoder con un PIC (16F688) nelle sue porte I / O. Era un po 'ok, ma quando ho aggiunto alcune funzionalità al codice PIC, se la velocità lineare del prototipo è maggiore di ~ 1,77 in / s (~ 45 mm / s) il PIC inizia a perdere il conteggio dell'encoder.
I ho provato a utilizzare IOC (interrupt on change) dalla porta A per leggere il segnale di quadratura (canali A e B) ma non è stato efficace.
So che ci sono dsPIC ma devo risolvere questo problema nella mia scheda e ho solo 14 pin per farlo lol. Quindi ho trovato questo PIC16F1825 che ha una frequenza più alta (4x). Potrebbe essere questo (il mio PIC basso freq) il mio problema principale ??
Stavo pensando di utilizzare i segnali LFLS7183 UP / DOWN con il timer / contatore da PIC o altro contatore IC in modo che ridurrebbe la quantità di segnalazione al PIC. Funzionerebbe? Quale contatore dovrei usare? Non ho 8 pin nel mio PIC da usare come in quei http://goo.gl/2Wc3d.
Il mio codificatore non è un mio problema, ho controllato e può tracciare fino a 76 piedi / s per il raggio della mia ruota.