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 Жыл бұрын
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
@francoisdastardly44056 жыл бұрын
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.
@BitwiseAr6 жыл бұрын
Gracias por el comentario, se aprecia. Un saludo
@RicardoDarioLopez6 жыл бұрын
Gracias profe; Ud. nació para esto (y mucho más) He visto muchos tutoriales y estos son los de mejor calidad. Gracias.
@jgarzia4 ай бұрын
¡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.
@EA1XNQRP3 жыл бұрын
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.
@BitwiseAr3 жыл бұрын
Gracias por el comentario, se aprecia. Un saludo
@ejohanramirezbustamante74236 жыл бұрын
Este es uno de esos "tutoriales" que envuelven todo el sentido de la palabra... Gran aporte, gran pedagogía... Saludos...!!
@BitwiseAr6 жыл бұрын
Gracias por el comentario, muy amable, me alegro que encuentres el material de utilidad. Saludos
@luisdaroca25 жыл бұрын
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!!)
@raymundolara91883 жыл бұрын
De los mejores tutoriales de Arduino que hay, muchas gracias por compartir tus conocimientos.
@pitzahot44562 жыл бұрын
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.
@BitwiseAr2 жыл бұрын
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 Жыл бұрын
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 Жыл бұрын
Gracias por el comentario y la visita. Un saludo
@RDCST5 жыл бұрын
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.
@BitwiseAr5 жыл бұрын
Gracias por el comentario, son dispositivos con contactos inherentemente ruidosos, por eso con una buena rutina antirebote se pueden usar sin problemas. Saludos
@alexanderpatricioescobarpi23894 жыл бұрын
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
@soypally3 жыл бұрын
Muy buenos todas las eplicaciones!! vengo tomando varios de tus videos y la verdad que son de mejor que vi dando vueltas!!
@BitwiseAr3 жыл бұрын
Gracias por el comentario y la visita. Saludos
@VideotronicaTutoriales5 жыл бұрын
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.
@BitwiseAr5 жыл бұрын
Gracias por el comentario. Un saludo
@T0berius4 жыл бұрын
Muchas gracias, es algo nuevo para mi y me sirvio. Saludos desde Rosario/Santa Fe/Argentina
@BitwiseAr4 жыл бұрын
Gracias por el comentario y la visita. Un saludo
@berto.desarollo.personal5 жыл бұрын
Un genio total ,la verdad que uno en la escuela aprende lo básico nomas, por mas tutoriales así !!!!!
@BitwiseAr5 жыл бұрын
Gracias por el comentario. Saludos
@carlosdiaz-mz8xe5 жыл бұрын
Excelente maestro,..... Hoy fue mas complicado de como costumbre... pero sin duda excelente... Gracias
@matiasespedale15534 жыл бұрын
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.
@BitwiseAr4 жыл бұрын
Genial, gracias por el comentario. Saludos
@jorgefoto2 жыл бұрын
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!!!
@BitwiseAr2 жыл бұрын
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
@eddygeorge61703 жыл бұрын
Muy buen video Bitwise Ar. Me fue de mucha utilidad en un proyecto en el que estoy trabajando. Saludos maestro!
@BitwiseAr3 жыл бұрын
Genial, me alegro. Un saludo
@juancarloscarmensolano25984 жыл бұрын
MUCHAS GRACIAS POR COMPARTIR TUS CONOCIMIENTOS DE FORMA TAN CONCISA Y DIDACTICA!
@BitwiseAr4 жыл бұрын
Gracias por el comentario. Un saludo
@jorgeperezabraham89 Жыл бұрын
Excelente explicación. Ideal, además , para graficar para que sirve una resistencia de pull up.
@Darioscorp14 жыл бұрын
El mejor código que he encontrado...y puedo decir que he revisado bastantes...
@cansadodelserrucho4 жыл бұрын
Mi rey creo que te amo! Aprendo demasiado contigo. Gracias por todo lo que compartes
@fonsecaj23 жыл бұрын
Finalmente APRENDI a usar um Rotary encoder. Muchas gracias!!!
@BitwiseAr3 жыл бұрын
Genial, saludos
@GustavoGalarza4 жыл бұрын
La mejor explicación de KZbin..!!! Vi muchos vídeos pero todos se complicaban mucho
@carlosbah46232 жыл бұрын
El mejor canal del mundo hispanoamericano.
@BitwiseAr2 жыл бұрын
Gracias por el comentario, se aprecia. Saludos
@josemanuelquispemamani96722 жыл бұрын
tremendo genio resulto este amigo es km escuchar al traductor de ingenieria en version arduino o escuchar el doctor de la rosa
@julioe27617 жыл бұрын
Es Ud un gran didáctico. Felicidades.
@BitwiseAr7 жыл бұрын
Gracias Julio, muy amable. Saludos
@manuelandresavilatorres85565 жыл бұрын
Wow! Que claridad! Felicidades por tu trabajo tan detallado. Muchas gracias, suscrito.
@danielespino5955 жыл бұрын
Impecable...una explicación por demás didáctica, excelente
@BitwiseAr5 жыл бұрын
Gracias por el comentario. Saludos
@danielespino5955 жыл бұрын
Una consulta: algún problema en usar el pin 3 para el clk del encoder?@@BitwiseAr
@llorenccolomalemany18235 жыл бұрын
Excelente!!! Super bien explicado. Gracias maestro de maestros. Te felelicito por todos tus vídeos tan didácticos. Perfecto en todo!!
@gerardomoraleszabala28064 жыл бұрын
Es usted un pozo de sabiduría. Muchas gracias por su esfuerzo. Continúo aprendiendo.Saludos cordiales
@BitwiseAr4 жыл бұрын
Gracias por el comentario y la visita. Saludos
@brandonforbesnash32763 жыл бұрын
TREMENDO CRAACK!!! Te debo una caguama bro
@EduardoCaporale7 жыл бұрын
Felicitaciones y gracias, muy bien explicado, un cordial saludo desde Mar del Plata, Argentina.
@BitwiseAr7 жыл бұрын
Gracias Eduardo por tu comentario. Saludos
@elegebe334 жыл бұрын
excelente!!!!sos un gran pedagogo!!!saludos desde argentina!!!...
@nicozepp104 жыл бұрын
Exelente video!! como siempre... impecablemente explicado, te felicito!. Gracias y segui asi!
@BitwiseAr4 жыл бұрын
Gracias por el comentario y la visita. Saludos
@sebastianalvarez444 жыл бұрын
Amigo, gracias por tus aportes. No conocía estos módulos. Muy interesante! Saludos
@BitwiseAr4 жыл бұрын
Genial, saludos
@Dexter.amr885 жыл бұрын
Más claro imposible, un abrazo!
@BitwiseAr5 жыл бұрын
Gracias por el comentario. Un saludo
@federicosvanascini10725 жыл бұрын
Muchas Gracias Genial la explicación. Sos un excelente docente.
@BitwiseAr5 жыл бұрын
Gracias por el comentario y la visita. Un saludo
@eneaskappou29684 жыл бұрын
Te felicito por la calidad de tus videos !! gracias!
@eneaskappou29684 жыл бұрын
tenes algun tuto donde se use un arduino uno/nano para mandar datos a una web a travez del esp8266? gracias!
@earevaloo7 жыл бұрын
Muy buen video, muchas gracias y sigue adelante
@piezaspararobotica5 жыл бұрын
Simplemente....!!!!GENIAL¡¡¡¡....
@BitwiseAr5 жыл бұрын
Gracias por el comentario. Saludos
@lmeucchi4 жыл бұрын
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
@diegopinciroli92394 жыл бұрын
Super claro mil gracias
@blecomp5 жыл бұрын
Excelente, eres un gran Maestro!!
@BitwiseAr5 жыл бұрын
Gracias por el comentario. Saludos
@daniellechuga90095 жыл бұрын
Perfecta explicación
@BitwiseAr5 жыл бұрын
Gracias por el comentario. Saludos
@alfonsoserna9609 Жыл бұрын
Que berraquera de profe...Gracias
@virginiaperez89714 жыл бұрын
hola gracias por tu tiempo no se puede explicar mejor un saludo
@BitwiseAr4 жыл бұрын
Gracias por el comentario. Saludos
@prudenciopinzonl80425 жыл бұрын
Muchas gracias y bendiciones.
@DCano015714 жыл бұрын
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.
@BitwiseAr4 жыл бұрын
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
@DCano015714 жыл бұрын
@@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.
@adriteixehax3 жыл бұрын
Magnífico
@BitwiseAr3 жыл бұрын
Gracias por el comentario y la visita. Saludos
@franciscobertolone72547 жыл бұрын
Excelente explicación. Me sirvió mucho. Gracias.
@BitwiseAr7 жыл бұрын
Gracias Jerónimo por el comentario, me alegro que te haya sido de utilidad. Saludos
@johanlopez54425 жыл бұрын
Gracias men ... Muy bn explicado ... Gracias
@BitwiseAr5 жыл бұрын
Gracias por el comentario. Un saludo
@jankeroutbreak4 жыл бұрын
Gracias me ayudo muchísimo
@valtercapo34965 жыл бұрын
Simplemente perfecto!
@BitwiseAr5 жыл бұрын
Gracias por el comentario. Saludos
@mhdiazc5 жыл бұрын
buena presentación, te felicito
@LUISAL1024606 жыл бұрын
Excelente video, te felicito y me suscribo
@BitwiseAr6 жыл бұрын
Gracias Luis por el comentario y la suscripción. Saludos
@isaacrafaelnunezservian7083 жыл бұрын
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!
@sebacortes88123 жыл бұрын
Muy bueno gracias!!
@ftgmetal26164 жыл бұрын
Muy buena clase!!! Tienes pensado hacer alguna que explique como usar un encoder optico, y como tambien darle las diferentes direcciones? Saludos!!
@BitwiseAr4 жыл бұрын
Hola, gracias por el comentario, está previsto pero no para el corto plazo. Saludos
@eugmarschreter43577 жыл бұрын
Espectacular explicacion!!!
@Xavi-Tenis4 жыл бұрын
este ya es un codigo mas picante jaja muy bueno
@masiluli4 жыл бұрын
Estimado buena expliacion como siempre... Se puede hacer un control de volumen analogico con arduino para un amplificador de audio?
@BitwiseAr4 жыл бұрын
Hola, supongo que un potenciómetro convencional sería más adecuado. Saludos
@playrpm5 ай бұрын
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
@arielignacio92344 жыл бұрын
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?
@BitwiseAr4 жыл бұрын
Hola, lamentablemente nada sobre el tema. Saludos
@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?
@JDPavon6 жыл бұрын
! Excelente ! Gracias.
@BitwiseAr6 жыл бұрын
Gracias por el comentario. Saludos
@juana.ortega26775 жыл бұрын
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
@BitwiseAr5 жыл бұрын
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
@MrNess29116 жыл бұрын
Brillante explicación! Cuando puedas hacé un video de MAX 7219 con dígitos de siete segmentos.
@BitwiseAr6 жыл бұрын
Gracias por el comentario. En breve se estará tratando en principio el MAX7219 con matriz de 8x8. Saludos
@MrNess29116 жыл бұрын
@@BitwiseAr Muchas gracias!
@santiagodemarchi9904 жыл бұрын
Excelente clase!!
@diegogandolfo57093 жыл бұрын
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!
@BitwiseAr3 жыл бұрын
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
@diegogandolfo57093 жыл бұрын
@@BitwiseAr muchas gracias por tu respuesta!
@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 Жыл бұрын
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
@douglasleal44804 жыл бұрын
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
@BitwiseAr4 жыл бұрын
Hola, seguro, es solo un método de entrada, luego por programación se puede aplicar a lo que se necesite. Saludos
@haroldaguivillar42474 жыл бұрын
De poder se puede pero hay que investigarle bastante
@ignaciochaneton71103 жыл бұрын
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!!!
@BitwiseAr3 жыл бұрын
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
@joseluisdiez15612 жыл бұрын
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
@BitwiseAr2 жыл бұрын
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
@joseluisdiez15612 жыл бұрын
Muchas gracias por la respuesta
@jhon8a2855 жыл бұрын
Buenos días profe agradezco una explicación con encoder no rotativo para hacer girar motores a ciertas vueltas gracias.
@BitwiseAr5 жыл бұрын
Gracias por el comentario y la sugerencia. Saludos
@renel.85002 ай бұрын
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?
@BitwiseAr2 ай бұрын
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
@Einkor5 жыл бұрын
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
@fabiandebasto98395 жыл бұрын
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.
@BitwiseAr5 жыл бұрын
Gracias por el comentario, recomiendo veas el capítulo 21 destinado exclusivamente al tema interrupciones. Saludos
@fabiandebasto98395 жыл бұрын
Gracias, lo acabo de ver, excelente como siempre!!.
@eduardoarbetman34044 жыл бұрын
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
@hugosd684 жыл бұрын
El Encoder tiene resistencias de 10 KOHMS de «pull-up» por lo que no parece necesario habilitar las del arduino. Saludos.
@martinyanez58512 жыл бұрын
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
@luiscordova93086 жыл бұрын
Bueno video
@rafallaceroltra3804 жыл бұрын
Muchas gracias por compartir. Existe algún codificador igual pero que no sea mecánico?. Gracias por tu tiempo.
@BitwiseAr4 жыл бұрын
Hola, seguramente existe aunque nunca lo he usado. Saludos
@rafallaceroltra3804 жыл бұрын
@@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 Жыл бұрын
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
@Apopheniomind4 жыл бұрын
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)
@BitwiseAr4 жыл бұрын
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
@Apopheniomind3 жыл бұрын
@@BitwiseAr Como puedo compartir el código, solo modifique un par de cosas. Gracias
@eduardoemilioromm28624 жыл бұрын
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.
@BitwiseAr4 жыл бұрын
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.04 жыл бұрын
excelente video! que pasa si la variable que guarda el valor de millis llega a su tope?
@BitwiseAr4 жыл бұрын
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
@plutarco85563 жыл бұрын
Seria interesante también la función del switch
@manuelrodasratazzi94035 жыл бұрын
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
@BitwiseAr5 жыл бұрын
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
@manuelrodasratazzi94035 жыл бұрын
@@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
@BitwiseAr5 жыл бұрын
Hola, lamentablemente no tengo experiencia con GRBL y por cuestiones de tiempo libre no me es posible llevar adelante proyectos particulares. Saludos
@manuelrodasratazzi94035 жыл бұрын
@@BitwiseAr Lo entiendo, gracias de todas formas,
@expetec94906 жыл бұрын
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
@BitwiseAr6 жыл бұрын
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
@cesarvazquez58334 жыл бұрын
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
@BitwiseAr4 жыл бұрын
Hola, lamentablemene no sabría indicarte esos temas. Saludos
@phalberth86493 жыл бұрын
Muy buena explicación, tengo una duda: como lo implementaria para un sistema de adquisición de datos en labview con LINX?
@BitwiseAr3 жыл бұрын
Gracias por el comentario, lamentablemente desconozco el tema Labview como para poder orientarte. Saludos
@martinyanez58512 жыл бұрын
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 ?
@BitwiseAr2 жыл бұрын
Hola, ese tema se explicó en detalle en el capítulo 21 sobre interrupciones que recomiendo veas: kzbin.info/www/bejne/q6GQmKKEm6-Se7s Saludos
@martinyanez58512 жыл бұрын
@@BitwiseAr vale muchas gracias por responder y seguir activo respondiendo comentarios
@oktaviojorda91403 жыл бұрын
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?
@BitwiseAr3 жыл бұрын
Hola, gracias por el comentario, lamentablemente no entiendo la consulta sobre el tiempo de interrupción llega a su número max. Saludos
@ric77023 жыл бұрын
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.
@BitwiseAr3 жыл бұрын
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
@ric77023 жыл бұрын
@@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.
@eugmarschreter43577 жыл бұрын
....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)
@BitwiseAr7 жыл бұрын
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.
@armandoac13344 жыл бұрын
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.
@BitwiseAr4 жыл бұрын
Hola, podras invertir el orden de los pines DT y CLK Saludos
@dariomaldonado94485 жыл бұрын
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?
@BitwiseAr5 жыл бұрын
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
@dariomaldonado94485 жыл бұрын
@@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?
@BitwiseAr5 жыл бұрын
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
@dariomaldonado94485 жыл бұрын
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.
@Tacho19574 жыл бұрын
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
@josecamacho55222 жыл бұрын
Cuál sería el mejor controlador Arduino si necesito conectar 6 de estos codificadores y varios botones?
@BitwiseAr2 жыл бұрын
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