Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

potenziometro o encoder

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto UtenteDirtyDeeds, Foto UtenteIsidoroKZ, Foto Utenteg.schgor, Foto UtenteBrunoValente

0
voti

[31] Re: potenziometro o encoder

Messaggioda Foto Utentevenexian » 30 apr 2018, 9:29

PietroBaima ha scritto:perché non si può fare come ha proposto xyz?

Perché con quella soluzione, la sequenza che ho indicato in [15] porta a un conteggio errato.

lelerelele ha scritto:... Comunque, per dimostrarti che non sono completamente d'accordo con te, mi pare che gli STM32 abbiano la gestione dell'encoder direttamente attraverso lettura di un timer, con i due ingressi connessi direttamente ad i pin, come è possibile che questa lettura sia buona senza filtri RC esterni?

Quella soluzione funziona solo con i flip flop sterni che realizzano, sotto mentite spoglie, una macchina a stati. La cosa la si può comprendere facilmente pensando che due flip flop memorizzano due bit che sono proprio la profondità di memoria necessaria alla variabile di stato della macchina necessaria.

lelerelele ha scritto:... ma rimane a me il problema che la scheda non l'ho progettata io, non ho accesso neanche l firmware, legge interrupt su un pin, a me rimane come al solito il compito di farla funzionare!

Questo non è un problema tecnico: se devi far funzionare un prodotto mal realizzato, senza poterlo modificare... le soluzioni si devono trovare 'all'italiana'.

Se venisse chiesto a me, farei un circuito che leggesse in modo sicuro gli encoder, nel modo descritto sopra, e che generasse poi dei segnali adatti a essere letti dalla scheda mal progettata.

Altri farebbero castelli di resistenze e condensatori fino a beccare la combinazione che pare funzionare al momento, ma... diversi progettisti, diverse soluzioni.
Immagine
Avatar utente
Foto Utentevenexian
6.249 3 4 7
Master
Master
 
Messaggi: 2188
Iscritto il: 13 mag 2017, 10:07
Località: Venezia (ma va?)

0
voti

[32] Re: potenziometro o encoder

Messaggioda Foto UtenteEcoTan » 30 apr 2018, 9:34

lelerelele ha scritto:senza filtri RC esterni?

Un segnale può rimbalzare quanto vuole, equivale ad una vibrazione avanti e indietro ma non viene considerato come spostamento finché non varia l'altro segnale. Ovviamente non devono rimbalzare tutti insieme, l'encoder deve essere serio. Il dsPic prevede anche il "digital filter" opzionale sugli ingressi.
Avatar utente
Foto UtenteEcoTan
5.350 4 10 13
Expert EY
Expert EY
 
Messaggi: 3225
Iscritto il: 29 gen 2014, 8:54

0
voti

[33] Re: potenziometro o encoder

Messaggioda Foto Utentelelerelele » 30 apr 2018, 9:52

EcoTan ha scritto:Un segnale può rimbalzare quanto vuole, equivale ad una vibrazione avanti e indietro ma non viene considerato come spostamento finché non varia l'altro segnale. Ovviamente non devono rimbalzare tutti insieme, l'encoder deve essere serio.
se la "vibrazione" è sull'ingresso con interrupt avrai la sequenza numerica che avanza in un senso con velocità elevata, ed è quello che mi è successo.

saluti.
Avatar utente
Foto Utentelelerelele
2.191 3 7 8
Expert EY
Expert EY
 
Messaggi: 2514
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[34] Re: potenziometro o encoder

Messaggioda Foto Utentevenexian » 30 apr 2018, 9:53

lelerelele ha scritto:se la "vibrazione" è sull'ingresso con interrupt avrai la sequenza numerica che avanza in un senso con velocità elevata, ed è quello che mi è successo.

E questa è la prova che utilizzare il sistema con l'interrupt è la via sbagliata per leggere un encoder in quadratura.
Immagine
Avatar utente
Foto Utentevenexian
6.249 3 4 7
Master
Master
 
Messaggi: 2188
Iscritto il: 13 mag 2017, 10:07
Località: Venezia (ma va?)

0
voti

[35] Re: potenziometro o encoder

Messaggioda Foto Utentelelerelele » 30 apr 2018, 10:09

venexian ha scritto:E questa è la prova che utilizzare il sistema con l'interrupt è la via sbagliata per leggere un encoder in quadratura.
Pur essendo d'accordo, non so se usare il polling, (quindi impegno massiccio del micro solo per questo) valga la pena rispetto ad un filtraggio analogico degli ingressi.

magari sbaglio.

saluti.
Avatar utente
Foto Utentelelerelele
2.191 3 7 8
Expert EY
Expert EY
 
Messaggi: 2514
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[36] Re: potenziometro o encoder

Messaggioda Foto Utentedadduni » 30 apr 2018, 10:19

Vorrei fare una domanda da tonto.
La sequenza che hai scritto in un messaggio precedente:
a) 0 0
b) 0 1
c) 0 0
d) 0 1

Non riesco a vederla nel grafico. Se il secondo pin fa 0->1->0->1 effettivamente ho fatto due scatti, se il primo pin è sempre a 0 vuol dire che l'encoder è fuori quadratura e qualcosa non va nell'hardware.

Avatar utente
Foto Utentedadduni
1.655 2 6 12
Expert EY
Expert EY
 
