ratto93:
la mia idea era quella di creare una funzione in cui si passano come parametri servo.micro(pin,gradi) e all'interno di quest'ultima si assegna il pin e tramite un switch faccio la selezione dei delay uno per ogni grado cioè 180 switch........
Prima di tutto non ti servono 180 case della switch, basta fare un banale calcolo matematico per trovare i us di durata dell'impulso, vedi sotto, inoltre l'impulso deve essere ripetuto costantemente altrimenti il servo non si muove.
Il PPM per i servo RC, vale per tutti modelli sia analogici che digitali esclusi i modelli speciali ad altissima velocità per i giroscopi, è un impulso positivo compreso tra 1 e 2 ms ripetuto ogni 20 ms.
La durata del delay tra gli impulsi non è per niente critica e non è necessario che sia regolare, tutti i servo accettano come intervallo di ripetizione un range compreso tra 15 ms (66 Hz) e 25 ms (40 Hz), moltissimi modelli di buona qualità arrivano senza problemi fino a 75 Hz e quelli digitali ben oltre i 100 Hz.
Lo standard generico prevede che con 1.5 ms il servo si trovi al centro mentre con 1 ms ruota a Sx di 45° e con 2 ms ruota a Dx di 45°, corsa totale 90°, a seconda del produttore e del modello questi valori possono differire leggermente, p.e. il centro è a 1547 us e la deflessione di 45° richiede +/- 400 us.
Per ottenere il movimento fino a +/- 90° (180° totali), comunque entro i limiti del fermo meccanico ed eventuali limiti, programmabili, imposti dal firmware dei servi digitali, l'impulso deve variare tra 500 us e 2500 us.
Per generare in modo preciso gli impulsi, con la possibilità di sfruttare tutta la dinamica, esiste un solo modo, utilizzare uno, o più, timer e il relativo interrupt, che è esattamente quello che fa la libreria servo che ti garantisco funzionare bene.
La generazione degli impulsi può essere fatta in sequenza, cioè uno per volta, se il numero di servo da controllare è minore di 8 (2.5 ms * 8 = 20 ms), se il numero è maggiore tocca utilizzare più timer in parallelo oppure tecniche di generazione in parallelo degli impulsi, quest'ultima non è una cosa semplice da implementare.