Tempo fa lessi qui, o da qualche altra parte che questa scheda poteva gestire fino a 12 servocomandi.
Mi e' pero' venuto un dubbio. Poiche' il periodo del segnale di controllo e' 20ms e un servo ruotato a 180 gradi richiede un impulso di 2/2.3ms, secondo me piu' di 8 non riesce a gestirli. Ho fatto una prova e ho visualizzato la sequenza degli impulsi con un analizzatore di stati logici. e si vede chiaramente che non rimane tempo sufficiente per ulteriori istanze a altri servo. Questo ovviamente nel caso che tutti gli 8 servo ruotino fino a 180 gradi. Se si imponesse come limite 90 gradi allora potrebbe gestirne piu' di 8.
Non sbagli, questo sistema era stato pensato molti anni fa per pilotare gli aeromodelli, e 8 servomeccanismi sono più che sufficienti per qualsiasi aeromodello, il segnale radio che arriva al ricevitore ha un solo segnale PPM di modulazione per cui gli impulsi per i servomotori devono arrivare in sequenza intervallati da una piccola pausa , e alla fine da una lunga pausa che viene decodificata da ricevitore come fine sequenza.
Ovviamente se i servo vengono utilizzati per motivi diversi dalla modellismo, quindi senza radiocomando, il microcontrollore può generare quanti segnali vuole e ognuno avrà il suo canale separato dall'altro, quindi il microcontrollore può controllare anche 100 servomotori
Se si utilizza la libreria SERVO, oltre 8 istanze il periodo da 20ms comincia ad aumentare per "farci stare dentro" le istanze addizionali. Ad esempio con 12 servo il periodo diventa 26/28ms e non piu' i canonici 20ms (sempre con i servo ruotati a 180 gradi). E via cosi'. Di conseguenza il funzionamento di tutti i servo istanziati risulta peggiorato a causa del periodo di refresh maggiore. Magari fino a 26/28ms e' ancora accettabile, ma spingendosi oltre, secondo me no.
L'informazione è portata dalla durata dell'impulso. la pausa 20ms non è critica. Tuttavia se la pausa aumenta troppo si rischia che la posizione sotto sforzo non venga mantenuta e che il servo vibri.