Spesa per controllo velocità motore dc

Salve, sono uno studente di ingegneria elettrica che dopo tanta teoria inizia ad affacciarsi da autodidatta alla pratica. Il mio obiettivo finale, è quello di realizzare un controllo di velocita' su di un motore dc e sono qui per chiedervi quali prodotti acquistare; Vorrei usare: ponte ad H integrato, motore dc ovviamente ed un encoder ottico, ma quali preferirei consigli da voi piu' esperti per non dover comprare 2/3 almeno uno stesso componente :) Grazie per la disponibilita'

Iociprovo: motore dc ovviamente ed un encoder ottico,

Allora lascia perdere Arduino e passa alla Teensy 3.1, Arduino non è in grado di gestire un encoder ottico adatto al controllo velocità, ovvero con non meno di 100 cpr calettato direttamente sul motore.

Capisco! Comunque riapro la discussione in software, cosi' inizio almeno a capire come leggere e gestire la velocita' da un encoder! Potresti consigliarmi qualche lettura a tal proposito?

Vorrei aggiungere a quanto scritto da astrobeed che se usare Arduino o meno dipende soprattutto da cosa ti aspetti di fare, dalla velocità del motore DC (cosa deve fare? se deve comandare un'elica è un conto, se è per far girare una ruota di un veicolo a bassa velocità un altro), e dal tipo di informazione che vuoi leggere ossia con quale affidabilità e velocità.

Se non hai requisiti molto stringenti anche Arduino è sufficiente secondo me. In questo caso potrebbe andare bene una cosa di questo tipo: Wheel Encoder Kit

Se hai già un encoder disc ti basta anche il solo speed sensor, tipo questo: Speed Sensor

Oppure costruirlo da te prendendo un sensore a forcella al quale aggiungere 4 resistenze e un operazionale per avere una uscita digitale.

A parte questo, poi ti serve il software perché con il sensore hai solo l'informazione del singolo step...

Insomma, facci sapere più in dettaglio cosa ti serve e vediamo cosa si può provare a consigliarti. :-)

Ciao Docdoc :slight_smile: grazie per l’interesse! Comunque guarda, il mio scopo è’ fare un controllo di velocità qualsiasi giusto per applicare quanto studiato, quindi se mi dici che è fattibile con arduino allora ok! Iniziamo a vedere cosa acquistare, che motore dc consigli?

Che ne dite se parallelamente a questo post, ne apro uno nella sezione software per iniziare ad impostare la lettura della velocita' dall'encoder( ipotizzando una sensibilita' di questo del tutto arbitraria da adattare quando lo acquistero') ??

Per la scelta del motore DC va bene quello che hai o che trovi, ti basta anche un vecchio motorino di un modellino di auto o uno del Lego:-) Devi ovviamente fare attenzione all'assorbimento, deve essere mooolto limitato altrimenti dovresti usare un driver per motori DC come gli L293DNE (trovi in rete decine di esempi di implementazione).

Per il software, possiamo poi proseguire in apposito thread su Software se vuoi approfondire, ma in linea di massima è più semplice di quanto tu creda, secondo me, ti spiego come sto facendo io.

Per l'hardware quindi, potresti anche costruirlo da te il sensore se hai già un disco (es. quelli forniti insieme ai robot car kit). Ti basta 1 LED IR, 1 fototransistor IR, 3 resistenze, un trimmer e un operazionale per avere l'uscita digitale. Una cosa di questo tipo (è un mio schema fatto poco tempo fa e che ho usato per altro scopo): |500x251 La lista materiali:

  • 1 TSUS4300
  • 1 TEFT4300
  • 3 R 10k Ohm
  • 1 R 220 Ohm
  • 1 UA741CN La lettura della velocità usando una coppia IRLed+Fototransistor come questa (o un encoder a forcella che è la stessa cosa visto che è composto sempre da una tale coppia, ma ti semplifica il posizionamento corretto), è relativamente semplice: il sensore del motore (OUT) va collegato ad uno dei pin di interrupt (su UNO sono il 2 per l'int0 e il 3 per int1) e questo pin sarà alto o basso a seconda della presenza o meno della finestrella del disco encoder. Per cui con "attachInterrupt()" agganci all'evento che ti interessa (es. da HIGH a LOW) una tua funzione, la quale semplicemente incrementa un contatore.

A questo punto ad intervalli regolari (es. 1 secondo) leggi il contatore, da questo calcoli la velocità: se l'intervallo "T" è in secondi (float), sai quanti fori ha il disco diciamo "F" (int), e hai letto "N" (int) eventi, calcoli la velocità V (long) in giri al minuto come V = (N/F)/T*60 e azzeri il contatore.

Non ci sono sensibilità particolari da tarare, l'uscita di un sensore di questo tipo dovrebbe essere 0=0V (fascio interrotto dalla plastica del disco) e 1=5V (fascio attivo, ossia finestrella). Se preferisci il contrario, inverti i pin 2 e 3 dell'Opamp. Lato software intercetti gli eventi di cambiamento di stato e hai fatto.

E' questo che ti interessava sapere?

Iociprovo..ti consiglierei di mettere il link al tuo thread nella sezione software e viceversa

Docdoc molto molto chiaro, e molto gentile ho ordinato i pezzi e non appena arrivano ci provo :)

Icio, provvedo subito http://forum.arduino.cc/index.php?topic=331453.0 Ti rispondo li :)