Norber, por supuesto que si consigo algo con el código lo posteo. Respecto al crepitar de los servos, con hilo de nicrom, prácticamente no crepitan porque llegan a su posición siempre (a no ser que estén muy forzados), y solo oigo a veces 1 click cada x minutos. Pero de todas maneras miraré el código.
Respecto a la velocidad de cambio, que te pareció a ti cuando probaste el soft de Bunza?. Ya vi la placa que realizaste, quedó muy cuca de tamaño.
Esta noche pensando, se me ocurrió, sacrificar alguna salida para ganar algún boton, para poder ajustar cada servo visualmente mediante dos botones, la posición start y la stop. Y mientras estas en ese modo de ajuste, al principio todos los servos a 90, para poder colocarlos y después ajustarlos. Son ideas que no se tengo tantos conocimientos de arduino como para realizarlo.
Este método lo vi en una pcb que diseña una empresa, que usa el método de ajuste que te he comentado. A ver si encuentro el video.
https://www.youtube.com/watch?v=pO1p3Gk-7TI, juraría que vi uno mejor que este ejemplo pero ahora mismo no lo encuentro.
De momento examinare el código de bunza porque es el único que tengo, pero quizás sea mejor usar un código exclusivo para servos.
Update: Respecto al crepitar, según he podido observar, no es cosa del código, ya que aunque anule por completo la función "set servo" si el servo esta forzado va a crepitar, a no ser que le quites la corriente. Creo que es cuestión de no forzar al servo y no crepita nada.
Respecto a la velocidad del servo, he modificado un poco el código y ya es mucho mas lenta. La velocidad al igual que el código original, se controla con la segunda CV de cada grupo. 1 es la mas lenta, un 4 para desvíos esta bien.
Dejo el link y lo pruebas:
https://mega.nz/#!VIhVxboQ!lPuHZF3kW5Niu_s4-_4Fcr9-rzGfb4A7cpsM6zB0BRAUpdate1: He sacrificado una de las salidas, ahora solo tiene 16, para habilitar un modo de programación mediante un interruptor, en dicho modo se pondrán todos los servos al medio(90º) para su colocación en la maqueta. Y mediante un potenciometro (entrada A6) se podrán ajustar los dos momentos de parada (start y stop) del desvió. He verificado de nuevo que si no te pasas con el potenciometro forzando la fuerza con que la aguja del desvio pega a la vía, el servo no crepita y ahora estoy usando un alambre mas gordo para el vástago (el clip de aluminio).
En teoría tendría que añadir dos botones mas, uno para conmutar entre los 16 servos y otro para guardar las posiciones de cada desvió en su correspondiente CV, pero no se si lo podré lograr, ya que solo me queda una entrada analogica (A7) para los dos botones. Mas exprimido no puede estar el arduino pro mini.
Creo que es un buen método para ajustar los desvios una vez instalados, con el potenciometro.
Update2: Al final he descartado la opcion del potenciómetro y he usado 4 pulsadores conectados a la entrada analógica A7 y un interruptor de programación a la entrada A6, así respeto los 17 servos.
2 botones son para mover el servo hacia un lado y hacia otro, otro botón es para conmutar entre los 17 servos y el último botón es para programar el estado de las dos posiciones de cada servo.
Sufro de una cosa extraña y es un crepitar del servo continuo, que achaco a un mal filtraje de la señal DCC (ya que uso un 4n35 en vez de un 6n137), porque si le quito la señal DCC al arduino, el servo deja de crepitar.
Tengo que mirar si es cuestión del filtraje de la señal DCC o problema del servo, que lleva ya mucha tralla y muchas veces forzado.
Las posiciones se siguen pudiendo programar mediante CV, pero creo que el ajuste mediante botones es mas visual, mas rápido y efectivo.