@@BitwiseAr Te cuento que pese a haber hecho el curso de nivel básico en Monarca y haberme inscripto en el nivel intermedio voy siguiendo tu curso porque realmente explicás muy bien, de hecho soy ingeniero en electrónica pero me recibí en 1983 y tu curso me encanta.
Muy buen vídeo, excelente video, muchas gracias por compartir esa información tan detalladamente y con esos ejemplos demostrativos. Busque mucho y este ha sido el único video que he logrado entender de las interrupciones.
Excelente video. Yo le agregue al ultimo programa en el void setup, un Serial.begin y en void sensor hice el Serial.println, para ver como avanza la interrupcion.
No entiendo por que en otros tutoriales de internet no enseñan sobre estas dos funciones, son escenciales para el uso de pulsadores y sensores que funcionan como tal. Muchas gracias por este aporte
Excelente tutorial......como siempre da gusto seguir tus videos tutoriales, los hacer ver muy fácil aunque en la practica me hacen patinar un poco. Un libro sobre Arduino que puedas recomendar.... Mil gracias.
Gracias por el comentario, entre más práctica, más se aprende. Sinceramente no podría recomendarte un libro ya que no he leido ninguno, claro que hay muchos, pero en mi caso con los conocimientos de electrónica, fue un tema más de programación que otra cosa y eso lo fui aprendiendo de diversos videos, tutoriales, foros. Saludos
Hola, he vuelto a ver este tutorial, buscando un ejemplo de mandar a dormir al arduino para ahorrar bateria y despertarlo con una interrupción. Obviamente no lo he encontrado. Me he recorrido tus tutoriales y no encuentro ninguno sobre librerias de ahorro de energia. Se que hay por ahí algunos ejemplos, pero tengo que reconocer que eres el primero en consultar dudas de Arduino por la calidad de tu exposiciones. Te agradecería que si lo tienes a bien, puedas hacer algún que otro tutorial sobre la libreria lowpower y las implicaciones con las interrupciones. Gracias y felicidades por tus videos.
he hecho un codigo en el que manejo dos motores paso a paso de forma que un joystick manejo los dos motores y simulo una grua de forma que moviendo el joystick de derecha a izquierda la grua gira en redondo y moviendo el joystick de arriba abajo el brazo de la grua sube y baja. Vale hasta ahi todo bien y funciona. ahora se me ocurrio incrementarle dos finales de carrea para subida y bajado con un fototransistor, hice el codigo y primero lo simule con pulsos de 5v y correcto. luego incremente el fototransistor y solo funcina para subida para bajada se viene abajo los 5 voltios de salida del sensor cuando detecta. configure la patilla 3 para el fin de carrea de bajada y la 2 para el fin de carrea de subida. he medido la intensidad que circula por el pin 3 cuando sube metiendo un pulso directo de 5 voltios desde arduino y hace bien la funcion pero circula 80mA hacia el pin muy elevado parece, pero hace bien la funcion. pero cuando le meto el fototransistor se biene abajo supongo porque no resiste la carga de 80mA. sin enbargo para la subida apenas consume nada. he puesto las pullup de 10k y todo correctamente. no lo entiendo y el codigo es calcado tanto para subir como para bajar. y lo hace para bajar en cualquier patilla que le configure. tendrias alguna explicacion.
Hola Eduardo, lamentablemente por cuestiones de tiempo libre no me es posible analizar código de proyectos, solo puedo responder a alguna cuestión puntual del capítulo. Saludos
pero el codigo funciona lo que consume demasiado es la entrada donde se programa la condicion de parada. sea la entrada que sea. y solo para la condicion de giro contrahorario del paso a paso. me inclino mas por un problema electronico.
Excelente, viendo el video ya estaba pensando en que esto sirve perfectamente para hacer una parada de emergencia en un sistema mediante un botón o pulsador, o me equivoco? Luego con otro botón en el pin 3, compruebo que el botón 2 se haya desligado y reinicio el sistema.
Muchas gracias por tu respuesta, pude solucionarlo con la funcion attachInterrupt, ahora tengo un programa para hacer que un led se encienda y se.apague pidiendo variar su.frecuencia de encendido apagado con un potenciometro, no que.no he podido lograr es q se ejecute sin tener que dejar presionado el led, es decir, que se haga la tarea presionando el.led una sola vez
Excelente explicacion... una consulta.. si coloco un pulsador como parada de emergencia .. y con este detener motores para que no sigan funcionando... conviene hacer la lógica en la funcion isr ? O es muy larga atendiendo a lo que aconsejas que sean breves... y conviene que en la isr cambiemos el estado de una variable y luego en el loop con ese estado ya cambiado actuemos sobre los Enabled de los driver de motores? Gracias.. te sigo hace mucho tiempo y aprendí muchisimo...
Hola, gracias por el comentario, se suele implementar efectivamente con una interrupción que cambie el estado de una variable de control en el loop. Saludos
Muchísimas gracias por los tutoriales. Tienes una forma de explicar que lo hace realmente accesible. Qué bonito el compartir conocimientos. Creo que entendí una cosa, pero quiero contrastarla. Si tú inicias una función millis por fuera de la interrupción, ¿El tiempo en el que el programa entra en la función de interrupción no los tiene en cuenta el millis? Por ejemplo, si haces una millis para abrir una válvula cada 24h e interrupciones por X razón, todo ese tiempo transcurrido en las interrupciones te descuadraría de las 24 horas? Muchas gracias y abrazos desde España :)
Hola, por ese motivo la función ISR debe ser lo más corta posible, en la mayoría de casos con cambiar el estado de una variable es suficiente, luego en el loop() se evalúa si la variable cambió y se toma una acción. Saludos
Como siempre , muy buen video, tengo una consulta, cuantos niveles de anidacion de interrupciones se permite, es decir, si desde una interrupcion se puede antender otra interrupcion
Hola, gracias por el comentario, como se mostraba en la tabla del inicio del video las placas clásicas tiene dos pines para interrupciones asi que es poco probable que lleguen dos en simultáneo, al menos lo que pueda considerarse "simultáneo", por eso la ISR debe ser lo más breve posible. Saludos
Hola, la interrupción es un proceso que llama a la función ISR, en ella se puede tomar la acción que se necesite o simplemente cambiar el estado de una variable en el loop() y dentro del mismo tomar la acción. Saludos
muchas gracias por su exelente curso estoy aprendiendo de un gran maestro, tengo un proyecto con un monedero electronico multimoneda usando interrupcciones solo que en el codigo le pongo una condicionante if segun el precio determinado de un producto pero no me lo respeta , me enciende un relee a la primer moneda que le deposite , me podria orientar cual seria mi error en el codigo? muchas gracias
hola muchas felicidades por el video, solo una pregunta el sensor efectivamente cuenta las vueltas solo que mi duda es si es necesario que pase un objeto justamente por en medio del sensor? te pregunto en el caso de la impresora sin problema pasa una simple cinta transparente con lineas de color negro asi interrumpe es as de luz y cuenta las vueltas, pero en el caso de un motor ahi que seria lo que podriamos pasar por medio del sensor para que realice el conteo por poner ese ejemplo? en los autos este lo traen en el cigueñal para contar las vueltas y a su vez la revoluciones pero no he visto pase por en medio algo? solo he visto que pasa con una proximidad minima, o este es otro tipo? muchas gracias y saludos desde mexico.
Hola, gracias por el comentario, este sensor en particular por su construcción require interrumpir la luz entre el emisor y el receptor infrarrojo, hay otros métodos para el caso de motores donde se usan sensores de efecto Hall por proximidad a un campo magnético. Saludos
@@BitwiseAr hola gracias por tu atención antes que nada, y si tienes razón ese sensor ya lo habíamos visto en capítulos anteriores es simplemente un sensor de proximidad que simplemente al acercarse realiza el conteo muchas gracias y saludos seguiremos estudiando cuidate un abrazo.
gracias por este excelente curso que me està ayudando mucho a entender y programar Arduino. Quisiera hacer una pregunta: estoy proyectando un sistema de llenado de botellas. Me interesa que Arduino active un relè conectado a la bomba del agua cada vez que detecte la presencia la de la botella. Què sensor es el adecuado? Habia pensado uno de infrarrojos, con dos sensores que se colocarian separadamente en el espacio para la botella. Mi segunda pregunta es què sensor de interrupciòn se podria utilizar para que la bomba se detenga cuando la botella està llena? En teoria serian dos interrupciones: uno que detectaria la presencia de la botella y que activarìa la bomba. El segungo que la detendrìa cuando la botella estuviese llena. Te agradezco mucho tu ayuda.
Hola Roberto, me alegro que encuentres de utilidad el material. El tipo de sensor para detectar la botella dependería de si se coloca de a uno la botella o es parte de un sistema de cinta transportadora, un sensor infrarrojo podría funcionar pero tendrías que tener en cuenta que la botella vacia ya sea plástico o vidrio puede no reflejar del todo bien el haz de luz infrarroja. Quizás por el propio peso de la botella un simple circuito interruptor con microswtich sería suficiente o utilizar ambos sistemas en simultáneo. Una vez detectada la botella un relé puede encender la bomba de llenado, luego un sensor del tipo caudalímetro podría monitorear la cantidad de líquido que circula para saber cuando se debe detener la bomba. Debés tener en cuenta que sería una solución "casera" a un problema que es más del tipo industrial donde existen sistemas de control mucho más complejos que un simple Arduino y los sensores y sistemas de control mucho más sofisticados pero con esos sensores mencionados se podría armar algo. Espero te sirva. Saludos
Hola estoy diseñando el código de una pequeña lavadora de piezas mecánicas para relojería, básicamente es un motor que gira a derecha durante 10 segundos y después izquierda otros 10 segundos pero la parada ha de ser manual mediante un interruptor. El problema es que este interruptor no debe cortar la corriente del arduino o el motor en ningún momento, lo quiero hacer por software es decir, aunque el ciclo de movimiento del motor haya comenzado en el momento de activar el interruptor se debería parar en seco y aparecer el correspondiente mensaje en un display lcd. He probado con interrupciones, la función while pero no se me ocurre como puedo pararlo todo instantáneamente saltándose los delays que hay en el código. muchas gracias de antemano
Excelente video, pero tengo una duda se podría hacer lo mismo enviando comandos bluetooth, en ese caso en que modo debe ir la funcion de interrupcion?.... mi problema es el siguiente, estoy usando un módulo bluetooth hc-05 para controlar un led y un buzzer pasivo al mismo tiempo, por ejemplo desde mi celular yo apreto el boton on y se prende el led y se reproduce la melodía, pero al momento de querer apagarlo desde mi celular con el botón off de la app, no sucede nada, debo esperar a que acabe la melodía y luego de eso recién coge el comando para apagar el led y dejar de reproducir el buzzer pasivo, por esa razon me parecio interesante este video, ya que se me ocurrió que esto de interrupciones de arduinos puede ser la solución a mi problema, pero no se como implementarlo para que funcione, que comando debo poner y si se pone una condicional if en la funcion de interrupcion o como se hace.... Te doy las gracias de antemano, espero me puedas ayudar con mi problema.
Cuando surge una interrupción se deshabilitan todos los pines? Ejemplo, si tienes el led del pin 13 encendido y se activa una interrupción larga, el led se apaga mientras arduino atiende a la interrupción? Siguiente cuestión, si la función de la intervención se demora un poco y aparece otra interrupción del mismo pin que pasa?
Hola, justamente se explica que la función ISR debe ser lo más corta posible, igual estamos hablando de microsegundos, atiende la interrupción y vuelve al flujo normal del programa, no afecta a los pines. Saludos
Entiendo éso, pero es una recomendación para no afectar a los tiempos del programa principal. Pero qué pasa si quiero medir el ancho del pulso que ha causado la interrupción? La entrada analógica necesita tiempo. Y si quiero hacer varias medidas, un muestreo de dicha señal? Sé que la función delay() y millis() no están disponibles, pero si lo está la función micros () y se puede usar para hacer demoras.... Eso sería una interrupción larga así que mientras el programa principal está en pausa, que pasa con los pines? Y si surge otra interrupción mientras está en curso la interrupción?
Hola, las interrupciones llegan por un evento externo. Existen otro tipos de interrupciones por temporizadores analizada en el capítulo 77: ua-cam.com/video/kI-jT-y1SKQ/v-deo.html Saludos
Hola, enhorabuena por tus videos, son muy instructivos. Una pregunta que no te he podido hacer en capítulos anteriores por tener los comentarios deshabilitados. Por qué a veces la protoboard es necesaria una veces si y otras veces no? Gracias!!!!
Hola, gracias por el comentario, todos los videos tienen sus comentarios habilitados, no se el motivo por el cual no hubieras sido capaz de hacer un comentario en un video. Protoboard se usa por comodidad si conviene que el sensor quede en una posición específica o cuando hay mucha cantidad de conexiones. Saludos
Hola saludos de colombia, de antemano agradecerte por el tiempo que inviertes para compartir tu conocimiento, me ha sido de gran ayuda el material, quisiera hacerte una pregunta, si yo tengo un programa con varios ciclos, uno de los ciclos es activar mediante un pulsador un actuador, que la activacion dure 15 seg y despues apagarse, si quiero interrumpir de manera definitiva esa instruccion lo podria hacer un esta funcion?, porque lo intente evaluando el.estado del pulsador (pulsador=1-pulsador) y se queda activado, pienso yo por la duracion del delay, apreciaria tu ayuda, saludos.
Hola, gracias por el comentario. El problema surge en que cuando ingresa la interrupción estando dentro del delay() la función ISR se ejecuta sin problemas pero vuelve al programa exactamente al mismo punto donde se recibió la interrupción, con lo cual termina lo que falta del delay() para luego apagar el relé. Lo que podrías hacer es dentro de la ISR (que se trata de mantenerla lo más breve posible) desactivar ahí mismo el relé, luego sigue con el delay() pero ya habrá cumplido el objetivo de apagar en cualquier momento. Saludos
Otra cuestion: Desaconsejas utilizar la funcion Serial.print() en una funcion ISR pero ¿Puede hacerse?. Yo tengo previsto usar Serial.read(dato) para leer una entrada por Rx. Gracias por tu trabajo.
Hola, correcto, la función ISR debe ser lo más breve posible, cambiar el estado de una variable que luego en el loop() pueda leerse y allí tomar la acción. Saludos
Hola, buen video, se podría aplicar el codigo de igual forma para un contador de rpm con un sensor de efecto hall por sobre el que pasa un iman usando rising?
Hola, gracias por el comentario, el video se centra en el concepto de las interrupciones con lo cual entendido el tema se puede aplicar con diversos sensores, como ser uno de efecto hall. Saludos
Excelente video como siempre, una pregunta, por qué con un plastico transparente no activa el sensor?, tengo entendido que el plastico es trasparente a la luz visible pero para la luz infrarroja es opaco, lo digo porque las camaras indrarrojas no ven atraves de estos plasticos tampoco a traves de vidirio o incluso agua.
hola!! muy bueno y muy adictivo te felicito!! consulta hay dos interruciones tienen prioridad? o atiende la primera y luego la segunda? independientemente de la que llega primero
Si usáramos 2 de estos interruptores, podría hacerse un encoder óptico, como los que se usaban en los mouse antiguamente? En tal caso, cual seria la diferencia de estos interruptores, con el modelo FC03sgk? Muy buen video!! Sos un gran maestro!!
Hola. Acabo de descubrir este curso y es excelente la manera de exponer los temas. Lo cazas todo a la primera. He estado revisando la playlist y quería preguntarte si tienes algún vídeo de estas características que hable del modo Sleep en Arduino. Tengo un par de proyectos con baterías y me gustaría que explicases a tu manera este tema para solventar algunas dudas. De nuevo gracias por todo este material. Saludos.
El video es muy claro! Pero tengo Una consulta práctica . Al enchufar/desenchufar o conectar/desconectar un artefacto eléctrico cerca del Arduino, genera pulsos de interrupción entregando datos erróneos. Esto tiene solución ? Gracias
Hola! Gracias por responder ! Creo que si afecta al capítulo ya que en la práctica afecta al funcionamiento. En mi caso es crítico el uso de interrupciones pero se ve afectado por cualquier interferencia eléctrica. Tenes tutorial de conexión serie con otro dispositivo ? Porque vi todos tus videos y no encontré pero tal vez tenes. Gracias
Hola una pregunta ,si yo creo una interrupción "attachInterrupt(digitalPinToInterrupt(A), FX, LOW)" ,si por ejemplo mediante un switch hago que el PIN (A) tenga un valor LOW por un tiempo considerable ,entonces la funcion FX se repetiria una y otra ves como un loop sin dejar que el VOID LOOP () principal continue?O en todo caso que deberia suceder
Hola, lo que se describe es el principio de funcionamiento de las interrupciones, en este caso mediante el fotointerruptor pero puede ser también un interruptor mecánico, al llegar la interrupción coloca una variable en un valor que luego puede leerse desde el loop() y asi tomar una acción. Saludos
Muchas gracias, muy buen video. Me gustaria saber como podria generar una interrupción, no a partir de una señal externa ni a un timer sino al cumplimiento de algunos valores predefinidos en algunas variables durante el proceso, es eso posible? gracias por el apoyo.
Hola, la interrupción esta pensada para cuestiones externas, si es por programación entonces no se necesita y se puede resolver consultando el valor de una variable y tomar una acción mediante una función. Saludos
execlente video, una consulta vi en algunos codigos que usan TCCR1A y 1B para modificar el periodo de los pwm, podiras hacer un video de este tipo, y una pregunta si se puede modificar los periodos de los pwm, cual es el periodo de defecto q tiene los pwm?
Hola, gracias por el comentario, en el siguiente enlace encontrarás información completa del tema: www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM Saludos
gracias por tus videos, como hago para utilizar varios pines como interrupcion en arduino nano? creo que por cambio de estado pero no se como utilizarlo, puedes ayudarme por favor?
Hola, no, se pueden conectar decenas de sensores, no solo a las entradas/salidas digitales, sino también a las entradas analógicas y mediante bus serie como I2C o SPI Saludos
Nuevamente felicitaciones por el video y la explicación muy clara. Pero, quiero hacer una consulta: Entiendo que con el uso de las interrupciones, es casi IMPOSIBLE que una interrupción no sea detectada. Pero si yo no uso interrupciones, el programa está ejecutando otra acción y en un momento dado, tengo una entrada detectada (por ejemplo un pulsador), pero que pasa, si cuandoeste pulsador esta siendo presionado, el programa está ejecutando otra acción; entonces, este pulsador NO LO DETECTA el Arduino. Apelo a tu enorme conocimiento de programación y electrónica, para preguntarte : DE QUE MANERA, ESTA ACCIÓN EN ESE PULSADOR NO SE PIERDA, de tal manera de que el Arduino, una vez que termine lo que estaba haciendo, DETECTE este pulsador. Lógicamente, estamos hablando de milisegundos de tiempo, no es que vaya a pasar segundos. Gracias por tu respuesta.
Hola, la ejecución del programa en el loop() es secuencial, si hubiese una demora de por ejemplo 2 segundos y en ese momento se presiona el pulsador no lo vo a ver, si no se usan interrupciones entonces hay que asegurarse de que no hayan demoras grandes dentro del código, de hecho sería no utilizar la función delay() y usar millis(). Saludos
Hola, si no se coloca el condicional estara escribiendo en el monitor serie de forma constante el último valor de contador, la idea es que solo muestre si existe un cambio. Saludos
Hola, en el capítulo 10 se describe el uso del módulo LCD y como escribir en el mismo, para mostrar el número de interrupciones solo tendrás que escribir el valor de CONTADOR con la función print() Saludos
Magnifico tutorial y una explicación insuperable.Tengo una pregunta ,Se puede asignar un orden de prioridad para cuando se usen mas de un pin para las interrupciones y de ser posible como seria? saludos desde Rep. Dominicana.
Hola, gracias por el comentario. Como se explica en el capítulo depende del tipo de modelo de placa, UNO por ejemplo tiene sólo dos pines para interrupciones externas, otras placas tienen más. Las interrupciones dificilmente lleguen exactamente al mismo tiempo como para establecer un nivel de prioridad, siempre una entrará primero que la otra (u otras), aunque sea por diferencia de microsegundos, por eso no se aplica un sistema de prioridades. Saludos
Se pueden usar pines 4,5,6 y 7 en Nano o Uno?... ej declarando una variable para el estado anterior de estos pines , y en el loop se compare y actualice con un if estado vs read ( pensando como ej para varios sensores magnéticos con conexión pullup al pin y gnd al magnético )
Hola, no comprendo bien la pregunta, este capítulo es sobre interrupciones externas, de las cuales hay solo 2 disponibles para Uno o Nano que se basan en el mismo micro controlador 328p. Saludos
Execelente video, tengo una pregunta, en vez del sensor que estás utilizando estoy utlizando pulsadores pero cada vez que pulso se imprimen 3 numeros seguidos y así, estoy colocando su respectivas resistencias pull up pero no me funciona, pero creo que algo estoy haciendo mal. Que podría ser?
Hola, gracias por el comentario, el comportamiento es el esperado al usar un pulsador ya que el mismo genera rebotes, al presionar se genera más de un pulso y como las interrupciones son muy rápidas las puede leer. Por ese motivo se utilizó en el ejemplo un interruptor óptico. Si tu proyecto requiere usar interrupciones con un circuito que genera rebotes tendrás que solucionarlo mediante código, por ejemplo detectar la primer interrupción y consultar si hay pasado al menos 20 mseg., si llegan otras interrupciones en ese período significa que son rebotes y se pueden desestimar. Saludos
Hola Muy bueno su video... Pero tengo un problema con la aplicacion en un ESP8266 WiFi . Que pin utilizaria , ya que tengo un error a la salida? Gracias
Hola, el curso se centra en el uso de modelos clásicos de Arduino (ATmega 328p) con lo cual el ESP8266 tiene un hardware diferente y código y conexiones pueden ser diferentes a las mostradas. Saludos
Hola Dan, gracias por el comentario, un condicional funcionará sin problemas y en la mayoría de los casos no hay inconvenientes, es solo cuando se necesita hacer cálculos de diferencia de tiempos o generar señales con mucha precisión ya que no se sabe en qué momento puede "caer" una interrupción. Arduino no puede realizar un procesamiento simultáneo de la información, por eso como se explica, cuando llega la interrupción deja todo, atiende la misma y luego vuelvo al punto donde dejó. Saludos
Muy clara la explicación de interrupciones, es la mejor que he visto hasta el momento.
Realmente tenés gran capacidad para enseñar. Te felicito.
Gracias por el comentario, me alegro que encuentres el material de utilidad.
Saludos
@@BitwiseAr Te cuento que pese a haber hecho el curso de nivel básico en Monarca y haberme inscripto en el nivel intermedio voy siguiendo tu curso porque realmente explicás muy bien, de hecho soy ingeniero en electrónica pero me recibí en 1983 y tu curso me encanta.
Genial, saludos
Increíbl Bitwise, estoy aprendiendo un montón de tus videos. Te mereces el mejor de los éxitos.
Sin lugar a duda, el mejor y mas completo curso de arduino, gracias
Gracias por el comentario, muy amable. Un saludo
Otra vez!, excelente video! sos lo mejor q existe en la internet para explicar arduino, eres realmente el rey de reyes!.
Gracias por el comentario, muy amable. Saludos
Es una explicación muy clara. Muchas gracias. Su forma de enseñar es la mejor que conozco.
La verdad lo haces tan fácil , que parece mágico , muchas gracias
Gracias por el comentario. Saludos
el mejor video que he visto sobre las interrupciones, enhorabuena!
Gracias por el amable comentario y la visita.
Saludos
Excelente tutorial amigo, y muy buen ejemplo para usar las interrupciones.
Eres un crack amigo que manera de explicar gracias a este tutorial pude implementarlo en mi proyecto
Genial, saludos
Sos lo mejor de Inet, en Arduino!
Gracias por el comentario y la visita.
Saludos
Muy buen vídeo, excelente video, muchas gracias por compartir esa información tan detalladamente y con esos ejemplos demostrativos. Busque mucho y este ha sido el único video que he logrado entender de las interrupciones.
Excelente video. Yo le agregue al ultimo programa en el void setup, un Serial.begin y en void sensor hice el Serial.println, para ver como avanza la interrupcion.
Genial, gracias por el comentario y la visita.
Saludos
Excelente, mis felicitaciones
Muy buena la información
Gracias por el comentario.
Saludos
Excelente explicación en todo sentido , que mi Dios se lo pague...
amigo, gracias a ti estoy aprendiendo muchas cosas, gracias.
Genial, saludos
Grande Capo, mejor explicado, imposible
Gracias por el comentario y la visita.
Saludos
No entiendo por que en otros tutoriales de internet no enseñan sobre estas dos funciones, son escenciales para el uso de pulsadores y sensores que funcionan como tal. Muchas gracias por este aporte
Gracias por el comentario y la visita.
Saludos
Gracias por tu amable y esclarecedora respuesta.
Excelente tutorial......como siempre da gusto seguir tus videos tutoriales, los hacer ver muy fácil aunque en la practica me hacen patinar un poco.
Un libro sobre Arduino que puedas recomendar....
Mil gracias.
Gracias por el comentario, entre más práctica, más se aprende.
Sinceramente no podría recomendarte un libro ya que no he leido ninguno, claro que hay muchos, pero en mi caso con los conocimientos de electrónica, fue un tema más de programación que otra cosa y eso lo fui aprendiendo de diversos videos, tutoriales, foros.
Saludos
Excelente explicación, sos un gran docente amigo
Muy trabajado excelente tutorial gracias
Gracias por el comentario.
Saludos
Muy buena explicación. Enhorabuena
Gracias por el amable comentario.
Saludos
Buen video, todo bien explicado y detallado 👍
MUY BUEN VIDEO, EXCELENTE LA EXPLICACION Y EL DETALLE.
Gracias por el comentario.
Saludos
Hola, he vuelto a ver este tutorial, buscando un ejemplo de mandar a dormir al arduino para ahorrar bateria y despertarlo con una interrupción. Obviamente no lo he encontrado. Me he recorrido tus tutoriales y no encuentro ninguno sobre librerias de ahorro de energia. Se que hay por ahí algunos ejemplos, pero tengo que reconocer que eres el primero en consultar dudas de Arduino por la calidad de tu exposiciones. Te agradecería que si lo tienes a bien, puedas hacer algún que otro tutorial sobre la libreria lowpower y las implicaciones con las interrupciones. Gracias y felicidades por tus videos.
Hola, gracias por el comentario y la sugerencia.
Saludos
Este tiempo me está sentando muy bien
Excelente explicacion ! Gracias desde Chile
Gracias por el comentario.
Un saludo
Excelente video. Muy bien explicado.
Gracias por el comentario y la visita.
Saludos
este video es MAGICO
Excelentes tutoriales. Qué detalle! 👍🏻👍🏻👍🏻
he hecho un codigo en el que manejo dos motores paso a paso de forma que un joystick manejo los dos motores y simulo una grua de forma que moviendo el joystick de derecha a izquierda la grua gira en redondo y moviendo el joystick de arriba abajo el brazo de la grua sube y baja. Vale hasta ahi todo bien y funciona. ahora se me ocurrio incrementarle dos finales de carrea para subida y bajado con un fototransistor, hice el codigo y primero lo simule con pulsos de 5v y correcto. luego incremente el fototransistor y solo funcina para subida para bajada se viene abajo los 5 voltios de salida del sensor cuando detecta. configure la patilla 3 para el fin de carrea de bajada y la 2 para el fin de carrea de subida. he medido la intensidad que circula por el pin 3 cuando sube metiendo un pulso directo de 5 voltios desde arduino y hace bien la funcion pero circula 80mA hacia el pin muy elevado parece, pero hace bien la funcion. pero cuando le meto el fototransistor se biene abajo supongo porque no resiste la carga de 80mA. sin enbargo para la subida apenas consume nada. he puesto las pullup de 10k y todo correctamente. no lo entiendo y el codigo es calcado tanto para subir como para bajar. y lo hace para bajar en cualquier patilla que le configure. tendrias alguna explicacion.
Hola Eduardo, lamentablemente por cuestiones de tiempo libre no me es posible analizar código de proyectos, solo puedo responder a alguna cuestión puntual del capítulo.
Saludos
pero el codigo funciona lo que consume demasiado es la entrada donde se programa la condicion de parada. sea la entrada que sea. y solo para la condicion de giro contrahorario del paso a paso. me inclino mas por un problema electronico.
muy buena manera de explicar lo haces mas sencillo
Gracias por el comentario. Un saludo
Que lujos tus videos!
Gracias por el comentario y la visita.
Saludos
Muy buenas explicaciones, un agrado ver tus videos. Saludos
Gracias por la visita !
Que buen video...
Rapido y sencillo de aprender..
Gracias por el comentario. Saludos
Muy buena explicación, muchas gracias por compatir tus conocimientos
Gracias Ricardo por el comentario. Saludos
Que grande!! Lo entendí muy bien, muchas gracias!! Me sirvió bastante!
Gracias por el comentario, me alegro que encuentres el material de utilidad. Saludos
hahahaha
Simplemente gracias
Gracias por el comentario y la visita.
Saludos
maestro por fin aprendi interrupcion
Excelente proyecto
Gracias por el comentario y la visita.
Saludos
Gracias por la aportación!
Gracias por el comentario y la visita.
Saludos
Excelente contenido
muy ilustrativo felicidades, muchas gracias
Gracias Eduardo por tu comentario. Saludos
Mucha calidad, gracias!!!
Gracias por el comentario y la visita.
Saludos
Excelentes cursos, felicidades
Gracias por el comentario. Saludos
Excelente explicación
Eres un crack!
Gracias por compartir.
Excelente explicacion.
Felicitaciones !!!!!!
Slds.
Gracias por el comentario. Saludos
Estuvo interesante . Buen video
Excelente, viendo el video ya estaba pensando en que esto sirve perfectamente para hacer una parada de emergencia en un sistema mediante un botón o pulsador, o me equivoco? Luego con otro botón en el pin 3, compruebo que el botón 2 se haya desligado y reinicio el sistema.
Excelente maestro....
Muy buen video, gracias.
Muchas gracias por tu respuesta, pude solucionarlo con la funcion attachInterrupt, ahora tengo un programa para hacer que un led se encienda y se.apague pidiendo variar su.frecuencia de encendido apagado con un potenciometro, no que.no he podido lograr es q se ejecute sin tener que dejar presionado el led, es decir, que se haga la tarea presionando el.led una sola vez
Excelente!
Un crack la verdad 👌👌
Gracias por el comentario. Un saludo
Que facil haces que parezca todo.Saludos
Excelente
Gracias por el comentario.
Saludos
Excelente explicacion... una consulta.. si coloco un pulsador como parada de emergencia .. y con este detener motores para que no sigan funcionando... conviene hacer la lógica en la funcion isr ? O es muy larga atendiendo a lo que aconsejas que sean breves... y conviene que en la isr cambiemos el estado de una variable y luego en el loop con ese estado ya cambiado actuemos sobre los Enabled de los driver de motores? Gracias.. te sigo hace mucho tiempo y aprendí muchisimo...
Hola, gracias por el comentario, se suele implementar efectivamente con una interrupción que cambie el estado de una variable de control en el loop.
Saludos
Boa amigo. Irá me ajudar bastante em meu projeto. Obrigado por compartilhar conhecimento.
Fique bem 🙏
GRACIAS
Gracias por el comentario y la visita.
Saludos
Muchísimas gracias por los tutoriales. Tienes una forma de explicar que lo hace realmente accesible. Qué bonito el compartir conocimientos.
Creo que entendí una cosa, pero quiero contrastarla. Si tú inicias una función millis por fuera de la interrupción, ¿El tiempo en el que el programa entra en la función de interrupción no los tiene en cuenta el millis? Por ejemplo, si haces una millis para abrir una válvula cada 24h e interrupciones por X razón, todo ese tiempo transcurrido en las interrupciones te descuadraría de las 24 horas?
Muchas gracias y abrazos desde España :)
Hola, por ese motivo la función ISR debe ser lo más corta posible, en la mayoría de casos con cambiar el estado de una variable es suficiente, luego en el loop() se evalúa si la variable cambió y se toma una acción.
Saludos
Como siempre , muy buen video, tengo una consulta, cuantos niveles de anidacion de interrupciones se permite, es decir, si desde una interrupcion se puede antender otra interrupcion
Hola, gracias por el comentario, como se mostraba en la tabla del inicio del video las placas clásicas tiene dos pines para interrupciones asi que es poco probable que lleguen dos en simultáneo, al menos lo que pueda considerarse "simultáneo", por eso la ISR debe ser lo más breve posible.
Saludos
GENIAL!!!!
hola me está yendo muy bien tus videos.
Queria saber... podriamos hacer que la misma interrupción sumara y restara?¿como?
Gracias
Hola, la interrupción es un proceso que llama a la función ISR, en ella se puede tomar la acción que se necesite o simplemente cambiar el estado de una variable en el loop() y dentro del mismo tomar la acción.
Saludos
muchas gracias por su exelente curso estoy aprendiendo de un gran maestro, tengo un proyecto con un monedero electronico multimoneda usando interrupcciones solo que en el codigo le pongo una condicionante if segun el precio determinado de un producto pero no me lo respeta , me enciende un relee a la primer moneda que le deposite , me podria orientar cual seria mi error en el codigo? muchas gracias
muy bueno
Gracias por el comentario y la visita.
Saludos
hola muchas felicidades por el video, solo una pregunta el sensor efectivamente cuenta las vueltas solo que mi duda es si es necesario que pase un objeto justamente por en medio del sensor? te pregunto en el caso de la impresora sin problema pasa una simple cinta transparente con lineas de color negro asi interrumpe es as de luz y cuenta las vueltas, pero en el caso de un motor ahi que seria lo que podriamos pasar por medio del sensor para que realice el conteo por poner ese ejemplo? en los autos este lo traen en el cigueñal para contar las vueltas y a su vez la revoluciones pero no he visto pase por en medio algo? solo he visto que pasa con una proximidad minima, o este es otro tipo? muchas gracias y saludos desde mexico.
Hola, gracias por el comentario, este sensor en particular por su construcción require interrumpir la luz entre el emisor y el receptor infrarrojo, hay otros métodos para el caso de motores donde se usan sensores de efecto Hall por proximidad a un campo magnético.
Saludos
@@BitwiseAr hola gracias por tu atención antes que nada, y si tienes razón ese sensor ya lo habíamos visto en capítulos anteriores es simplemente un sensor de proximidad que simplemente al acercarse realiza el conteo muchas gracias y saludos seguiremos estudiando cuidate un abrazo.
gracias por este excelente curso que me està ayudando mucho a entender y programar Arduino. Quisiera hacer una pregunta: estoy proyectando un sistema de llenado de botellas. Me interesa que Arduino active un relè conectado a la bomba del agua cada vez que detecte la presencia la de la botella. Què sensor es el adecuado? Habia pensado uno de infrarrojos, con dos sensores que se colocarian separadamente en el espacio para la botella. Mi segunda pregunta es què sensor de interrupciòn se podria utilizar para que la bomba se detenga cuando la botella està llena? En teoria serian dos interrupciones: uno que detectaria la presencia de la botella y que activarìa la bomba. El segungo que la detendrìa cuando la botella estuviese llena. Te agradezco mucho tu ayuda.
Hola Roberto, me alegro que encuentres de utilidad el material. El tipo de sensor para detectar la botella dependería de si se coloca de a uno la botella o es parte de un sistema de cinta transportadora, un sensor infrarrojo podría funcionar pero tendrías que tener en cuenta que la botella vacia ya sea plástico o vidrio puede no reflejar del todo bien el haz de luz infrarroja.
Quizás por el propio peso de la botella un simple circuito interruptor con microswtich sería suficiente o utilizar ambos sistemas en simultáneo. Una vez detectada la botella un relé puede encender la bomba de llenado, luego un sensor del tipo caudalímetro podría monitorear la cantidad de líquido que circula para saber cuando se debe detener la bomba.
Debés tener en cuenta que sería una solución "casera" a un problema que es más del tipo industrial donde existen sistemas de control mucho más complejos que un simple Arduino y los sensores y sistemas de control mucho más sofisticados pero con esos sensores mencionados se podría armar algo.
Espero te sirva. Saludos
Hola estoy diseñando el código de una pequeña lavadora de piezas mecánicas para relojería, básicamente es un motor que gira a derecha durante 10 segundos y después izquierda otros 10 segundos pero la parada ha de ser manual mediante un interruptor. El problema es que este interruptor no debe cortar la corriente del arduino o el motor en ningún momento, lo quiero hacer por software es decir, aunque el ciclo de movimiento del motor haya comenzado en el momento de activar el interruptor se debería parar en seco y aparecer el correspondiente mensaje en un display lcd. He probado con interrupciones, la función while pero no se me ocurre como puedo pararlo todo instantáneamente saltándose los delays que hay en el código.
muchas gracias de antemano
Excelente video, pero tengo una duda se podría hacer lo mismo enviando comandos bluetooth, en ese caso en que modo debe ir la funcion de interrupcion?.... mi problema es el siguiente, estoy usando un módulo bluetooth hc-05 para controlar un led y un buzzer pasivo al mismo tiempo, por ejemplo desde mi celular yo apreto el boton on y se prende el led y se reproduce la melodía, pero al momento de querer apagarlo desde mi celular con el botón off de la app, no sucede nada, debo esperar a que acabe la melodía y luego de eso recién coge el comando para apagar el led y dejar de reproducir el buzzer pasivo, por esa razon me parecio interesante este video, ya que se me ocurrió que esto de interrupciones de arduinos puede ser la solución a mi problema, pero no se como implementarlo para que funcione, que comando debo poner y si se pone una condicional if en la funcion de interrupcion o como se hace.... Te doy las gracias de antemano, espero me puedas ayudar con mi problema.
Cuando surge una interrupción se deshabilitan todos los pines? Ejemplo, si tienes el led del pin 13 encendido y se activa una interrupción larga, el led se apaga mientras arduino atiende a la interrupción?
Siguiente cuestión, si la función de la intervención se demora un poco y aparece otra interrupción del mismo pin que pasa?
Hola, justamente se explica que la función ISR debe ser lo más corta posible, igual estamos hablando de microsegundos, atiende la interrupción y vuelve al flujo normal del programa, no afecta a los pines.
Saludos
Entiendo éso, pero es una recomendación para no afectar a los tiempos del programa principal. Pero qué pasa si quiero medir el ancho del pulso que ha causado la interrupción? La entrada analógica necesita tiempo. Y si quiero hacer varias medidas, un muestreo de dicha señal? Sé que la función delay() y millis() no están disponibles, pero si lo está la función micros () y se puede usar para hacer demoras....
Eso sería una interrupción larga así que mientras el programa principal está en pausa, que pasa con los pines? Y si surge otra interrupción mientras está en curso la interrupción?
Hola. Excelente trabajo. ¿Se pueden "anidar" interrupciones. ?Es decir, llamar a una interrupción desde otra.
Gracias.
Hola, las interrupciones llegan por un evento externo. Existen otro tipos de interrupciones por temporizadores analizada en el capítulo 77:
ua-cam.com/video/kI-jT-y1SKQ/v-deo.html
Saludos
@@BitwiseAr Muchas gracias. Entiendo por tu respuesta que no. No se pueden "anidar" entre ellas.
Hola, enhorabuena por tus videos, son muy instructivos. Una pregunta que no te he podido hacer en capítulos anteriores por tener los comentarios deshabilitados. Por qué a veces la protoboard es necesaria una veces si y otras veces no? Gracias!!!!
Hola, gracias por el comentario, todos los videos tienen sus comentarios habilitados, no se el motivo por el cual no hubieras sido capaz de hacer un comentario en un video. Protoboard se usa por comodidad si conviene que el sensor quede en una posición específica o cuando hay mucha cantidad de conexiones.
Saludos
Hola saludos de colombia, de antemano agradecerte por el tiempo que inviertes para compartir tu conocimiento, me ha sido de gran ayuda el material, quisiera hacerte una pregunta, si yo tengo un programa con varios ciclos, uno de los ciclos es activar mediante un pulsador un actuador, que la activacion dure 15 seg y despues apagarse, si quiero interrumpir de manera definitiva esa instruccion lo podria hacer un esta funcion?, porque lo intente evaluando el.estado del pulsador (pulsador=1-pulsador) y se queda activado, pienso yo por la duracion del delay, apreciaria tu ayuda, saludos.
Hola, gracias por el comentario. El problema surge en que cuando ingresa la interrupción estando dentro del delay() la función ISR se ejecuta sin problemas pero vuelve al programa exactamente al mismo punto donde se recibió la interrupción, con lo cual termina lo que falta del delay() para luego apagar el relé.
Lo que podrías hacer es dentro de la ISR (que se trata de mantenerla lo más breve posible) desactivar ahí mismo el relé, luego sigue con el delay() pero ya habrá cumplido el objetivo de apagar en cualquier momento.
Saludos
Otra cuestion: Desaconsejas utilizar la funcion Serial.print() en una funcion ISR pero ¿Puede hacerse?. Yo tengo previsto usar Serial.read(dato) para leer una entrada por Rx.
Gracias por tu trabajo.
Hola, correcto, la función ISR debe ser lo más breve posible, cambiar el estado de una variable que luego en el loop() pueda leerse y allí tomar la acción.
Saludos
Hola, buen video, se podría aplicar el codigo de igual forma para un contador de rpm con un sensor de efecto hall por sobre el que pasa un iman usando rising?
Hola, gracias por el comentario, el video se centra en el concepto de las interrupciones con lo cual entendido el tema se puede aplicar con diversos sensores, como ser uno de efecto hall.
Saludos
Excelente video como siempre, una pregunta, por qué con un plastico transparente no activa el sensor?, tengo entendido que el plastico es trasparente a la luz visible pero para la luz infrarroja es opaco, lo digo porque las camaras indrarrojas no ven atraves de estos plasticos tampoco a traves de vidirio o incluso agua.
Hola, sinceramente no sabría decirte.
Saludos
Genial ++++
Gracias por el comentario y la visita.
Saludos
hola!! muy bueno y muy adictivo te felicito!! consulta hay dos interruciones tienen prioridad? o atiende la primera y luego la segunda? independientemente de la que llega primero
Hola, es altamente improbable que ocurren dos en simultáneo, estaríamos hablando en el orden de microsegundos.
Saludos
Si usáramos 2 de estos interruptores, podría hacerse un encoder óptico, como los que se usaban en los mouse antiguamente? En tal caso, cual seria la diferencia de estos interruptores, con el modelo FC03sgk? Muy buen video!! Sos un gran maestro!!
Hola. Acabo de descubrir este curso y es excelente la manera de exponer los temas. Lo cazas todo a la primera. He estado revisando la playlist y quería preguntarte si tienes algún vídeo de estas características que hable del modo Sleep en Arduino. Tengo un par de proyectos con baterías y me gustaría que explicases a tu manera este tema para solventar algunas dudas. De nuevo gracias por todo este material. Saludos.
Hola, gracias por el comentario, no por el momento pero es un tema que ya lo tengo en el listado de temas por tratar en un futuro capítulo.
Saludos
De acuerdo. Iré mirando para ver cuando sale. Muchas gracias.
El video es muy claro! Pero tengo Una consulta práctica . Al enchufar/desenchufar o conectar/desconectar un artefacto eléctrico cerca del Arduino, genera pulsos de interrupción entregando datos erróneos.
Esto tiene solución ? Gracias
Hola, no sabría indicarte el motivo por el cual sucede en tu caso pero no está relacionado al tema "interrupciones" del capítulo.
Saludos
Hola! Gracias por responder ! Creo que si afecta al capítulo ya que en la práctica afecta al funcionamiento. En mi caso es crítico el uso de interrupciones pero se ve afectado por cualquier interferencia eléctrica.
Tenes tutorial de conexión serie con otro dispositivo ? Porque vi todos tus videos y no encontré pero tal vez tenes.
Gracias
Hola una pregunta ,si yo creo una interrupción "attachInterrupt(digitalPinToInterrupt(A), FX, LOW)" ,si por ejemplo mediante un switch hago que el PIN (A) tenga un valor LOW por un tiempo considerable ,entonces la funcion FX se repetiria una y otra ves como un loop sin dejar que el VOID LOOP () principal continue?O en todo caso que deberia suceder
muy buen video!!! pero tengo una duda... esto se podria usar para un final de carrera?? y de que manera??? gracias y saludos!!
Hola, lo que se describe es el principio de funcionamiento de las interrupciones, en este caso mediante el fotointerruptor pero puede ser también un interruptor mecánico, al llegar la interrupción coloca una variable en un valor que luego puede leerse desde el loop() y asi tomar una acción.
Saludos
Muchas gracias, muy buen video.
Me gustaria saber como podria generar una interrupción, no a partir de una señal externa ni a un timer sino al cumplimiento de algunos valores predefinidos en algunas variables durante el proceso, es eso posible? gracias por el apoyo.
Hola, la interrupción esta pensada para cuestiones externas, si es por programación entonces no se necesita y se puede resolver consultando el valor de una variable y tomar una acción mediante una función.
Saludos
@@BitwiseAr Muchas gracias, un abrazo.
execlente video, una consulta vi en algunos codigos que usan TCCR1A y 1B para modificar el periodo de los pwm, podiras hacer un video de este tipo, y una pregunta si se puede modificar los periodos de los pwm, cual es el periodo de defecto q tiene los pwm?
Hola, gracias por el comentario, en el siguiente enlace encontrarás información completa del tema:
www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM
Saludos
gracias por tus videos, como hago para utilizar varios pines como interrupcion en arduino nano? creo que por cambio de estado pero no se como utilizarlo, puedes ayudarme por favor?
hola. grandes explicaciones. tengo una duda:
en el arduino UNO unicamente se pueden conectar dos sensores??
Hola, no, se pueden conectar decenas de sensores, no solo a las entradas/salidas digitales, sino también a las entradas analógicas y mediante bus serie como I2C o SPI
Saludos
Nuevamente felicitaciones por el video y la explicación muy clara. Pero, quiero hacer una consulta: Entiendo que con el uso de las interrupciones, es casi IMPOSIBLE que una interrupción no sea detectada. Pero si yo no uso interrupciones, el programa está ejecutando otra acción y en un momento dado, tengo una entrada detectada (por ejemplo un pulsador), pero que pasa, si cuandoeste pulsador esta siendo presionado, el programa está ejecutando otra acción; entonces, este pulsador NO LO DETECTA el Arduino. Apelo a tu enorme conocimiento de programación y electrónica, para preguntarte : DE QUE MANERA, ESTA ACCIÓN EN ESE PULSADOR NO SE PIERDA, de tal manera de que el Arduino, una vez que termine lo que estaba haciendo, DETECTE este pulsador. Lógicamente, estamos hablando de milisegundos de tiempo, no es que vaya a pasar segundos. Gracias por tu respuesta.
Hola, la ejecución del programa en el loop() es secuencial, si hubiese una demora de por ejemplo 2 segundos y en ese momento se presiona el pulsador no lo vo a ver, si no se usan interrupciones entonces hay que asegurarse de que no hayan demoras grandes dentro del código, de hecho sería no utilizar la función delay() y usar millis().
Saludos
El primer ejemplo, si se quita el If y se deja solo Serial.prinln y la función sensora hace lo mismo, va sumando interrupciones.
Hola, si no se coloca el condicional estara escribiendo en el monitor serie de forma constante el último valor de contador, la idea es que solo muestre si existe un cambio.
Saludos
Hola me gusto tu video hay manera de pasar tu conteo de interrupciones a un display lcd gracias
Hola, en el capítulo 10 se describe el uso del módulo LCD y como escribir en el mismo, para mostrar el número de interrupciones solo tendrás que escribir el valor de CONTADOR con la función print()
Saludos
Necesito sacarme la duda. La voz está ralentizada no? Todos los videos los estoy viendo a 1.5, pero parece estar muy cerca de 1.25 la voz normal
Magnifico tutorial y una explicación insuperable.Tengo una pregunta ,Se puede asignar un orden de prioridad para cuando se usen mas de un pin para las interrupciones y de ser posible como seria? saludos desde Rep. Dominicana.
Hola, gracias por el comentario. Como se explica en el capítulo depende del tipo de modelo de placa, UNO por ejemplo tiene sólo dos pines para interrupciones externas, otras placas tienen más.
Las interrupciones dificilmente lleguen exactamente al mismo tiempo como para establecer un nivel de prioridad, siempre una entrará primero que la otra (u otras), aunque sea por diferencia de microsegundos, por eso no se aplica un sistema de prioridades.
Saludos
@@BitwiseAr Gracias por la pronta respuesta a mi pregunta, espero continues realizando tutoriales sobre este tema tan interesante que es arduino.
Se pueden usar pines 4,5,6 y 7 en Nano o Uno?... ej declarando una variable para el estado anterior de estos pines , y en el loop se compare y actualice con un if estado vs read ( pensando como ej para varios sensores magnéticos con conexión pullup al pin y gnd al magnético )
Hola, no comprendo bien la pregunta, este capítulo es sobre interrupciones externas, de las cuales hay solo 2 disponibles para Uno o Nano que se basan en el mismo micro controlador 328p.
Saludos
Execelente video, tengo una pregunta, en vez del sensor que estás utilizando estoy utlizando pulsadores pero cada vez que pulso se imprimen 3 numeros seguidos y así, estoy colocando su respectivas resistencias pull up pero no me funciona, pero creo que algo estoy haciendo mal. Que podría ser?
Hola, gracias por el comentario, el comportamiento es el esperado al usar un pulsador ya que el mismo genera rebotes, al presionar se genera más de un pulso y como las interrupciones son muy rápidas las puede leer. Por ese motivo se utilizó en el ejemplo un interruptor óptico.
Si tu proyecto requiere usar interrupciones con un circuito que genera rebotes tendrás que solucionarlo mediante código, por ejemplo detectar la primer interrupción y consultar si hay pasado al menos 20 mseg., si llegan otras interrupciones en ese período significa que son rebotes y se pueden desestimar.
Saludos
Muy amable por tu sabiduría muchas gracias 👌🏻😁
Hola Muy bueno su video... Pero tengo un problema con la aplicacion en un ESP8266 WiFi . Que pin utilizaria , ya que tengo un error a la salida? Gracias
Hola, el curso se centra en el uso de modelos clásicos de Arduino (ATmega 328p) con lo cual el ESP8266 tiene un hardware diferente y código y conexiones pueden ser diferentes a las mostradas.
Saludos
Excelente video,
Tengo un par de preguntas, ¿qué ocurre si dura mucho el ISR?, ¿es probable de que no funcione una sentencia condicional?
Gracias.
Hola Dan, gracias por el comentario, un condicional funcionará sin problemas y en la mayoría de los casos no hay inconvenientes, es solo cuando se necesita hacer cálculos de diferencia de tiempos o generar señales con mucha precisión ya que no se sabe en qué momento puede "caer" una interrupción.
Arduino no puede realizar un procesamiento simultáneo de la información, por eso como se explica, cuando llega la interrupción deja todo, atiende la misma y luego vuelvo al punto donde dejó.
Saludos
Bitwise muchísimas gracias :)
Hola, como se hace para que quede un led titilando luego de que ocurra la interrupción? . Gracias
profe e notado que solo función en modo RISINNG de bajo a alto , cuando uso Falling igual cambia de bajo a alto.