Encoder per motore dc

Ciao a tutti!
Avrei un quesito da porvi ma prima vi spiego il dispositivo. Si tratta di un motore 6v dc collegato tramite una puleggia ad una cinghia che muove una sorta di nastro trasportatore. In base al
Fatto che sul nastro trasportatore venga messo il prodotto 1,2,3...n il nastro dovrà spostarsi di una distanza x1,x2,x3...xn.
Detto questo ora ho scritto un programma che muove il motore per tot millisecondi, il problema è che in base al peso varia lo sforzo necessario da parte del motore e quindi di conseguenza la distanza percorsa a parità di tempo.

Ora ho pensato di utilizzare un encoder magnetico per leggere le rotazioni del motore e alimentare il motore in base alla lettura dell’encoder. In questo modo sarei sicuro che il nastro si sposti sempre della stessa distanza indipendentemente dal peso perché verrebbe alimentato fintanto che il conteggio degli impulsi letti dall’encoder non avrà il valore Y.

Non ho mai usato un encoder quindi vorrei chiedervi se potreste aiutarmi a buttare giù un bozza di codice per poter fare questo?

A logica dovrebbe seguire per esempio una cosa del genere:

If prodotto 1
Motor up
While encoder value is 120 (supponiamo 2 giri e 60 impulsi per giro)

Ecco non ho la minima idea di come scrivere il codice per usare l’encoder e del collegamento con arduino..
L’ encoder in questione:
-6 uscite M1,M2,VCC, GND, OUTA, OUTB.

  • encoder con disco magnetico e due uscite digitali A B e 12 impulsi per rivoluzione.

Specifico che il motore dovrà ruotare sia in senso orario che in senso antiorario quindi gli impulsi dovranno essere contati in entrambi i sensi di rotazione. Non è importante sapere qual’è il senso di rotazione.

Attendo il vostro supporto

Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

Chiedo scusa, primo forum per me.. fatto!

Secondo me ti conviene andare di motore stepper piuttosto che di motore dc... o al massimo ti conviene montare dei microswitch (se avresti la possibilità di farlo) in corrispondenza delle posizioni da raggiungere, e puoi evitare l'encoder...

voto anch'io microswitch

inutile cercarsi rogne

Soluzione comoda il motore stepper ma per motivi di spazio non posso che usare un micro motoriduttore dc. L’idea degli switch l’ho provata e funziona, il problema è che volevo evitare di avere in giro tutti quei cavi.. da qui l’idea di un micro encoder magnetico..

Due fili, un cavo, che sente una camma sull'albero del motore

Conti i giri

Che potrebbe poi anche essere un solo filo in più sul cavo che gia va al motore
Che chiude a massa un input pullup

Se questo è troppo complesso....

I vai prodottoX hanno dei pesi fissi o ciascun prodotto può anche avere pesi differenti?

ste9994:
il problema è che in base al peso varia lo sforzo necessario da parte del motore

Ciao,P.

abortita l'idea dello stepper, rimango sempre dell'idea dei microswitch, possibilmente fotoaccoppiatori per una sicurezza assoluta sulla commutazione del segnale, senza stare ad impazzire sul debounce, ecc... o meglio ancora se utilizzi gli switch ad infrarossi... anche perché con il contagiri puoi risolvere il problema parzialmente, ma immagina se la cinghia inizia a slittare per il peso... te ne fai il brodo dei numeri di giri... poi, sono gusti personali...