Buonasera a tutti,
innanzitutto vorrei augurare una buona pasqua a tutti.
sono nuovo del forum ma arduino lo utilizzo già da alcune settimane e vorrei unirlo alla mia passione per l aeromodellismo.
il mio obbiettivo sarebbe controllare un brushless motor(tramite ESC) con un potenziometro, in cui il valore 0 è il motore fermo e più giro il pot per arrivare a 1023 con il motore al massimo. avevo sentito parlare che si dovevano giestire con la libreria dei servo il PWM utilizzando qualcosa simile all esempio KNOB presenet nell' IDE. sinceramente forse per errore mio non ho capito coem utilizzarlo e visto che il Brushless lo ho acquistato e dovrebbe arrivare entro la fine della settiamana non voglio fare casino e/o rovinarlo/distruggerlo.
grazie a chi mi risponderà e ancora buona pasqua
P.S: se collego l'ESC alla basetta el pin del segnale au PWM devo collegare anche il 5V e il GND?(
Devi collegare la massa e il segnale a Arduino.
Ci sono ESC con un alimentatore interno (BEC o battery ellimination circuit) che danno 5V sul conettore e cosí potresti alimentare Arduino. Non so se il modell che nomini ha questa funzione.
Il pilotaggio avviene con un segnale PPM che viene gestito dalla bibioteca servo.h di serie nel IDE.
Leggi il valore di tensione del potenziometro con un entrata analogica e lo mappi a 0 a 180.
Attenzione la maggior parte dei ESC ha bisogno che il senale vada prima a 0 e poi al valore stabilito per partire.
Ecetto che programmi il pin 9 e attacchi il ESC al pin 10 del Arduino il resto é giusto.
Per favore rinpicciolici l'immagine per inserirla o agiungi "width=500" al "img" tag.
Ciao Uwe
Grazie mille,
Ora però mi è venuto un dubbio:
La libreria servo avevo sentito dire che potesse gestire soltanto il pin 9 e 10 ,ciò vuol dire che posso controllare solo due brushless motor!?!?!
so che e' un thread vecchio ma almeno evito di aprirne uno nuovo, volevo chiedere a chi potesse rispondermi, come mai il la mappa tura viene fatta a valori 0-179 nn era piu' corretto 0-255? 255 non e' la massima potenza erogabile?
Ispa:
volevo chiedere a chi potesse rispondermi, come mai il la mappa tura viene fatta a valori 0-179 nn era piu' corretto 0-255? 255 non e' la massima potenza erogabile?
0-179 è sbagliato per un ESC dato che corrisponde ad una variazione di +/- 90° su un servoRC, il valore da usare è +/- 45°, quello standard dei radiocomandi, quindi si deve ragionare tra 45 e 135 utilizzando la myservo.write() in gradi.
Sarebbe meglio utilizzare la myservo.writeMicroseconds() con valori compresi tra 1000 e 2000 (1ms e 2 ms).
astrobeed:
0-179 è sbagliato per un ESC dato che corrisponde ad una variazione di +/- 90° su un servoRC, il valore da usare è +/- 45°, quello standard dei radiocomandi, quindi si deve ragionare tra 45 e 135 utilizzando la myservo.write() in gradi.
Sarebbe meglio utilizzare la myservo.writeMicroseconds() con valori compresi tra 1000 e 2000 (1ms e 2 ms).
grazie della risp,
ho ancora dei dubbi..... 0-179 nn e' un escursione di 180 gradi?
se dovessimo rimappare cmq a 45 gradi nn sarebbe stato più corretto rimappare cosi':
val = map(val, 0, 1023, 0, 44);
ma c'e' un documento che posso leggere dove chiarire meglio le idee? sinceramente nn ho capito cosa diciamo di fare all'ESC con il comando brushlessmotor1.write(val); il valore che passiamo e' la rimappatura del potenziometro ed ok. ma di fatto cos'e'?
Ispa:
ho ancora dei dubbi..... 0-179 nn e' un escursione di 180 gradi?
Si 0-179 sono +/- 90°, con posizione centrale a 90, però lo standard per i servo RC, usato da tutti i radiocomandi, è escursione di +/- 45°, con centro a 0, che corrisponde ad un impulso compreso tra 1ms e 2ms, mentre l'escursione di +/- 90° (180° totali), corrisponde ad un impulso compreso tra 500us e 2500us.
Gli ESC sono progettati per accettare in ingresso il comando di un servo rc standard, quindi impulsi compresi tra 1 e 2 ms, pertanto per ottenere questa escursione con la servo.write è necessario usare valori compresi tra 45 e 135, 90 corrisponde alla posizione centrale del servo (1500 us).
Lo so che è un casino, chi ha scritto la libreria servo l'ha fatta in questo modo e tocca tenersela così
ma quindi avendo un range di 90 gradi -45 gira a massima potenza a rotazione inversa, e +45 massima potenza a rotazione diretta? ed ovviamente a 0 fermo?
Dipende dal tipo di ESC, quelli ad uso aeronautico fanno girare il motore in un solo verso, dal minimo al massimo, quelli per uso automodelli o girano in un solo senso con una parte della corsa riservata al freno, oppure possono girare nei due versi però non è detto che il centro sia motore fermo, tocca leggere il manuale d'uso del ESC.
infatt e' l'esc solo che e' cinese e il libretto di istruzioni e' scritto in mandarino tradotto con google ed e' impossibile da legere considera mi sta facendo impazzire anche cn la radio