Arduino desde cero en Español - Capítulo 22 - Codificador rotatorio KY-040 (rotary encoder)

  Рет қаралды 196,269

Bitwise Ar

Bitwise Ar

Күн бұрын

Пікірлер: 403
@chequetuseze11
@chequetuseze11 Жыл бұрын
Saludos, por que no me funciona en otros puertos de entrada? Trato de ponerlos a otros que tengo libres, el 2 y el 4 los tengo ocupados por una LCD.
@BitwiseAr
@BitwiseAr Жыл бұрын
Hola, se debe a que Arduino UNO tiene interrupciones unicamente en pines 2 y 3 como se explica en el capítulo 21: kzbin.info/www/bejne/q6GQmKKEm6-Se7s Saludos
@francoisdastardly4405
@francoisdastardly4405 6 жыл бұрын
Absolutamente perfecto ! Bien explicado, sin saltear nada, sin dar nada por sentado, bien vocalizado, sin modismos ni coloquialismo, con voz firme y pausada, sonido a nivel justo sin ecos ni ruidos de fondo, el texto de buen tamaño que se puede ver aun en 480p o menos. Te felicito, asi deberian todos los videos de este tipo.
@BitwiseAr
@BitwiseAr 6 жыл бұрын
Gracias por el comentario, se aprecia. Un saludo
@RicardoDarioLopez
@RicardoDarioLopez 6 жыл бұрын
Gracias profe; Ud. nació para esto (y mucho más) He visto muchos tutoriales y estos son los de mejor calidad. Gracias.
@jgarzia
@jgarzia 4 ай бұрын
¡Gracias por el video! Me han sido de gran utilidad tus explicaciones. El principio de funcionamiento del codificador, el esquema de cableado y el fichero fuente del programa.
@EA1XNQRP
@EA1XNQRP 3 жыл бұрын
Muchísimas gracias por la excelente calidad de sus clases. Me parece de lo mejor que se puede encontrar en la red. Muchas gracias por su tiempo y por su cuidado trabajo. Le envío un cordial saludo desde España.
@BitwiseAr
@BitwiseAr 3 жыл бұрын
Gracias por el comentario, se aprecia. Un saludo
@ejohanramirezbustamante7423
@ejohanramirezbustamante7423 6 жыл бұрын
Este es uno de esos "tutoriales" que envuelven todo el sentido de la palabra... Gran aporte, gran pedagogía... Saludos...!!
@BitwiseAr
@BitwiseAr 6 жыл бұрын
Gracias por el comentario, muy amable, me alegro que encuentres el material de utilidad. Saludos
@luisdaroca2
@luisdaroca2 5 жыл бұрын
Magnifica explicación. Sin duda uno de los cursos mas clarificadores (Por no decir el mas...) y bien expuesto que se puede encontrar en estos momentos en la red. (Y he visto muchisimos!!)
@raymundolara9188
@raymundolara9188 3 жыл бұрын
De los mejores tutoriales de Arduino que hay, muchas gracias por compartir tus conocimientos.
@pitzahot4456
@pitzahot4456 2 жыл бұрын
Hola, hace tiempo cuando era más novato en el tema, armé un menú con un encoder y una pantalla LCD, nunca supe por que, pero siempre avanzaba de dos en dos al girar la perilla, de hecho, al prenderlo comenzaba en la opción 2, girabas y brincaba al 4, 6, 8 etc, para entrar al sub menú 3 u otro impar, tenía que dejar la perilla justo en medio de un paso y presionar el encoder. Pensé que estaba defectuoso pero con cualquier encoder hacía lo mismo. Tiempo después hice otro con los mismos componentes y funcionó perfecto. Borré el primer código por lo que nunca pude hacer una comparación para ver que hice mal. Solo quedó como anécdota. Excelente canal, saludos.
@BitwiseAr
@BitwiseAr 2 жыл бұрын
Hola, gracias por el comentario, probablemente existía problemas en un código para los rebotes que se generan al ser un dispositivo mecánico. Saludos
@jaimezuleta8125
@jaimezuleta8125 Жыл бұрын
Excelente video. Todos los conceptos me quedaron muy claros al ver el video. Muchas gracias por compartir este tipo de información. Saludos desde Venezuela.
@BitwiseAr
@BitwiseAr Жыл бұрын
Gracias por el comentario y la visita. Un saludo
@RDCST
@RDCST 5 жыл бұрын
Tengo un par de esos encoder rotatorios, los compré pensando que tenían una señal limpia. Me decepcione cuando conecte uno al osciloscopio y vi lo sucia que es la señal que generan. Me termine de amargar cuando vi que muchos implementan complejas tablas lógicas para poder usarlos; ahora usted me renovó la esperanza de poder usarlos de una forma tan sencilla, gracias.
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario, son dispositivos con contactos inherentemente ruidosos, por eso con una buena rutina antirebote se pueden usar sin problemas. Saludos
@alexanderpatricioescobarpi2389
@alexanderpatricioescobarpi2389 4 жыл бұрын
en este capitulo en particular me gusto el uso de las funciones min y max para los limites... siempre ocupaba dos if para los limites y con esto reduzco en una simple linea todo lo anterior
@soypally
@soypally 3 жыл бұрын
Muy buenos todas las eplicaciones!! vengo tomando varios de tus videos y la verdad que son de mejor que vi dando vueltas!!
@BitwiseAr
@BitwiseAr 3 жыл бұрын
Gracias por el comentario y la visita. Saludos
@VideotronicaTutoriales
@VideotronicaTutoriales 5 жыл бұрын
Una forma de apoyar páginas como esta es observar por completo las publicidades o propagandas para que así se generen ganancias al youtuber y se anime a hacer más vídeos, yo lo hago porque también he vivido en carne propia el esfuerzo para realizar este tipo de vídeos. (equivocarse, editar, repetir la parte oral, etc), por eso veamos las propagandas hasta el final.
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario. Un saludo
@T0berius
@T0berius 4 жыл бұрын
Muchas gracias, es algo nuevo para mi y me sirvio. Saludos desde Rosario/Santa Fe/Argentina
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Gracias por el comentario y la visita. Un saludo
@berto.desarollo.personal
@berto.desarollo.personal 5 жыл бұрын
Un genio total ,la verdad que uno en la escuela aprende lo básico nomas, por mas tutoriales así !!!!!
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario. Saludos
@carlosdiaz-mz8xe
@carlosdiaz-mz8xe 5 жыл бұрын
Excelente maestro,..... Hoy fue mas complicado de como costumbre... pero sin duda excelente... Gracias
@matiasespedale1553
@matiasespedale1553 4 жыл бұрын
Genial los mejores tutoriales que he visto de arduino muy completo muy bien explicado muy buena didactica muchas gracias estoy aprendiendo muchisimo con sus tutoriales.
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Genial, gracias por el comentario. Saludos
@jorgefoto
@jorgefoto 2 жыл бұрын
Hola Profe... Muy bien explicado y muy buena opción para ingresar parámetros a algún proyecto. Un detalle. Vi en las especificaciones del KY-040 que tiene 20 posiciones en la revolución. O sea un paso de 360/20=18 grados. Una aclaración, porque no cambia nada ni de hardware ni del código. Solo que al girarlo, sería menos sensible que los 30 pasos/rev que pones. Saludos Totales!!!
@BitwiseAr
@BitwiseAr 2 жыл бұрын
Hola, gracias por el comentario, lo importante es detectar el cambio de posición y en que sentido, si el encoder tiene más a o menos posiciones no hace ninguna diferencia. Saludos
@eddygeorge6170
@eddygeorge6170 3 жыл бұрын
Muy buen video Bitwise Ar. Me fue de mucha utilidad en un proyecto en el que estoy trabajando. Saludos maestro!
@BitwiseAr
@BitwiseAr 3 жыл бұрын
Genial, me alegro. Un saludo
@juancarloscarmensolano2598
@juancarloscarmensolano2598 4 жыл бұрын
MUCHAS GRACIAS POR COMPARTIR TUS CONOCIMIENTOS DE FORMA TAN CONCISA Y DIDACTICA!
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Gracias por el comentario. Un saludo
@jorgeperezabraham89
@jorgeperezabraham89 Жыл бұрын
Excelente explicación. Ideal, además , para graficar para que sirve una resistencia de pull up.
@Darioscorp1
@Darioscorp1 4 жыл бұрын
El mejor código que he encontrado...y puedo decir que he revisado bastantes...
@cansadodelserrucho
@cansadodelserrucho 4 жыл бұрын
Mi rey creo que te amo! Aprendo demasiado contigo. Gracias por todo lo que compartes
@fonsecaj2
@fonsecaj2 3 жыл бұрын
Finalmente APRENDI a usar um Rotary encoder. Muchas gracias!!!
@BitwiseAr
@BitwiseAr 3 жыл бұрын
Genial, saludos
@GustavoGalarza
@GustavoGalarza 4 жыл бұрын
La mejor explicación de KZbin..!!! Vi muchos vídeos pero todos se complicaban mucho
@carlosbah4623
@carlosbah4623 2 жыл бұрын
El mejor canal del mundo hispanoamericano.
@BitwiseAr
@BitwiseAr 2 жыл бұрын
Gracias por el comentario, se aprecia. Saludos
@josemanuelquispemamani9672
@josemanuelquispemamani9672 2 жыл бұрын
tremendo genio resulto este amigo es km escuchar al traductor de ingenieria en version arduino o escuchar el doctor de la rosa
@julioe2761
@julioe2761 7 жыл бұрын
Es Ud un gran didáctico. Felicidades.
@BitwiseAr
@BitwiseAr 7 жыл бұрын
Gracias Julio, muy amable. Saludos
@manuelandresavilatorres8556
@manuelandresavilatorres8556 5 жыл бұрын
Wow! Que claridad! Felicidades por tu trabajo tan detallado. Muchas gracias, suscrito.
@danielespino595
@danielespino595 5 жыл бұрын
Impecable...una explicación por demás didáctica, excelente
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario. Saludos
@danielespino595
@danielespino595 5 жыл бұрын
Una consulta: algún problema en usar el pin 3 para el clk del encoder?@@BitwiseAr
@llorenccolomalemany1823
@llorenccolomalemany1823 5 жыл бұрын
Excelente!!! Super bien explicado. Gracias maestro de maestros. Te felelicito por todos tus vídeos tan didácticos. Perfecto en todo!!
@gerardomoraleszabala2806
@gerardomoraleszabala2806 4 жыл бұрын
Es usted un pozo de sabiduría. Muchas gracias por su esfuerzo. Continúo aprendiendo.Saludos cordiales
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Gracias por el comentario y la visita. Saludos
@brandonforbesnash3276
@brandonforbesnash3276 3 жыл бұрын
TREMENDO CRAACK!!! Te debo una caguama bro
@EduardoCaporale
@EduardoCaporale 7 жыл бұрын
Felicitaciones y gracias, muy bien explicado, un cordial saludo desde Mar del Plata, Argentina.
@BitwiseAr
@BitwiseAr 7 жыл бұрын
Gracias Eduardo por tu comentario. Saludos
@elegebe33
@elegebe33 4 жыл бұрын
excelente!!!!sos un gran pedagogo!!!saludos desde argentina!!!...
@nicozepp10
@nicozepp10 4 жыл бұрын
Exelente video!! como siempre... impecablemente explicado, te felicito!. Gracias y segui asi!
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Gracias por el comentario y la visita. Saludos
@sebastianalvarez44
@sebastianalvarez44 4 жыл бұрын
Amigo, gracias por tus aportes. No conocía estos módulos. Muy interesante! Saludos
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Genial, saludos
@Dexter.amr88
@Dexter.amr88 5 жыл бұрын
Más claro imposible, un abrazo!
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario. Un saludo
@federicosvanascini1072
@federicosvanascini1072 5 жыл бұрын
Muchas Gracias Genial la explicación. Sos un excelente docente.
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario y la visita. Un saludo
@eneaskappou2968
@eneaskappou2968 4 жыл бұрын
Te felicito por la calidad de tus videos !! gracias!
@eneaskappou2968
@eneaskappou2968 4 жыл бұрын
tenes algun tuto donde se use un arduino uno/nano para mandar datos a una web a travez del esp8266? gracias!
@earevaloo
@earevaloo 7 жыл бұрын
Muy buen video, muchas gracias y sigue adelante
@piezaspararobotica
@piezaspararobotica 5 жыл бұрын
Simplemente....!!!!GENIAL¡¡¡¡....
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario. Saludos
@lmeucchi
@lmeucchi 4 жыл бұрын
Hola, gracias por la buena explicacion....tengo un par de preguntas. 1-Porque se conecta solo 1 pin con interrupciones (pin 2) y no los 2 por ejemplo al 2 y 3? 2-En caso que quiera conectar varios encoder y no tengo pines disponibles, puedo usar un CD4051 y conectar el terminal Z al pin 2 coninterrupcion? 3-Como cambiaria el codigo si lo quiero para que envie un solo pulso a la derecha y uno a la izquierda, para poder usarlo por ejemplo para mover el cursor en un display? 4-Estoy tratando de hacer un controlador MIDI y voy a usar un encoder para cambiar valores como si fuera un potenciometro....usaria de limites 0 y 127 con un valor inicial de 64...pero quisiera que al girar incremente mas de 1, ya que se necesita varias vueltas para llegar desde 0 a 127....la idea es que por cada pulso sume mas de 1 por ejemplo q aumente de 5 en 5 pero no se como hacerlo muchas gracias y disculpa tantas preguntas saludos
@diegopinciroli9239
@diegopinciroli9239 4 жыл бұрын
Super claro mil gracias
@blecomp
@blecomp 5 жыл бұрын
Excelente, eres un gran Maestro!!
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario. Saludos
@daniellechuga9009
@daniellechuga9009 5 жыл бұрын
Perfecta explicación
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario. Saludos
@alfonsoserna9609
@alfonsoserna9609 Жыл бұрын
Que berraquera de profe...Gracias
@virginiaperez8971
@virginiaperez8971 4 жыл бұрын
hola gracias por tu tiempo no se puede explicar mejor un saludo
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Gracias por el comentario. Saludos
@prudenciopinzonl8042
@prudenciopinzonl8042 5 жыл бұрын
Muchas gracias y bendiciones.
@DCano01571
@DCano01571 4 жыл бұрын
Hola, muchísimas gracias por tus clases tan valiosas, realmente es el mejor curso que he encontrado referente a Arduino de toda la red. Quería hacerte una consulta y es que he intentado ejecutar tu código para probarlo con un módulo rotativo codificador EC11 (se supone que tiene que funcionar) y me sucede que después de escribir "Listo" en el puerto serie, me decrementa desde 49 hasta 0 automáticamente, sin yo girarlo, y al intentar incrementarlo girando en el otro sentido no hace nada. Espero que me puedas ayudar, reitero mis felicitaciones por tu curso, eres muy bueno. Saludos.
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Hola, lamentablemente no he trabajado con ese modelo en particular, quizás tengas conexiones distintas a las mostradas, también es recomendable descargar el código desde el enlace en la zona de descripción para descartar cualquier error de sintaxis. Saludos
@DCano01571
@DCano01571 4 жыл бұрын
@@BitwiseAr Muchas gracias por tu pronta respuesta, a la vista de los problemas que me da creo que lo mejor es trabajar con los módulos exactos que describes, además ya vienen montados en una pcb y con conexiones. Un saludo.
@adriteixehax
@adriteixehax 3 жыл бұрын
Magnífico
@BitwiseAr
@BitwiseAr 3 жыл бұрын
Gracias por el comentario y la visita. Saludos
@franciscobertolone7254
@franciscobertolone7254 7 жыл бұрын
Excelente explicación. Me sirvió mucho. Gracias.
@BitwiseAr
@BitwiseAr 7 жыл бұрын
Gracias Jerónimo por el comentario, me alegro que te haya sido de utilidad. Saludos
@johanlopez5442
@johanlopez5442 5 жыл бұрын
Gracias men ... Muy bn explicado ... Gracias
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario. Un saludo
@jankeroutbreak
@jankeroutbreak 4 жыл бұрын
Gracias me ayudo muchísimo
@valtercapo3496
@valtercapo3496 5 жыл бұрын
Simplemente perfecto!
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario. Saludos
@mhdiazc
@mhdiazc 5 жыл бұрын
buena presentación, te felicito
@LUISAL102460
@LUISAL102460 6 жыл бұрын
Excelente video, te felicito y me suscribo
@BitwiseAr
@BitwiseAr 6 жыл бұрын
Gracias Luis por el comentario y la suscripción. Saludos
@isaacrafaelnunezservian708
@isaacrafaelnunezservian708 3 жыл бұрын
Hola Bitwise, ¿Cómo estas? Una consulta: Cuando arduino mediante la interrupción detecta un estado bajo en A, inmediatamente evalúa el valor de B. Teniendo en cuenta que este último valor es transitorio y que en muy poco tiempo cambia de 1 a 0 o viceversa , mi pregunta es por que podemos estar seguros que arduino llega a medir en el tiempo correcto. Por otro lado, si despreciaramos la rutina anti-rebote, teniendo en cuenta la duración del pulso bajo de A, ¿No podría generarse mas de una interrupción por cambio? Muchas gracias nuevamente, y saludos!
@sebacortes8812
@sebacortes8812 3 жыл бұрын
Muy bueno gracias!!
@ftgmetal2616
@ftgmetal2616 4 жыл бұрын
Muy buena clase!!! Tienes pensado hacer alguna que explique como usar un encoder optico, y como tambien darle las diferentes direcciones? Saludos!!
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Hola, gracias por el comentario, está previsto pero no para el corto plazo. Saludos
@eugmarschreter4357
@eugmarschreter4357 7 жыл бұрын
Espectacular explicacion!!!
@Xavi-Tenis
@Xavi-Tenis 4 жыл бұрын
este ya es un codigo mas picante jaja muy bueno
@masiluli
@masiluli 4 жыл бұрын
Estimado buena expliacion como siempre... Se puede hacer un control de volumen analogico con arduino para un amplificador de audio?
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Hola, supongo que un potenciómetro convencional sería más adecuado. Saludos
@playrpm
@playrpm 5 ай бұрын
hola. Estoy usando el mismo modulo encoder en un proyecto, uso un software EMC lite y necesito configuracion PPR necesito saber cuantos PPR equivale este modulo encoder para configurar el software. Espero tu respuesta
@arielignacio9234
@arielignacio9234 4 жыл бұрын
que genial tus tutoriales, se nota que sabes... tengo una duda que estoy buscando... tengo un motor de escaner que está anclado en unos de sus extremos a un engranaje dentado que atraviesa un optoacoplador ... el problema es que si yo cuento los pulsos cada vez que hay un high ... sucede el siguiente error, cuando el motor se detiene en esa posición, al volver a arrancar lee muchos HIGH, necesito programar el arduino para que solo lea CAMBIOS de estado, tienes algun video al respecto?
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Hola, lamentablemente nada sobre el tema. Saludos
@r2d2romo1
@r2d2romo1 Жыл бұрын
En un control midi con varios potenciómetros, en lugar de usar algunos de ellos o interruptores de 2 y 3 pasos ¿Podría usar varios codificadores sin que tenga problemas de suministro de corriente?
@JDPavon
@JDPavon 6 жыл бұрын
! Excelente ! Gracias.
@BitwiseAr
@BitwiseAr 6 жыл бұрын
Gracias por el comentario. Saludos
@juana.ortega2677
@juana.ortega2677 5 жыл бұрын
Buenas BITWISE AR, parece que mi primer comentario se perdió. Te comento que después de la edad que tengo ya, tus vídeos y explicaciones tan claras limpias y con tanto conocimiento al respecto, me han vuelto a picar el gusanillo de aprender en temas que por mi edad no estaban a la mano, yo lo hacia todo de forma analógica con operacionales, pero es que esto es algo increíble. Muchas gracias por esos tutoriales en Español y tan constructivos. Que libro eficaz me recomiendas para empezar con la programación de los PIC
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Hola, gracias por el comentario, me alegro que encuentres el material de utilidad. Lamentablemente no tengo experiencia con los PIC y con respecto a Arduino no he leido ningún libro, me las he arreglado con recursos en la web. Saludos
@MrNess2911
@MrNess2911 6 жыл бұрын
Brillante explicación! Cuando puedas hacé un video de MAX 7219 con dígitos de siete segmentos.
@BitwiseAr
@BitwiseAr 6 жыл бұрын
Gracias por el comentario. En breve se estará tratando en principio el MAX7219 con matriz de 8x8. Saludos
@MrNess2911
@MrNess2911 6 жыл бұрын
@@BitwiseAr Muchas gracias!
@santiagodemarchi990
@santiagodemarchi990 4 жыл бұрын
Excelente clase!!
@diegogandolfo5709
@diegogandolfo5709 3 жыл бұрын
Excelente tutorial , en la carrera de automatización y control de un terciario el profesor pasaba tus videos para explicarnos la base de la programación en Arduino , aprendimos mucho al ser las clases virtuales por las restricciones , te pregunto sería posible realizar un dimmer para led con este dispositivo..? Desde ya gracias y te felicito por tus excelentes videos!
@BitwiseAr
@BitwiseAr 3 жыл бұрын
Hola, gracias por el comentario. Este dispositivo es solo un método de entrada, se puede utilizar para cualquier tipo de tarea, con el valor obtenido del giro en un sentido u otro de puede manejar cualquier dispositivo. Los dimmers tienen su característica propia, depende mucho del LED, generalmente requieren de un driver que brinde una corriente constante con lo cual ya es un tema bastante específico. Saludos
@diegogandolfo5709
@diegogandolfo5709 3 жыл бұрын
@@BitwiseAr muchas gracias por tu respuesta!
@maragatoful
@maragatoful Жыл бұрын
Hola, Me parece muy interesante el curso que das y agradezco, estóy viendo este del encoder porque me interesa aplicar esto a un pequeño motoreductor Dc, y establecer así un recorrido específico de ida y regreso, pero es que no tengo claro como puedo poner aquí pulsos que exedan bastante de lo que mencionas aqui estaré espectante por la respuesta, muchas gracias
@BitwiseAr
@BitwiseAr Жыл бұрын
Hola, gracias por el comentario, tendrás que pensarlo desde el punto de vista que es solo un método de entrada, solo detecta si se ha girado en un sentido u otro, luego en programación con esa información se aplica a lo que se necesite, como ser incrementar una variable, encender el motor por determinado tiempo, etc. Son todas acciones independientes del codificador. Saludos
@douglasleal4480
@douglasleal4480 4 жыл бұрын
Felicitaciones por esos videos que usted emite. Se podrian utilizar esta tecnologia (encoder) para hacer un CNC 3D con motores de cc y poder controlarlos con Arduino Uno. Gracias
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Hola, seguro, es solo un método de entrada, luego por programación se puede aplicar a lo que se necesite. Saludos
@haroldaguivillar4247
@haroldaguivillar4247 4 жыл бұрын
De poder se puede pero hay que investigarle bastante
@ignaciochaneton7110
@ignaciochaneton7110 3 жыл бұрын
Muchas gracias de nuevo por la exhaustividad de la explicación y su claridad. Una consulta: ¿Si quiero utilizar un encoder rotatorio para interactuar con mi computadora (por ejemplo, mover el cursor del mouse en alguna dirección), puedo hacerlo con Arduino UNO? ¿Necesito algún tipo de accesorio para ello? ¿O sí o sí tengo que pensar en otro modelo de Arduino? Desde ya, muchas gracias!!!
@BitwiseAr
@BitwiseAr 3 жыл бұрын
Gracias por el comentario, lamentablemente no se puede hacer HID con el modelo UNO, debe ser un modelo que incorpore USB de forma nativa. Saludos
@joseluisdiez1561
@joseluisdiez1561 2 жыл бұрын
Buenos días, en primer lugar agradecerte tus explicaciones, soy nuevo en el uso de Arduino y quiero utilizar una pantalla LCD 20x4 I2C, aquí no tengo problema, el problema me surge al querer utilizar el encoder con distintas pantallas de menú y acciones a realizar en cada una de la pantallas y líneas de las mismas. en este ejemplo utilizas el encoder sin el pulsador y yo necesito utilizarlo para desarrollar las distintas funciones. Podrías ayudarme , muchas gracias
@BitwiseAr
@BitwiseAr 2 жыл бұрын
Hola, gracias por el comentario, el pulsador conecta a GND al ser presionado, la mayoría de módulos de encoder no incluyen una resistencia de pull-up para el mismo con lo cual lo podrás conectar a un pin digital con INPUT_PULLUP y un simple condicional que evalua si el valor es LOW entonces se ha presionado. Saludos
@joseluisdiez1561
@joseluisdiez1561 2 жыл бұрын
Muchas gracias por la respuesta
@jhon8a285
@jhon8a285 5 жыл бұрын
Buenos días profe agradezco una explicación con encoder no rotativo para hacer girar motores a ciertas vueltas gracias.
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario y la sugerencia. Saludos
@renel.8500
@renel.8500 2 ай бұрын
Hola, Bitwise Ar, excelente video, tus explicaciones son muy buenas. Quisiera hacerte una consulta. He creado el circuito y subido el programa al ArduinoUNO, se ejecuta bien todo, el problema es que tengo que darle 2 puntos de giro para que sume o reste 1. El KY-040 que uso tiene 30 pasos por vuelta pero con el programa es como si tuviera 15 ya que un paso no lo cuenta. No se3 porque lo hace, puedes ayudarme?
@BitwiseAr
@BitwiseAr 2 ай бұрын
Hola, gracias por el comentario. Honestamente no sabría indicarte cual puede ser el problema, el programa solo cuenta los pulsos generados, de manera que es independiente de los pasos que tenga por cada giro completo. Saludos
@Einkor
@Einkor 5 жыл бұрын
Hola, Muy bien explicado. Lo único que me choca es en la parte de anti-rebote la variable "static unsigned long ultimaInterrupcion" la fuerzas a 0 antes de compararla con el tiempo milis. así: static unsigned long ultimaInterrupcion = 0; Por lo que entiendo, en tal caso la comparación siempre será verdadera ya que en: if (tiempoInterrupcion - ultimaInterrupcion > 5) tiempoInterrupcion= millis() menos ultimaInterrupcion =0, siempre será mayor de 5 Bien que después ultimaInterrupcion la igualas a tiempoInterrupcion pero al comenzar nuevamente interrupción lo primero que haces es igualarla a 0 de nuevo. no sería mas correcto así?: void encoder() { static unsigned long ultimaInterrupcion; // sin igualarlo a 0 unsigned long tiempoInterrupcion = millis(); // como está …. Gracias
@fabiandebasto9839
@fabiandebasto9839 5 жыл бұрын
Excelente video, en general todo este material que volcas en tu canal tiene un nivel como pocos. Vaya mis felicitaciones!!. Una pregunta, cuando se produce una interrupción y luego de salir de ella, donde vuelve el programa?, yo supongo que deja alguna bandera donde se interrumpió y por ende es allí donde vuelve, esto es así?. Gracias y saludos.
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario, recomiendo veas el capítulo 21 destinado exclusivamente al tema interrupciones. Saludos
@fabiandebasto9839
@fabiandebasto9839 5 жыл бұрын
Gracias, lo acabo de ver, excelente como siempre!!.
@eduardoarbetman3404
@eduardoarbetman3404 4 жыл бұрын
funcionaba en forma erratica. Le agregue a: void setup() { pinMode(A, INPUT); // A como entrada pinMode(B, INPUT); // B como entrada pinMode(A, INPUT_PULLUP); // A como entrada pinMode(B, INPUT_PULLUP); // B como entrada y funciono perfecto
@hugosd68
@hugosd68 4 жыл бұрын
El Encoder tiene resistencias de 10 KOHMS de «pull-up» por lo que no parece necesario habilitar las del arduino. Saludos.
@martinyanez5851
@martinyanez5851 2 жыл бұрын
hola buenas noches espero que se encuentre bien, quisiera saber si usted me podría resolver esta duda que estado implementado en un proyecto , para contextualizarlo este proyecto se basa en lo siguiente, al soplar en un sensor de sonido KY-038 este me prendera un led (que antes estaba apagado y que prendimos con un !) y esto hará que active un ciclo for de muchos más leds generando un efecto bonito(el propósito del led es usarlo para prender el ciclo for y que cuando funcione uno el otro también) que durara indefinidamente hasta que yo vuelva a soplar en el sensor en consecuencia el led se apagara y el ciclo acabara , la duda esta que después de prenderse el led y el ciclo for con los demás leds yo soplo el sensor nuevamente para apagarlo pero no se apaga ni el led principal ni los demás que van con el for ,que me recomendaría hacer ? no queriendo hacer mucha molestia aquí subo el código que e estado usando int MIC = 2; // D0 de modulo a pin 2 int LED = 3; // anodo de LED a pin 3 int VALOR; // variable para almacenar valor de D0 int ESTADO; // variable para almacenar estado del LED int i; void setup(){ pinMode(MIC, INPUT); // pin 2 como entrada pinMode(LED, OUTPUT); // pin 3 como salida } void loop(){ VALOR = digitalRead(MIC); // obtiene valor de D0 if (VALOR == HIGH){ // si D0 tiene un valor alto ESTADO = digitalRead(LED); // almacena estado del led (encendido o apagado) digitalWrite(LED, !ESTADO); // escribe en LED el valor opuesto al que tenia // VALOR = !VALOR; aquí? while(!ESTADO){ // o mejor poner LED? //VALOR = !VALOR; aquí? for( i =11; i>=6; i--){ digitalWrite(i, HIGH); delay(200); } for( i =6; i
@luiscordova9308
@luiscordova9308 6 жыл бұрын
Bueno video
@rafallaceroltra380
@rafallaceroltra380 4 жыл бұрын
Muchas gracias por compartir. Existe algún codificador igual pero que no sea mecánico?. Gracias por tu tiempo.
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Hola, seguramente existe aunque nunca lo he usado. Saludos
@rafallaceroltra380
@rafallaceroltra380 4 жыл бұрын
@@BitwiseAr Gracias por tu respuesta. Gracias a tus explicaciones he hecho un tope en una maquina de cortar tableros (escuadradora aqui en España) que al desplazarlo me va contando en mm la sistancia i me lo muestra en el modulo lcd/i2c. El unico problema que le veo es que la vida util del Codificador rotatorio KY-040 sera corta al ser un sistema mecanico. Un saludo y gracias por compartir tu conocimiento.
@juannauy4970
@juannauy4970 Жыл бұрын
buen video, tengo una duda, puedo conectar el encoder a multiplexores? porque en practica lo intento y no me da ninguna señal en consola, gracias de antemano
@Apopheniomind
@Apopheniomind 4 жыл бұрын
Hola, Me ocurre algo extraño, codifique que al presionar el botón y giro, aumenta el giro POSICION a +-5 pero cuando llego a 127 (max) pasa a 4 (127, 0, 1, 2, 3, 4) o si parto de 0 (min) pasa a 124.... como que da la vuelta a los valores del otro lado, ni idea porque pasara esto si se definen los máximos y mínimos (0 - 127)
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Hola, no sabría indicarte ya que es una modificación del código original y puede haber algún tema que no puedo ver con sólo la descripción del sintoma. Saludos
@Apopheniomind
@Apopheniomind 3 жыл бұрын
@@BitwiseAr Como puedo compartir el código, solo modifique un par de cosas. Gracias
@eduardoemilioromm2862
@eduardoemilioromm2862 4 жыл бұрын
Hola Buenas noches. Te felicito explicas muy bien y bien realizado los tutoriales. Te consulto como puedo hacer una interrupción del código, para que ejecute un llamado cuando un tanque se quede sin liquido para avisando para su llenado. gracias.
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Hola, las interrupciones son para casos de alta velocidad de respuesta, en el orden de los microsegundos, para la gran mayoría de los casos no es necesario, simplemente se consulta el estado de un pin digital con digitalRead() y se toma la acción requerida. Saludos
@SeVieneElAjusteVer.Gorila2.0
@SeVieneElAjusteVer.Gorila2.0 4 жыл бұрын
excelente video! que pasa si la variable que guarda el valor de millis llega a su tope?
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Hola, vuelve a cero lo cual no es un problema ya que lo que interesa es la diferencia (de todas maneras sin mal no recuerdo demora 40 días en hacerlo). Saludos
@plutarco8556
@plutarco8556 3 жыл бұрын
Seria interesante también la función del switch
@manuelrodasratazzi9403
@manuelrodasratazzi9403 5 жыл бұрын
Muy buen video. Solo una curiosidad añadida a la parte que has obviado conscientemente, el terminal SW. ¿ Lo asignarías a la 2 interrupción de Arduino Pin3, con su antirrebote ? Yo si lo necesito incorporar a mi programa y me gustaría saber si voy bien encaminado, para incorporar tu aportación que, en cualquier caso, me parece magnifica. Gracias
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Gracias por el comentario, el SW puede conectarse a cualquier pin digital (no es necesario usar interrupción) y con INPUT_PULLUP detectar el nivel bajo y tomar una acción. Saludos
@manuelrodasratazzi9403
@manuelrodasratazzi9403 5 жыл бұрын
@@BitwiseAr Hola, permiteme que, abusando de tu amabilidad, recurra a ti como la persona ideal para consultar las dudas a las que me enfrento, tras animarme a un nuevo proyecto gracias a tus tutoriales del ENCODER y el de lector de TARJETAS SD. Actualmente tengo una CNC casera, funcionando con un Arduino Nano cargado con GRBL,y controlado con mi portatil y Universa Gcode Sender para enviarle el archivo de trayectorias generado con el software de modelado Aspire. El nuevo proyecto consistiría en eliminar mi portátil, de ese ambiente tan hostil (polvo) e incorporar un nuevo Arduino Nano con una pantalla OLED, un encoder para navegar por el menu y un lector de tarjeta SD que lea el Gcode del contenido grabado previamente y lo transfiera al Arduino Nano de la CNC Mis dudas, ¿ Bastaría con unir fisicamente los Rx y Tx de ambos en forma cruzada y transferirlos con Serial.Print() carácter a carácter tras leerlo de la tarjeta SD ?. Si necesito actualizar el firmware de cualquiera de los 2, o depurar algo usando el monitor serial de Arduino y me vuelvo a conectar con mi portatil al micro puerto USB de uno de ellos. ¿ Como afectaría esa unión física del punto anterior.? ¿ Estaría OBLIGADO a crear un puerto serie por software en el nuevo, para evitarlo ? ¿ La tarjeta SD admite una tasa de transferencia mayor a 9600 baudios? El GRBL requiere mas velocidad para no afectar al buen funcionamiento de los motores. ¿ Se te ocurren otros problemas que yo no veo ? Gracias de nuevo y perdona por el “ rollazo “. Te paso mi email por si lo consideras necesario mrodasratazzi@gmail.com
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Hola, lamentablemente no tengo experiencia con GRBL y por cuestiones de tiempo libre no me es posible llevar adelante proyectos particulares. Saludos
@manuelrodasratazzi9403
@manuelrodasratazzi9403 5 жыл бұрын
@@BitwiseAr Lo entiendo, gracias de todas formas,
@expetec9490
@expetec9490 6 жыл бұрын
Hola, el video esta super bien lo he entendido todo. Pero ¿ la función ISR no tenía que ser breve? ¿Cuál es la diferencia entre los prefijos" volatile" y "static"? Y ¿Qué es el pin SW del KY-040 ? GRACIAS
@BitwiseAr
@BitwiseAr 6 жыл бұрын
Hola, efectivamente se debe tratar en lo posible que la función ISR sea breve, no es en todos los casos crítico pero como regla general se lo intenta. Volatile es un modificar que le indica al compilador que la variable la almacene de forma directa en la RAM, como es un recurso que no abunda, las variables por defecto se guardan en un registro intermedio, pero para el caso de interrupciones la velocidad es crucial, por eso cuando se usa una variable en una ISR se le aplica el modificador volatile. Static mantiene el valor de una variable que se definió dentro de una función, por defecto una variable en una función se crea y se destruye al salir de la misma pero si necesitamos que mantenga el valor, por ejemplo para luego procesarla en el loop() se la declara de static. SW es switch, un interruptor incorporado en el eje del codificador. Saludos
@cesarvazquez5833
@cesarvazquez5833 4 жыл бұрын
Muchas gracias por el tutorial muy bien explicado, tengo dos preguntas la tapa o knob de la perilla es de 6mm? La otra pregunta es, he visto componentes como EC11 y KY07 sabrás si estos módulos son compatibles? Muchas gracias
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Hola, lamentablemene no sabría indicarte esos temas. Saludos
@phalberth8649
@phalberth8649 3 жыл бұрын
Muy buena explicación, tengo una duda: como lo implementaria para un sistema de adquisición de datos en labview con LINX?
@BitwiseAr
@BitwiseAr 3 жыл бұрын
Gracias por el comentario, lamentablemente desconozco el tema Labview como para poder orientarte. Saludos
@martinyanez5851
@martinyanez5851 2 жыл бұрын
Hola Buenas tardes quisiera hacerle la siguiente pregunta sobre que hace esta linea de código attachInterrupt(digitalPinToInterrupt(A), encoder, LOW); ? acaso detecta cuando A se encuentra en 0 ?
@BitwiseAr
@BitwiseAr 2 жыл бұрын
Hola, ese tema se explicó en detalle en el capítulo 21 sobre interrupciones que recomiendo veas: kzbin.info/www/bejne/q6GQmKKEm6-Se7s Saludos
@martinyanez5851
@martinyanez5851 2 жыл бұрын
@@BitwiseAr vale muchas gracias por responder y seguir activo respondiendo comentarios
@oktaviojorda9140
@oktaviojorda9140 3 жыл бұрын
Hola, me encanta como explicas... Quería consultarte lo siguiente, si tenemos un proyecto donde siempre está entendiendo y el tiempo de interrupción llega a su número max, va seguir funcionando?
@BitwiseAr
@BitwiseAr 3 жыл бұрын
Hola, gracias por el comentario, lamentablemente no entiendo la consulta sobre el tiempo de interrupción llega a su número max. Saludos
@ric7702
@ric7702 3 жыл бұрын
Todo muy bien explicado y de made hace tiempo andaba buscando un tutorial del encoder. ¿Como puedo adaptar tu función para usar tres encoders? Porque veo que usas variables globales y pues ya si uso más de uno pues ya no se puede.
@BitwiseAr
@BitwiseAr 3 жыл бұрын
Hola, se pueden usar múltiples variables globales, eso no es un problema, sin embargo para el caso de las placas con ATmega 328p tienen solo dos pines para interrupciones, también podrás buscar código en la web donde se utiliza un método que no requiere de interrupciones para los enconders. Saludos
@ric7702
@ric7702 3 жыл бұрын
@@BitwiseAr gracias por tu comentario, en lo de los las interrupciones no tengo problemas, ya que comúnmente uso el arduino Leonardo que cuenta con 5 interrupciones. Sabes si hay manera de meter en define así como las notas pero en este caso texto y luego poderlas ir recorriendo en un for, y en este ejemplo del encoder hay manera de trabajar con estructuras hacer una para cada encoder? Saludos.
@eugmarschreter4357
@eugmarschreter4357 7 жыл бұрын
....querria pedirte si podes explicar el ejemplo de la libreria parola (efectos para matrices led 8x8) o hacer alguna de tus clases magistrales con algunos de estos efectos enviados por puerto serie (o bluetooth)...no consigo entenderla todavia. .....gracias una vez mas (y con aplausos esta vez)
@BitwiseAr
@BitwiseAr 7 жыл бұрын
Eugmar, sinceramente no conozco la librería y no he trabajo con matrices de LED de 8x8 con lo cual lo voy a analizar y tener en cuenta para un futuro. Gracias por la recomendación.
@armandoac1334
@armandoac1334 4 жыл бұрын
Cuando vi el componente se me hizo raro que el video durara mas que el promedio, ahora se por que, si tiene su arte el codificador, muchas gracias por ilustrarnos. Mi codificador disminuye al dar los giros en sentido horario en lugar de aumentar y viceversa, es normal?, tendre otro tipo de codificador?. Gracias de nuevo, saludos.
@BitwiseAr
@BitwiseAr 4 жыл бұрын
Hola, podras invertir el orden de los pines DT y CLK Saludos
@dariomaldonado9448
@dariomaldonado9448 5 жыл бұрын
Si al iniciar, giro hacia la izquierda el enconder UN SOLO PASO, cambia de estado B pero A no cambia segun el grafico rojo, entonces... ¿como lo detecta el software si la interrupcion esta configurada solo para el pin A?
@BitwiseAr
@BitwiseAr 5 жыл бұрын
Hola Dario, sinceramente explicado en mayor detalle del que ya está en el video no me es posible dar, recomiendo vuelvas a verlo donde se muestra paso a paso en todas las direcciones como cambian las señales y el motivo por el cual es sólo necesario que un pin esté a una interrucción y el otro no. Saludos
@dariomaldonado9448
@dariomaldonado9448 5 жыл бұрын
​@@BitwiseAr Gracias por responder. Si, perdé cuidado que lo vi al video en detenimiento. Pero me parece que el error esta en la simplificacion de la rueda dentada. Por que vuelvo a insistir: Si empezamos con el estado inicial (las señales A y B en alto, ya que no las está tocando la rueda dentada), y doy un paso en sentido ANTIHORARIO, la primer señal que cambia de estado es B (pasa de alto a bajo) como explicás correctamente en el gráfico rojo. Si me detengo ahi, y NO SIGO GIRANDO el encoder, la unica señal que cambió fue B, y en ese caso en el codigo no deberia suceder nada ya que la interrupción está solo para el pin A ( y este pin aun no cambia de estado), y por ende se perderia ese paso. Se entiende?
@BitwiseAr
@BitwiseAr 5 жыл бұрын
La interrupción se produce en la transición de un paso a otro, una vez que llega a la posición ya no genera ninguna interrupción. En el capítulo 21 esta la explicación detallada de las interrupciones. Saludos
@dariomaldonado9448
@dariomaldonado9448 5 жыл бұрын
Si, insisto, sé cómo funcionan las interrupciones porque las uso en varias familias de micros. Pero al parecer no me estás entendiendo que según tu lógica, con la interrupción configurada para el cambio de estado en el pin A, y moviendo en sentido antihorario el enconder (con lo cual si realizamos un solo paso, solo cambia de estado B) no debería detectar ese paso. Me refiero puntualmente al minuto 8:15 de este vídeo: se ve CLARAMENTE que cambia de estado primero B al girar un paso en sentido antihorario, y si nos detenemos ahí (Y NO DAMOS MAS PASOS CCW) el pin A NO cambia. Por ende, este paso que dimos no sería detectado ya que no saltaría la interrupcion. Así que, o no me estás entendiendo, o te diste cuenta de un error en la lógica y no lo querés aceptar. Evidentemente en la práctica te funciona, por ende lo que tiene un error es la lógica de la explicación, que estimo será levemente diferente. Como sea, gracias igual por el trabajo que te tomas en hacer todo esto, es muy buen laburo. Solo te faltaría reconocer errores de vez en cuando y serías un profe perfecto.
@Tacho1957
@Tacho1957 4 жыл бұрын
Darío, la explicación que da Bitwise está perfecta, el error de concepto lo tienes tú (sin ánimo de ofender, con respeto lo digo), UN PASO del encoder no es un solo pulso en A o en B, Bitwise lo dividió en 4 tiempos para que se entienda de dónde salen las señales, pero UN PASO es entre muesca y muesca de la rueda, tu estás pensando en parar el encoder en la mitad cuando no termino el paso, el paso implica tener un pulso por A y otro por B, la diferencia radica en cual pulso (flanco) aparece antes, pero siempre vas a tener las dos señales presentes en A y B luego de girar un paso, sea sentido horario o antihorario, si te fijas en el min 9:48 verás a la derecha del encoder las gráficas para un solo paso (cada gráfica muestra 1 pulso en A y otro en B, jamás podría aparecer un solo pulso y el otro no, salvo que esté roto el encoder), espero que está explicación te sirva para entender dónde radica tu error
@josecamacho5522
@josecamacho5522 2 жыл бұрын
Cuál sería el mejor controlador Arduino si necesito conectar 6 de estos codificadores y varios botones?
@BitwiseAr
@BitwiseAr 2 жыл бұрын
Hola, el modelo Mega tiene muchos pines digitales pero el tamaño de la placa también es más grande, recordá que en este ejemplo se usan interrupciones y los modelos de placa basados en 328p tienen solo dos interrupciones, el 2560 tiene seis interrupciones (ver capítulo 21), de todas maneras hay formas de usar un codificador rotatorio sin necesidad de interrupciones. También existe forma de los botones organizarlos de forma matricial y asi ahorrar pines. Saludos
@josecamacho5522
@josecamacho5522 2 жыл бұрын
@@BitwiseAr muchas gracias!
¿Cómo funciona un ENCODER? Lineal y Rotativo, Incremental y Absoluto
7:09
JAES Company Español
Рет қаралды 205 М.
人是不能做到吗?#火影忍者 #家人  #佐助
00:20
火影忍者一家
Рет қаралды 20 МЛН
1% vs 100% #beatbox #tiktok
01:10
BeatboxJCOP
Рет қаралды 67 МЛН
How to control a DC motor with an encoder
9:30
Curio Res
Рет қаралды 474 М.
I built a FLAP ENGINE (New Rotary Design)
18:58
Integza
Рет қаралды 1,9 МЛН
I Spent 100 Hours Inside The Pyramids!
21:43
MrBeast
Рет қаралды 29 МЛН
How Rotary Encoder Works and How To Use It with Arduino
4:55
How To Mechatronics
Рет қаралды 909 М.
¿QUE ES UN ENCODER ROTATORIO?
10:06
Electronica Avanzada
Рет қаралды 43 М.
人是不能做到吗?#火影忍者 #家人  #佐助
00:20
火影忍者一家
Рет қаралды 20 МЛН