Stamattina sono finalmente riuscito a trovare il tempo per provare i TLC5940 che mi sono arrivati gratuitamente dalla mitica TI ordinandoli come sample
Con immensa soddisfazione sono riuscito a pilotare un servo motore utilizzando una apposita libreria.
Questa è una testimonianza video e qui troverete come fare a riprodurre questo "esperimento".
Dato che possiamo collegare in serie n TLC5940, avrei n* 16 servo pilotati indipendentemente.
Come ho scritto nel tutorial i servomotori introducono dei disturbi sulla linea di alimentazione e quindi serve un alimentatore bilanciato solo per loro, io mi chiedo quanti servo potrei pilotare usando questi espedienti? Come potrei calcolare questo numero? come potrei fare a calcolare il numero massimo di TLC5940 connettibili in serie?
Sul datasheet non si parla di un numero massimo di TLC5940 connessi in serie, però diciamo che si parla di una frequenza minima di SCLK che dipende dalla frequenza di update e dal numero di integrati in serie.
L'unico dato certo che ho è una frequenza massima di SCLK di 30MHz (che con arduino non raggiungeremo mai), poi la frequenza di update credo che dipenda molto dal tipo di applicazione che abbiamo in mente o sbaglio?
Ad esempio per un tilt pan la f di update può anche essere molto bassa perchè non abbiamo bisogno che la risposta del sistema sia velocissima, mentre per un sistema di autobalance la f di update deve essere molto veloce per avere una correzione dell'equilibrio quasi in real time.
I coraggiosi che avranno letto tutte le mie supposizioni fino alla fine spero che sapranno aiutarmi.
Ciao e grazie
non ho una risposta precisa alle tue domande, ma intuisco che dare un'occhiata (verso la fine del file) al file tlc_config.h incluso nella libreria potrebbe dare una risposta parziale
ciao Calamaro
per la cronaca: Pololu produce diversi Servo controller con interfaccia RS232 o USB che funzionano in PPM.
Riguarda i TLC5940
Non dovrebbe essere limitato via hardware il numero di TLCs che puoi mettere in serie. Piú metti piú tempo Ti serve per trasmettere i dati, ma questo tempo é molto superiore alla velocitá raggiunta dei servo a posizionarsi. Un problema potrebbe essere che ogni entrata ha bisogno di un po di corrente e un uscita del Arduno puó dare solo una corrente determinata; al limite devi mettere dei amplificatori (busdriver) emetter l' entrata cl uscita del Arduino pilotare con ogni uscita un certo numero di TLC.
Ma credo che una decina di TLC riesci a mettere senza problemi.
Nella libreria TLC5940 devi modificare un valore che dice quanti TLC metti in serie.
Ciao Uwe
Grazie per le risposte. @Uwe quell'oggetto della pololu è senza dubbio interessante, ma io avrei bisogno di espandere il numero di servo pilotabili tramite arduino diecimila o duemilanove.
Comunque già 10 TLC sono 160 servo, e ora che ci penso mi accontenterei della metà
Quella del bus driver non mi era venuta in mente