Trasduttori potenziometrici, righe ottiche a loop chiusi

Sezione dedicata all'elettronica di controllo cnc.
Rispondi
Avatar utente
miki89555
Newbie
Newbie
Messaggi: 35
Iscritto il: mercoledì 7 settembre 2011, 17:56
Località: Istrana Treviso

Re: Trasduttori potenziometrici, righe ottiche a loop chiusi

Messaggio da miki89555 » martedì 15 novembre 2011, 11:57

walgri ha scritto:Vero. La deskjet 550C ha la fettuccia, credo con risoluzione 300Dpi, quindi circa 1/10 di mm. Al contrario la più vecchia 500 ha l'encoder rotativo sul motore. Credo che anche certe Lexmark "da supermercato" avessero la fettuccia.
Ho guardato sulla mia stampante lexmark Z605 e ho visto che c'è davanti una righa trasparente con delle righette verticali, se non sbaglio quella dovrebbe essere la fettuccia che tu mi hai consigliato, che da la posizione al getto dell'inchiostro.
Volevo chiedere se qualcuno sa come poter interpretare il segnale che ne esce da quel sensore e spratutto se è una cosa fattibile:roll:
Grazie

Avatar utente
walgri
God
God
Messaggi: 4735
Iscritto il: giovedì 13 gennaio 2011, 18:37
Località: Cagliari

Re: Trasduttori potenziometrici, righe ottiche a loop chiusi

Messaggio da walgri » martedì 15 novembre 2011, 12:12

E' quella. Trova il sensore nel carrello della stampante, dovrebbe avere quattro pin. Per la lettura in quadratura, tra le mille opzioni, prova a vedere questo mio thread: https://www.cncitalia.net/forum/viewtopi ... 21&t=34462 la funzione che effettua la lettura è Leggi_A.

Ovviamente a te interessa soltanto aggiornare la posizione, quindi elimina pure le chiamate a digitalWrite e do_step negli if interni.

Il codice è un po' un guazzabuglio perchè nasce per aggiunte successive senza un piano preciso, ma almeno la funzione di lettura sembra funzionare a dovere :wink:

Legge, tuttavia, solo il segnale A dell'encoder. Per leggere anche il B devi scrivere una funzione quasi identica e assegnarla con attachInterupt al pin a cui collegherai il segnale B.

A occhio e croce lo sai fare meglio di me :)

Ciao
...stop chasing shadows, just enjoy the ride.
Aìna pantografoTelemetria per KFlopBlenderCAM STL + DXF

Avatar utente
miki89555
Newbie
Newbie
Messaggi: 35
Iscritto il: mercoledì 7 settembre 2011, 17:56
Località: Istrana Treviso

Re: Trasduttori potenziometrici, righe ottiche a loop chiusi

Messaggio da miki89555 » martedì 15 novembre 2011, 13:46

walgri ha scritto:E' quella. Trova il sensore nel carrello della stampante, dovrebbe avere quattro pin. Per la lettura in quadratura, tra le mille opzioni, prova a vedere questo mio thread: https://www.cncitalia.net/forum/viewtopi ... 21&t=34462 la funzione che effettua la lettura è Leggi_A.

Ovviamente a te interessa soltanto aggiornare la posizione, quindi elimina pure le chiamate a digitalWrite e do_step negli if interni.

Il codice è un po' un guazzabuglio perchè nasce per aggiunte successive senza un piano preciso, ma almeno la funzione di lettura sembra funzionare a dovere :wink:

Legge, tuttavia, solo il segnale A dell'encoder. Per leggere anche il B devi scrivere una funzione quasi identica e assegnarla con attachInterupt al pin a cui collegherai il segnale B.

A occhio e croce lo sai fare meglio di me :)

Ciao

Pultroppo Arduino non riesco a digerirlo, cmq essendo molto simile al C si capisce che la funzione leggi_A interroga il pin nel cambio di stato del segnale a onda quadra; il punto di zero si trova al centro?
per iniziare a sperimentare devo prima trovare una vecchia stampante perchè non voglio smontare la mia, che non è nuova, ma per quello che mi serve va più che bene.

Avatar utente
walgri
God
God
Messaggi: 4735
Iscritto il: giovedì 13 gennaio 2011, 18:37
Località: Cagliari

Re: Trasduttori potenziometrici, righe ottiche a loop chiusi

Messaggio da walgri » martedì 15 novembre 2011, 14:10

Con la chiamata a attachInterrupt all'interno della funzione setup si fa in modo che leggi_A venga chiamata ad ogni fronte di A, la digitalRead interroga lo stato del pin e restituisce LOW o HIGH, non c'è un centro.
attachInterrupt, digitalRead, i simboli HIGH e LOW sono tutti facenti parte della api di Arduino, la mia impressione è che siano solo uno strato sottile al di sopra della programmazione C/C++ standard del microprocessore. Probabilmente nella documentazione del tuo compilatore ci sono descritte delle funzioni simili.
...stop chasing shadows, just enjoy the ride.
Aìna pantografoTelemetria per KFlopBlenderCAM STL + DXF

Avatar utente
miki89555
Newbie
Newbie
Messaggi: 35
Iscritto il: mercoledì 7 settembre 2011, 17:56
Località: Istrana Treviso

Re: Trasduttori potenziometrici, righe ottiche a loop chiusi

Messaggio da miki89555 » martedì 15 novembre 2011, 14:30

solitamente uso l'assembly.
Si anche sul PIC c'e la possibilità  di attivare l'interrupt ad ogni cambio di stato dell PORTB, avevo già  pensato di sfruttare questa funzione.

Rispondi

Torna a “Elettronica CNC”