No tengo especificaciones técnicas del motor, ademas de eso deberia poder conectarle cualquier actuador comercial que compre en un futuro.
Aca te dejo la poca informacion de un actuador de marca superjack (es el otro que tengo, el que zumba un poquito con el PWM):
Specifications:
- Model: Super jack QARL series
- Motor: DC brush motor
- Input: 24/ 36V DC
- Load Capacity: 3000N
- Standard Stroke Length: 450mm/ 600mm/ 900mm
- Drive Screw: ACME
- Full Load Speed: 5 mm/sec
- Duty Cycle: 20%
- Temperature: -26˚C to 65˚C (-15˚F TO 150˚F)
- Limit Switch: Adjustable
- Sensor: Reed switch sensor
- Static Load: 4500N
- Duty Cycle: 10%
El FTA es otro de mis hobbys por eso estoy haciendo el posicionador y la idea despues de terminarlo es hacer la documentacion necesaria y publicar el proyecto completo para el que quiera construirlo.
Ahora cambie los componentes como me recomendaron:
Resistencia de pull-up = 10k
Cambie la resistencia del gate del mosfet por una de 10k a GND
Puse una resistencia de 10 ohm en serie al gate. (a maxima velocidad con el PWM tengo 11.53v en el gate)
Quite el capacitor del pull-up
Ahora el motor ya no se mueve con el PWM en 15 con ese valor mido unos 5-6vcc, el valor maximo con el que se posiciona bien es de 80.
Si muevo siempre a la maxima velocidad igualmente se pasa 2 o 3 pulsos mas/menos.
Con el PWM bajando la velocidad unos 50 pulsos antes de llegar al destino se esta posicionando bien sobre los satelites y no tengo mal conteo de pulsos.
Intentare implementar lo que comenta Dr.Zoidberg y posteo lo que salga.
Conseguí 1 sensor hall, 1 CNY70 y un reed switch nuevo para hacer pruebas, principalmente el sensor hall porque ya hay actuadores con esos sensores asi veo como adapto el circuito.
edit:
Probe esto dentro de loop():
Código:
errpos = abs(motor2PulsosDestino - motor2PulsosActuales); //obtengo la diferencia sin signo
accionControl = 4 * errpos;
PWM = (int)accionControl;
if (PWM > 255) {
PWM = 255;
}
if (PWM < 50) { //50 es lo minimo con que se mueve el motor a maxima carga
PWM = 50;
}
El efecto que causa es que el motor baja la velocidad progresivamente hasta el valor minimo.
Se posiciona igual de bien que bajar la velocidad al minimo de forma subita