Open 20leunam opened 5 years ago
Una posible forma de detectar si los encoders están fallando seria mediante la señal de index de los encoders. En primer lugar medir el numero de pulsos que se cuentan desde un pulso de index hasta el siguiente, ver si el numero de pulsos SIEMPRE es igual, y después, comprobar en carrera cada vez que detecte el pulso de index si pasaron exactamente esos pulsos. En caso de que el numero de pulsos no sea 100% repetitivo, (Lo cual sería preocupante) poner un margen de X ticks de "tolerancia" asimilables. Si no da los pulsos comprendidos entre esa franja de ticks, notificar que encoder esta fallando mediante algún LED y cambiar de m/s a PWM. En caso de que uno de los encoders deje de funcionar totalmente, tampoco habrá pulso de index, para ello simplemente si no detecto ningún pulso en el ultimo milisegundo* Señalizar que encoder esta en fallo y pasar a PWM
*Previo a esto habría que comprobar cuantos pulsos da a velocidad mínima cada milisegundo, no valla a ser que sea muy poco tiempo como para detectar algún pulso, (Lo cual sería preocupante)
Realizar un control en todo momento de la carrera, de que los encoders están funcionando de manera correcta. En caso de detectar un fallo en el numero de pulsos ya sea, que cuenta de menos, o deja de contar, pasar inmediatamente al control de PWM para intentar salvar la carrera, y señalizar el fallo mediante alguún Led