Vai al contenuto
PLC Forum


Posizionatore Con Arduino


roberto8303

Messaggi consigliati

allora ieri purtroppo non sono riuscito a fare molte prove sono stato impegnato proprio per arduino qui

http://arduino.irlug.it/

:smile:

però so di certo che l '' accrocchio'' del motorino che ho non va bene, perche ha dei punti di impedimento poi appena lo muovo con la mano prende un po di rincorsa, e mi sa che devo modificarlo e renderlo quanto piu leggero possibile.

Per la frequenza non ho controllato posso misurarla incrementando una variabile e vedere in un minuto a quanto arriva e dividere per 60 cosi so quanti hz sono.

Link al commento
Condividi su altri siti


  • Risposte 142
  • Created
  • Ultima risposta

Top Posters In This Topic

  • walterword

    59

  • Livio Orsini

    42

  • roberto8303

    39

  • gabri-z

    2

nell interrput ho incrementato contatore++ è ogni minuto ho 6000 impulsi ho visualizzato nella seriale con baudrate a 115200 è attendibile?

Link al commento
Condividi su altri siti

stai pilotando un servo ?

Io ne ho due della parallax ma con poca documentazione , l'unica cosa che so e' che l'alimentazione massima è di 6 V

Mi piacerebbe fare delle prove con arduino .Il servo e' questo

c65e8761dd1ad485a9de64eff58cdf6a.png

Link al commento
Condividi su altri siti

No sta usndo una scheda chopper con LM298 per pilotare motori in cc e passo passo. E' una delle tante shield classiche per arduino, ne esistono decine di versioni. Ha anche messo il link della scheda.

Link al commento
Condividi su altri siti

no walter sto usando un motoriduttore dc come questo

http://it.rs-online.com/web/p/motoriduttori-cc/4540798/?searchTerm=motoriduttori+dc+5%3A1&relevancy-data=636F3D3226696E3D4931384E4B6E6F776E4173266C753D6974266D6D3D6D61746368616C6C26706D3D5E5B5C707B4C7D5C707B4E647D5C707B5A737D2D2C2F255C2E5D2B2426706F3D3726736E3D592673743D4B4559574F52445F4D554C54495F414C5048415F4E554D455249432677633D4E4F4E45267573743D6D6F746F7269647574746F726920646320353A3126

il tuo servo non so se è digitale, se è sbloccato? altrimenti non puoi ottenere la ruotazione continua. gli analogici all interno hanno un potenziomentro proprio sotto l ingranaggio che ruota insieme ad esso per conoscere la posizione.Purtroppo pero i servo normali si spostano solo di un certo grado non possono fare la funzione come nel mio caso a meno che non siano a rotazione continua.Poi per i comandi del servo c è la libreria arduino che da direttamente il comando per lo spostamento in gradi.

Modificato: da roberto8303
Link al commento
Condividi su altri siti

Attenzione! Dovresti approfondire le caratteristiche sul sito del produttore perchè sembra che abbia un campo di regoalzione abbastanza preciso; questo spiegherebbe un po' il fatto che necessiti di una tensione minima prima di mujoversi.

Link al commento
Condividi su altri siti

altrimenti puoi modificarlo tu c è chi lo fa io per esempio lo feci per costruire dei modellini escavatori radiocomandati con 6 servo sbloccati 3 braccio la ralla per la rotazione e due per i cingoli.

su youtube ci sono molti video che fanno vedere come sbloccare un servo

qui invece puoi comprarlo gia fatto

http://www.robot-italy.com/it/hitec-hsr-1425cr-continous-rotation-servo.html

Per Livio, il motorino che avevo è questo

http://www.mfacomodrills.com/pdfs/940D%20series.pdf

rapporto 5:1 un po troppo veloce...

