Servo tester fai da te Mi sono costruito un piccolo servo tester con un Arduino che mi avanzava implementando qualche funzionalità basica. Siccome l'ho fatto in modo che sia possibile settare il finecorsa, ho scritto il codice con dei finecorsa all'accensione di 0° e 180° perché tanto, mi sono detto, poi lo uso come mi serve stando attento a non mandare il servo in sforzo. Purtroppo non ho pensato al fatto che, utilizzandolo con un esc, se all'accensione non metto il servo tester a -100, l'esc rimane in protezione. Chiaramente se il valore del pwm è troppo alto l'esc non si accende ma succede che non si accende nemmeno se il pwm è troppo basso. Chiaramente non voglio programmare l'esc solo per essere usato con il tester. La domanda è: quali sono i valori in gradi da mettere nella libreria servo per simulare i finecorsa di una radio standard? nota: so che potrei risolvere usando la funzione di libreria che setta il ppm tramite un input in millisecondi e, così facendo, potrei andare a leggere i valori sul display della radio (1,5ms e 2.0ms), però ho scritto tutto il codice in gradiu e vorrei mantenerlo, inoltre l'informazione mi interessa ugualmente. |
Se posso permettermi, ti consiglio di usare la funzione “servo.writeMicroseconds(xxxx)”. In questo modo aumenti la risoluzione della funzione ma sopratutto puoi inserire i valori standard da 1000uS a 2000uS che corrispondo appunto a 1-2mS di impulso. |
Come scrivevo lo so che risolverei così, solo che quella modifica mi obbligherebbe a cambiare non solo la funzione da usare ma anche diverse cose nel codice. Oltre a quello mi interesserebbe capire quali sono i gradi standard. Posseggo un rudimentale e banale oscilloscopio col quale ho "guardato" qualitativamente l'ampiezza dell'onda quadra uscente da una ricevente ma la precisione del mio oscilloscopio non mi permette nulla di più della semplice meraviglia nell'osservare l'onda quadra e nulla più, tanto meno la sua misura. |
Servo con squadretta prolungata e prendi i riferimenti con la radio, poi riduci il valore della funzione di arduino (lo ho fatto anni fa' e mi pare di ricordare 163) |
Scusa mi ero perso un pezzo del messaggio, sempre a memoria dovrebbe essere così: 0gradi = 1mS 180gradi = 2mS |
Citazione:
Inviato dal mio Mi A1 utilizzando Tapatalk |
Citazione:
Comunque la prova con il servo e la prova migliore, quella libreria e' nata per i servi per robotica che usano uno standard leggermente diverso da quello per modellismo. |
Citazione:
Inviato dal mio Mi A1 utilizzando Tapatalk |
Ho guardato i miei sorgenti e le ultime versioni sono in mS. |
Ho riarrangiato il codice semplificando alcuni calcoli inutili, fatto quello è stato un attimo convertire tutto da valori in gradi a valori in microsecond; in fondo il codice è molto semplice. In questo modo ho potuto accendere la radio per vedere che valori in microsecondi forniva a display per i range standard ed i range allargati. Adesso il servo tester si accende con dei finecorsa di 988us e 2012us e centro a 1500us; dopo averlo acceso, tramite un tasto è possibile settare i finecorsa ed il centro entro valori compresi tra 740 e 2260 us. Lo stesso tasto può essere usato per mandare in automatico il servo al valore di centro impostato e, ovviamente, per liberarlo da li. Grazie a tutti |
Tutti gli orari sono GMT +2. Adesso sono le 02:02. |
Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002