Control por PWM modificando el "duty cycle"

Hola.
Me presento, me llama Nacho.
Estoy intentando controlar un servo RC con una señal PWM que no es apropiada. Esta señal es de un periodo de 20 ms y tiene un “duty cycle” de 10% a 75% (1 a 17,5 ms) con esta señal no se puede controlar un servo, pues ha de tener un “duty cycle” de 10% a 20% (1 a 2 ms y un periodo de 20ms) mi problema es volver esta primera señal (que la genera una maquina de soldar por laser) en una señal que pueda controlar al servo es decir modificar el “duty cycle” de forma proporcional
buscando e investigando he llegado a hacer este programa pero no funciona
puedo ver la señal por monitor serie del arduino pero no se modifica la segunda señal.
la señal la entro por el pin 3 y pretendo que salga por el pin 2

este es el programa

#include "PWM.hpp"
#include <Servo.h>
Servo miServo;
const int pinPot = 3;
const int pinServo = 2;
const int pulsoMin = 650;
const int pulsoMax = 2550;
int valor;
int angulo;

PWM my_pwm;

void setup() {
 Serial.begin(9600); // Serial for debug
 my_pwm.begin(3, 1); // PWM on pin 3 reading PWM HIGH duration
 miServo.attach(pinServo, pulsoMin, pulsoMax);
 
}

void loop() {
 valor = digitalRead(pinPot);
 angulo = map(valor, 0, 20000, 0, 180);
 miServo.write(angulo);
 delay(20);
 Serial.println(my_pwm.getValue());
 delay(100);
}

Nacho

Tu error esta en como lo enfocas!

Si solo te dedicaras a leer correctamente la señal de control

Esta señal es de un periodo de 20 ms y tiene un "duty cycle" de 10% a 75% (1 a 17,5 ms)

Es decir una señal de 50 Hz con un Duty cycle de 10 a 75% luego puedes controlar tu servo como gustes.

Asi que enfocaremos el problema de ese modo.
Luego te digo como... ahora tengo muchos msgs para responder.