ma mi sono accorto che non va bene perche comunque l alimentazione minima è 4,5volt, lo provai a banco con alimentatore e partiva con 2 volt ma ora con la catena ha qualche impedimento.. :( .e quindi nulla da fare devo trovare qualche altra cosa...mi sa proprio un servo sbloccato... :smile:

Link al commento
Condividi su altri siti

questo è gia sbloccato praticamente con il riferimento pwm hai la rotazione continua ed all aumentare della velocita del pwm aumenta la velocita del motorino, quindi non hai il controllo dei gradi di posizione ma solo di velocita.

Link al commento
Condividi su altri siti

ok infatti e' continuo

Potresti indicarmi un tipo di servo con trollo di posizione?

Modificato: da walterword
Link al commento
Condividi su altri siti

a dire il vero non ho mai fatto prove con un servo motore in ambito arduino :toobad:

Modificato: da walterword
Link al commento
Condividi su altri siti

allora rieccomi,posto due foto del motore che ho usato

8cf01d83913b770f580d0e962aa6c9a7.jpg

c0f68ba20a484fac135888510c49d256.jpg

72c1285a4515b4dfcd5527d2f7076b7b.jpg

ora quello che ho pensato visto che ho la tensione minima troppo bassa dalla scheda controllo motore arduino, non è che posso utilizzare un transistor di potenza e alimentare il motore con una tensione separata? Altrimenti sono costretto a cambiare motorino ma questo avevo gia disponibile e l ho gia fissato alla staffa..molto molto precisa... :P:lol:

Link al commento
Condividi su altri siti

La scheda drive che stai usando dovrebbe avere 2 alimentazioni: una a 5V per la logica e l'altra da 5V in su per la potenza. Ti basta alimentare con un 12V la potenza e dovresti essere a posto, anzi io pensavo che lo avessi già fatto. ;)

Link al commento
Condividi su altri siti

si che l ho fatto ci mancherebbe ho utilizzato un 9 voltdc 1 ampere. Il problema che se il pwm è proporzionale alla tensione di uscita in questo caso 9 volt comunque con il pwm basso la tensione non è sufficiente a spostare il motorino che parte a bene a circa 2.5 volt di riferimento...

Link al commento
Condividi su altri siti

che parte a bene a circa 2.5 volt di riferimento..

Scusa intendi riferimento o tensione sull'armatura?

Il foglio tecnico del motoriduttore prevede tensioni da 4.5V a 15 V.

Se alimenti la scheda con 15 V con duty cycle di 77 ottieni quei 4.5 V che sono la tensione minima.

Link al commento
Condividi su altri siti

Tensione sull armatura 2,5 il motore riesce a spostarsi, quindi cm dici tu 77 punti di pwm sono sufficienti per far funzionare bene la rampa? Se e cosi prendo un alimentatore da 15volt oppure 24 volt vabbene secondo te?

Link al commento
Condividi su altri siti

Se alimenti con 15 V i 2.5V dovresti già ottenerli con circa 45 / 255 di PWM. BAsta alimentare la potenza con 15 V per rendersene conto.

Link al commento
Condividi su altri siti

Se hai impostato 550 partendo da 50, il punto di mezzo si trova a 300. Tutte le voklte che entri in rampa controlli se la posizione del momento è <300; se à così incrementi la rampa sino a raggiungere 254 (perchè a 255 hai uscita sempre alta). Se invece sei arrivato a 300, inizi a decrementare il valore di PWM. Se raggiungi 254 con quota, ad esempio, pari a 250 devi fre 550 -250 - 50 (che è l'offset di zero); quindi quando raggiungi 350 inizierai a diminuire il PWM.

allora sto andando avanti, ma non capisco come faccio l ultima parte quando sono con il pwm al massimo prima della meta rampa
Cioe se sono >= a 254 pwm allora setpoint-posizione-50 come devo scriverlo in codice esattamente per capire quando sono alla quota per rallentare?

Link al commento
Condividi su altri siti

Ricapitoliamo.

Tutta l'escursione dell'asse abbiamo detto che va da 0 a 1024.

Lo zero dell'asse è posto a 50.

Il traguardo del posizionamento lo abbiamo posto a 550.

La lunghezza della missione è 550 - 50 = 500; metà della missione 500/2 = 250. Il punto di mezzo della missione è 250 + 50 di offset = 300.

Ad ogni ingremento di rampa leggi la posizione; se la posizione è >= 300 inizi la rampa di discesa e da quel momento decrementi solo sino a raggiungere la velocità minima.

Se il PWM è arrivato al massimo, ovvero 254 su 255, e la posizione è < 300 memorizzi questo valore. Sottrai da questo valore l'offset di partenza, 50, ed ottieni lo spazio di accelerazione. Per esempio hai raggiunto il massimo con posizione pari a 200. Sottraendo l'offset di 50 otterrai lo spazio di accelerazione che è pari a 150. Ora sottrai questo valore a l valore del traguardo ed otterrai la quota di rallentamento. QUindi 550 - 150 = 400. Quando raggiungi la quota di 400 inizi la rampa di discesa.

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...