Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola buenas,
he comprado dos unidades del motor EMG30, son dos motores de cc con un encoder en cuadratura por efecto hall.
Por diferencias entre las especificaciones que daban en las distintas webs, no tenía clara la cantidad de pulsos por vuelta que da el sensor.
Resulta que finalmente da 360 pulsos por vuelta, por lo cual, aun a una velocidad baja, da una cantidad de pulsos por segundo muy elevada. Hasta el punto de que no soy capaz de medir el tiempo entre dos flancos de subida con un PIC18F4550 a 48MHz. Ni utilizando la interrupción interna, ni el módulo de capture.
¿A alguien se le ocurre como poder medir la señal externamente? he de hacer un control en velocidad bastante preciso, pero como no puedo medir la velocidad a la que gira la rueda, me resulta imposible.
Un saludo y muchas gracias!
Luison, con esa solución estaría reduciendo la resolución del encoder a 36 pulsos por vuelta, no?? lo cual también implicaría menor precisión en el control...
A qué velocidad de giro empiezas a perder pulsos?
un saludo
No, vas contando de 10 en 10 (en el ejemplo) y cuando termine lees el contador y obtienes el 100% de precisión.
Pero bueno, ya dicen por ahí que no es problema del PIC.
¿No habrás colocado un condensador ni nada por el estilo no? 🙄
Hola buenas,
Muchas gracias a todos por vuestras respuestas. Ya he localizado y solucionado el problema.
Había dos problemas básicamente. El primero es que yo estaba utilizando un OPAM para cuadrar la señal de salida del sensor, ya que medido con el osciloscopio eran solo unos picotazos de muy bajo voltaje. Conseguí encontrar el esquema de la placa MD23 que está diseñada para controlar estos motores y vi que simplemente utilizaba una resistencia de pull-up conectada a 12V. De este modo, saca una señal cuadrada perfecta de 5Vpp, ya que el operacional, daba de vez en cuando un picotazo (supongo que por ruidos).
En segundo lugar, pude ver que esa placa lleva como controlador un PIC16F873, muy inferior al que yo estoy utilizando, así que optimizando mucho el código en la forma de leer los pulsos y tal. He conseguido tener unas medidas muy aceptables.
De nuevo muchas gracias y un saludo!