Messaggi: 1034
Iscritto il: 23 mag 2014, 16:26

0
voti

[37] Re: potenziometro o encoder

Messaggioda Foto Utentevenexian » 30 apr 2018, 10:23

1) Il polling non è un uso massiccio del micro. L'utilizzo della risorsa dipende dalla durata della routine di polling. Nell'esempio fatto sopra, l'utilizzo è dello 0,1 % per una macchina che legge 1 000 impulsi al secondo.

2) Utilizzare i filtri esterni e leggere con l'interrupt è un sistema concettualmente errato. Può funzionare anche in ampi intervalli di condizioni esterne, ma non è un sistema né sicuro, né affidabile.

Ciò che non capisco (*) è perché ci si ostini a voler adoperare soluzioni errate che costano di più in termini di utilizzo di risorse, più in termini di componenti utilizzati, più in termini di codice... per ottenere risultati insufficienti, inaffidabili e magari anche pericolosi...


(*) In realtà, l'idea ce l'ho. Non è certo il caso specifico di lelerelele, ma è un globale andamento di sciatteria generale nella progettazione. Non ci si preoccupa più di fare un lavoro 'fatto bene' e, prima di tutto, di capire perché si debba utilizzare una soluzione invece di un'altra. Si cerca la soluzione che 'più o meno' funzioni, ma che sia già fatta e per la quale non serva utilizzare tempo per comprendere l'oggetto sul quale si stà lavorando. Più o meno ciò che succede con i vari 'sketch': l'importante è che faccia qualcosa, il come e il perché sono dettagli inutili...
Immagine
Avatar utente
Foto Utentevenexian
6.249 3 4 7
Master
Master
 
Messaggi: 2188
Iscritto il: 13 mag 2017, 10:07
Località: Venezia (ma va?)

0
voti

[38] Re: potenziometro o encoder

Messaggioda Foto Utentedadduni » 30 apr 2018, 10:28

Più o meno ciò che succede con i vari 'sketch': l'importante è che faccia qualcosa, il come e il perché sono dettagli inutili

In generale hai ragione, ma non credo sia questo il caso di questo forum in cui sono tre giorni che si discute di come "far girare una manovella" che comunque in un modo o nell'altro tutti hanno sempre fatto funzionare.
Sto partecipando così tanto perché voglio capire i limiti dell'una e dell'altra soluzione. Il caso che tu proponi è giusto, la interrupt non capisce in quale stato si è e se anche si è fuori quadratura per lei è corretto. Ma quando si verifica questo evento? E la macchina a stati non è soggetta anch'essa ai rimbalzi?
Avatar utente
Foto Utentedadduni
1.655 2 6 12
Expert EY
Expert EY
 
Messaggi: 1034
Iscritto il: 23 mag 2014, 16:26

1
voti

[39] Re: potenziometro o encoder

Messaggioda Foto UtentePietroBaima » 30 apr 2018, 10:34

venexian ha scritto:1) Il polling non è un uso massiccio del micro. L'utilizzo della risorsa dipende dalla durata della routine di polling. Nell'esempio fatto sopra, l'utilizzo è dello 0,1 % per una macchina che legge 1 000 impulsi al secondo.


A proposito, ci tengo a fare un chiarimento generale che volevo già fare in passato.

Usare un interrupt ciclico per fare una lettura di un ingresso E’ fare polling.
Non importa il modo con il quale si legge un ingresso ciclicamente, ma il fatto che lo si legga ciclicamente.

Usare un interrupt è una cosa diversa: significa che il microcontrollore esegue una service di interrupt quando si verifica una condizione specifica (per esempio la variazione di un pin di ingresso, l’underrun di un timer, un watchdog ecc...)
Generatore codice per articoli:
nomi
emoticon
citazioni
formule latex

Io capisco le cose per come le scrivete. Per esempio: K sono kelvin e non chilo, h.z è la costante di Planck per zepto o per la zeta di Riemann e l'inverso di una frequenza non si misura in siemens.
Avatar utente
Foto UtentePietroBaima
77,2k 6 12 13
G.Master EY
G.Master EY
 
Messaggi: 9413
Iscritto il: 12 ago 2012, 1:20
Località: Londra

0
voti

[40] Re: potenziometro o encoder

Messaggioda Foto Utentedadduni » 30 apr 2018, 10:40

[quote="venexian"]Questa è la macchina del lettore di cui scrivevo prima

WH2.png

[/quote="venexian"]

Ho seguito passo passo la macchina a stati e, sarà un mio limite, ma ci vedo lo stesso sistema delle interrupt che triggera su entrambi i fronti. Da qualsiasi stato qualsiasi fronte arrivi su qualsiasi ingresso fa la XOR degli ingressi i incremeta o decrementa per poi arrivare al nuovo stato.
Gli stati adiacenti collegati sono solo quelli in cui varia un solo bit in ingresso ossia avere un fronte.
Non voglio dire una fesseria ma credo che nella sequenza
1) 0 0
2) 1 0
3) 1 1
4) 0 1
io ci vedo un solo incremento invece la macchina a stati ne vede due
Avatar utente
Foto Utentedadduni
1.655 2 6 12
Expert EY
Expert EY
 
Messaggi: 1034
Iscritto il: 23 mag 2014, 16:26

PrecedenteProssimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 33 ospiti