Vai al contenuto
PLC Forum


Motore cc con encoder e Arduino Mega


attiliovolpe

Messaggi consigliati

attiliovolpe

Salve, vorrei capire come far leggere ad Arduino gli impulsi di un encoder collegato ad un motorino cc recuperato da una stampante, qualcuno ha qualche riga di codice e/o qualche informazione? Il sensore è uno di quelli a forcella penso con foto transistor di cui non ho data sheet, avrei bisogno di qualche info anche su quello.

 

Non devo realizzare nulla di particolare, sto smanettando a banco con Arduino nei ritagli di tempo libero.

 

DPP_0001.JPG.12d90d2cce69a164677aaf9fa8dd33a7.JPG        DPP_0002.JPG.afb965673fb8b4c48c5f6be92363cd35.JPG

 

 

Link al commento
Condividi su altri siti


Livio Orsini

Per il tipo di segnali, non avendo dati, devi ricostruirti le informazioni analizzando i segnali con un oscilloscopio ed analizzando con pazienza il circuito di interfaccia del lettore.

 

Per arduino uno ci sono degli sketch che usano i contatori per misurare la frequenza di un segnale, da questi potresti ricavare il conteggio.

Il vero problema sta nella bidirezionalità degli inmpulsi, bidirezionalità data dalla fase della quadratura.

Arduino non ha contatori bidirezionali.

Inoltre devi rivelerare il senso di rotazione. Effettuare il senso di rotazione in software è pesante e ti occupa molte risorse, anche perchè va eseguito quattro volte per impulso. Potresti fare un discriminatore esterno, è sufficiente un flip-flop tipo D, però poi hai sempre il problema del conteggio e deconteggio. Dovresti avere 2 contatori: uno per i segnali up e l'altro per quelli down, poi ogni volta fare la differenza tra i 2.

Meglio, a mio parere, farsi tutto in Hw e poi interfacciare in seriale I2C con arduino.

Link al commento
Condividi su altri siti

attiliovolpe

Come si vede dalla foto il disco è singolo, avrai quindi un solo "canale"

Il motore è Mabuchi, sembra produrre degli ottimi motori, ma non trovo le caratteristiche del mio che è un RK-370CA 09900R (09900R non compare tra quelli disponibili!)

Oltretutto c'è sul corpo motore un'altra sigla "TD137918" penso sia riferita al disco encoder, e ancora 00EM-554.

Anche per il disco non trovo nulla e non ho idea di come contare le tacche in maniera precisa, sono troppo vicine...

 

Link al commento
Condividi su altri siti

Livio Orsini
Quote

Come si vede dalla foto il disco è singolo, avrai quindi un solo "canale

 

Tutti gli encoder incrementali hanno un solo disco. I 2 canali si ricavano con una fochetta doppia in cui i ricevitori sono distanziati dell'equivalente di 90° elettrici.:)

Se si usassero 2 dischi non si riuscirebbe ad ottenere la precisione di fase necessaria.

 

Quote

Anche per il disco non trovo nulla e non ho idea di come contare le tacche in maniera precisa, sono troppo vicine

 

Puoi farlo con un oscilloscopio, però devi conoscere il modo abbastanza preciso la velocità a cui va il motore.

Devi trovare un encoder di cui conosci gli impulsi per giro e lo accoppi al motore. Poi con l'oscilloscopio misuri la frequenza e ti ricavi la velocità.

Poi monti il tuo encoder e dai la medesima tensione di armatura, la velocità sarà molto simile. Dalla frequenza ricavi il numero di imlulsi dell'encoder, tenendo presente che gli impulsi per giro hanno valori ben deviniti come 1000,1500, 2000, 1024, etc.

Link al commento
Condividi su altri siti

attiliovolpe

Doppia forchetta ma con doppia foratura sul disco, almeno quello che ho avuto modo di aprire perchè ormai guasto era così, ma parliamo di encoder per applicazioni di automazione.

Questo ha una sola forchetta, ma per quello non c'è problema possono diventare due in modo da discriminare anche il senso di rotazione, ma sul disco c'è una sola "banda" di tacche, e vengono indicate tra le caratteristiche in LPI "line per inch".Adesso vedo di procurarne un altro di cui conosco il dato impulsi giro e seguo il tuo consiglio.

 

 

58becd8b3b4d4_Discoenc.thumb.jpg.9399b479e3cd7aa6e8bba68411810790.jpg

Link al commento
Condividi su altri siti

Livio Orsini
Quote

Doppia forchetta ma con doppia foratura sul disco,

 

Era molto vecchio allora; si usava così quando le dimensioni dell'ottica non permettevano un dispositivo doppio che legge con sfasamento di 90°, quindi si era costretti a creare 2 tracce sfasate di 90° e mettere 2 ottiche. Poi dato che le tracce erano molto più precise della meccanica, spesso c'era anche una vite micrometrica di regolazione della posizione della seconda coppia emettitore-ricevitore.

Link al commento
Condividi su altri siti

  • 2 weeks later...

@Livio Orsini Livio faccio una domanda, se io utilizzassi un motore stepper a cui collego l'encoder in questione, potrei contare gli impulsi per giro? Dico così perchè per  lo stepper già si conoscono step/giro

 

Driver per motore stepper, e sensore a forcella che legge il disco collegato al motore, che ne dici?

 

Non ho altri riferimenti da utilizzare, vorrei cercare di utilizzare quello che ho ed di entrambi gli encoder non ne conosco la risoluzione, anzi approfitto per chiedere se ci fosse qualcuno che mette le mani nelle stampanti e magari ha informazioni sulla risoluzione di questi dischi mi farebbe un favore.

Link al commento
Condividi su altri siti

Potresti addirittura comadare un step e leggere gli impulsi relativi. Gia da questo dato risali al numero di impulsi per giro.

Ovviamente dopo una rivoluzione completa hai ridotto ad 1 impulso solo le possibili indecisioni. Però misurando sia gli impulsi ad ogni passo e gli impulsi per rivoluzione fai un doppio controllo.

Link al commento
Condividi su altri siti

Basterebbe contare l'impulsi dopo un numero più elevato di giri , 10 , 100 oppure 1000 , così l'errore potrebbe essere anche eliminato.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...