Hola a tod@s,
Estoy liado con un proyectito con el Arduino y un encoder de referencia HW040. Teóricamente es como el KY040 pero es el que tengo y el que me enviaron.
El problema es que no consigo que con cada paso incremente i decremente bien (xxpasos=xxincrementos o xx decrementos). Lo he probado con red de filtrado a cada entrada, con interrupciones usando varios códigos, leyendo estado de entradas y con librería y nunca funciona como debiera.
En unos casos, al tener que incrementar lo hace pero 1 paso genera incremento de 1 o 2 o 3 o baja 1 o 2.... Si lo giro rápido es peor y si voy lento mejor y si lo mantengo pulsado al girar algo mejor.
Con librería encoder.h hace bien el incremento y decremento pero de 2 en 2....curioso!
He probado con 3 encoder que tengo y nuevos y tengo el mismo problema.....
Alguna idea?
O, Consejo?
O, experiencia?
Gracias!!!!
EA3FNM
ex-ec3ccq
Pedro
Barcelona
ea3fnm@gmail.com
Me imagino que no tendrás osciloscopio, aunque sea el que te puedes hacer con la tarjeta de sonido. Me imagino que debe ser un problema de filtrado, y de incluir alguna resistencia pero no se me ocurre mucho más, si no es que jueges con la red de filtrado para que un paso corresponda a 1 click.
También reconozco, que no he podido encontrar información sobre ese encoder...
Saludos. Jacinto.
Sólo puedo ofrecer mi opinión y mis reflexiones. Otras opiniones y reflexiones son tan o más válidas que las mías. Lo importante es que cada uno acabe desarrollando sus propias conclusiones.
FT-23, FT-60, FT-991, IC-V200T, DR-605 y Dynascan P-72.
Me imagino que no tendrás osciloscopio, aunque sea el que te puedes hacer con la tarjeta de sonido. Me imagino que debe ser un problema de filtrado, y de incluir alguna resistencia pero no se me ocurre mucho más, si no es que jueges con la red de filtrado para que un paso corresponda a 1 click.
También reconozco, que no he podido encontrar información sobre ese encoder...
Saludos. Jacinto.
Si Jacinto, todo apunta a eso ya que si lo mantengo apretado lo hace menos y me huelo va por ahí, pero ni así lo he conseguido resolver.
Ah! se me olviada, también he probado a incluir un debouncing por sw, usando las resistencias internas del Arduino para le entrada INPUT_PULLUP o inyectar el positivo con resistencias externas, de pero ni con esas....aunque la verdad el debouncing debería haber funcionado....uff!!
Sobre el enconder yo tampoco encontré nada como hw040 pero si como ky040
EA3FNM
ex-ec3ccq
Pedro
Barcelona
ea3fnm@gmail.com
He usado un en un par de proyectos (el mando de un DDS y el preselector en un mando de rotor). Los encoders que he utilizado eran chinos "low cost"
absolutos de 24 posiciones y los he montado con condensadores de desacoplo de 100nF en cada una de los pines de dirección, no he tenido ningún problema. Nunca he utilizado un módulo montado y he probado su funcionamiento con un pequeño sketch.
Hay bastante información sobre el funcionamiento de los encoders, el siguiente vídeo es bastante claro e incluye un sketch para probar el funcionamiento.
En las páginas de "Arduino playground" puedes encontrar información detallada, una interesante lista de librerías y algunos sketch de ejemplo.
https://playground.arduino.cc/Main/RotaryEncoders/
La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio
QDURE - https://qsl.ure.es
Imprime y confirma tus QSL en tan solo tres click.
Nunca fue tan fácil y cómodo
el confirmar tus contactos.
TIENDA ONLINE URE
Publicaciones, mapas, polos, camisetas, gorras, tazas, forros polares y mucho más...
WEBCLUSTER EA4URE
Conoce el nuevo WebCluster de URE, ahora con nuevos filtros e información y compatible con GDURE