Simulatore encoder in quadratura

9 Anni 4 Mesi fa #1 da Picboy
Simulatore encoder in quadratura è stato creato da Picboy
Ciao, devo costruire un simulatore per prove a banco dei due sensori giri degli assi di una macchina.
Ogni sensore ha una doppia uscita e le due uscite sono in quadratura per poter così determinare il verso di rotazione dei due assi. Avevo pensato ad un PIC18F2550 che legge 2 potenziometri o 2 encoder per fissare il numero di giri/min da 0 a circa 20000. Poi un classico display 2x16 per visualizzare i numeri di giri impostati, ma mi sono bloccato con le uscite. Pensavo di usare 2 uscite PWM, ma poi come faccio a fare lo sfasamento delle uscite in quadratura? In rete ho visto uno strano schema con 2 flip-flop e delle porte logiche... Qualcuno sa darmi una mano? Altra cosa, sarebbe bello poter invertire lo sfasamento dei due segnali per simulare la rotazione degli assi in senso inverso! Grazie anticipate.

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

  • Picboy
  • Junior Member
  • Junior Member
Di più
9 Anni 3 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Simulatore encoder in quadratura
Ciao Picboy,
per chiarire meglio la discussione e' bene avere un diagramma a blocchi di quello che si vuole realizzare.
PIC, LCD, potenziometri...
Anche un diagramma delle forme d'onda di uscita aiutano per chiarezza, anche se hai paralato di encoder in quadratura.

Per il timer puoi vedere questo tutorial:

www.laurtec.it/brief-notes-74/programmaz...-pwm-ed-enhanced-pwm

ma anche i capitoli sui Timer interni descritti nel testo XC8 Step by Step .
Giocando sulle impostazioni sui timer, cambiando ad ogni ISR il valore, puoi anche ottenere il tuo risultato senza componenti esterni. Bisogna vedere la massima frequenza ottenibile.

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
9 Anni 3 Mesi fa #3 da Picboy
Risposta da Picboy al topic Simulatore encoder in quadratura
Ciao, per gli input non ho problemi nella gestione, siano essi pulsanti o degli encoder. Pari pari per il display. Il problema è la generazione dei 2 doppi segnali in quadratura. La frequenza non è molto alta, poco più di 330Hz. Lo schema che avevo visto in rete si basava su due flip-flop tipo D in serie e poi una combinazione di porte logiche. Dando semplicemente il clock in ingresso venivano generati i segnali in quadratura. Però io vorrei fare tutti senza hw aggiuntivo.
Quindi basandomi su un interrupt di un timer devo generarmi le due diverse frequenze dei due segnali A e poi da questi derivare i segnali B sfasati di 1/4 di periodo, giusto?

Allegati:

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

  • Picboy
  • Junior Member
  • Junior Member
Di più
9 Anni 3 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Simulatore encoder in quadratura
Ripensandoci, la cosa migliore e' tramite timer e una piccola state machine.

imposti le quattro uscite e crei una piccola tabella di stato, il cui indice deve essere incrementato all'interno dell'ISR associato al timer. All'interno dell'ISR poni il valore della tabella che contiene lo stato di QA, QB, QC, QD ed e' puntato dal nuovo indice in uscita

I valori della tabella li ricavi dal diagramma temporale sotto.
In base alla frequenza del timer gli impulsi saranno più o meno rapidi.

la tabella ha come valori

id 0 : 0b00001001
id 1 : 0b00001010

... e calcoli gli altri valori
In particolare nell'esempio

bit 0= QB'
bit 1= QB
bit 2= QA'
bit 3= QA

In uscita alle porte I/O potresti necessitare di un buffer realizzato con transistor.
...ma questo dipende dal tuo caso specifico.

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
Moderatori: Mauro LaurentiStefAMatteo Garia

Registrati al sito

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

Registrati al sito LaurTec.

Login