Arduino: Interrupciones hardware | Tech Krowd
HTML-код
- Опубликовано: 6 сен 2024
- ¿Qué son las interrupciones hardware en Arduino y como usarlas?
Documentación oficial interrupciones: www.arduino.cc...
Pulsador sin interrupciones: • Arduino: Cómo encender...
Más cosas en la web: www.techkrowd.com
En Twitter: / techkrowd
En Facebook: / techkrowd
En Google+: plus.google.co... Наука
Por fin comprendí, después de ver varios tutoriales, el tuyo fue sencillo y el mas comprensible... muchas gracias...
Hola Techa, muchas gracias por compartir estos videos de verdad ayudan muchisimo, yo necesitaria esa funcion, pero quizá mas compleja ya que tengo luces que las quiero activar por 3 mandos diferentes, manual(interruptor), automático(sensores) y a distancia por bluetooth, es para mi tesis de domótica, por separados andan perfectos los scketch el problema es cuando los junto, muchas gracias.
//suponiendo que los led están conectados en los pines 2 y 3 digitales
int LED1 = 3;
int LED2 = 5;
//y los pulsadores en los pines 4 y 5
int PULSADOR1 = 2;
int PULSADOR2 = 4;
//dos variables para controlar el estado de los pulsadores
int valor1 =LOW;
int valor2 = LOW;
void setup() {
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(PULSADOR1, INPUT);
pinMode(PULSADOR2, INPUT);
}
void loop() {
//activar releay con datos
char dato = Serial.read();
if(dato == 'a')digitalWrite(LED3,HIGH);
if(dato == 'A')digitalWrite(LED3,LOW);
//inicialmente los pulsadores no están presionados
valor1 = LOW;
valor2 = LOW;
//se espera a que se presione alguno de los pulsadores
do{
valor1 = digitalRead(PULSADOR1);
valor2 = digitalRead(PULSADOR2);
//si los pulsadores no están presionados las variables
//tienen valor LOW, si las dos tienen este valor se
//vuelve a leer los pines hasta que cambie el valor de alguna
}while(valor1 == LOW && valor2 == LOW);
if(valor1 == HIGH){
//se ha presionado el pulsador 1
//se cambia el valor del LED1
//si estaba encendido se apaga y si estaba
//apagado se enciende
digitalWrite(LED1, !digitalRead(LED1));
valor1 = LOW; //se vuelve a dejar la variable a LOW
}
//lo mismo con el valor del segundo pulsador
if(valor2 == HIGH){
//se ha presionado el pulsador 1
digitalWrite(LED2, !digitalRead(LED2));
valor2 = LOW;
}
delay(500);
}
Un vídeo espectacular. Gracias! Se te olvidó comentar cuál es el otro pin que soporta interrupciones
Muy bueno. Si puedes hacer una interrupción en el cual la secuencia en un led sea diferente, es decir prendido 1s y apagado 2s. Desde ya muchas gracias
Muchas gracias por compartir, excelente exposición, saludos desde México.
Genial, había leído mucha teoría sobre ISR/AVR que desde luego con este gran aporte finalizo la lección... muy bueno...
Saludos desde Colombia.
Excelentes sus videos tutoriales.
Me gustaría proponerte un sketch, un poco inusual en la web; obviamente, usando las interrupciones, que son el tema que se está tratando.
La idea consiste, en un circuito, en el cual se tenga un par de pulsadores, digamos en dos pines que acepten interrupcion.
Cuando el pulsador1, es activado, se le suma a un contador, una cantidad de 100 unidades; cuando se activa el pulsador2, el mismo contador, se incrementa en 1000 unidades. Cuando el contador, llega a un valor limite, no acepta más las entradas de los pulsadores. Aqui la cuestión relevante, es usar un contador, pero no implementado usando instrucciones for anidadas, sino, una rutina que me convierta el valor binario del registro contador, en bcd, para poder visualizarlo fácilmente, usando, puede ser un max7219.
La verdad, no creo que se pueda utilizar el contador implementado con for anidado, para que sea incrementado en más de una unidad por vez.
Gracias por el valioso tiempo, que utiliza para compartir, el conocimiento que domina y que la apasiona.
Estoy aprendiendo mucho con sus vídeso. Tengo que probar la librería timeOn para ver más cosas. Gracias, de verdad. Javier.
Hola, muy buen video y super claro de entender.
Podrías hacer un tutorial en el que se utilicen interrupciones y la funcion millis() para saber el tiempo que ha transcurrido desde que se presiona un botón pulsador hasta que se presiona el mismo u otro botón pulsador?
Esplicarnos también como trabaja la función millis().
Gracias.
Un saludo desde Colombia. Muchas gracias por los tutoriales de arduino, he aprendido mucho y este video me ha ayudado para un proyecto que estoy desarrollando.
GRACIAS!!!
Excelente video, espero puedas responder la unica duda que me quedo, ¿como hago para utilizar este metodo en una Keypad?
Muy claro, me gustaría disponer de una lista de tus videos de programación en ARDUINO. Gracias
Genia! El mejor video del tema.
Sabes cuáles son los pines que soportan interrupciones en en Arduino mega?
Muy bien explicado, como siempre, pero me quedo con la miel en los labios, se que existen otras instrucciones como noInterrupts() , detachInterrupt(), que no me queda claro las diferencias, entiendo que la primera deshabilita todas y la segunda una especifica, pero ¿ como se vuelven a activar ?, cuando hay que utilizar alguna? . Los delay() con interrupciones, etc., Si has hecho algo mas sobre interrupciones, me gustaría conocer el link , porque no he visto ninguno. Si no lo has hecho, podría ser una invitación a que lo pongas en tu agenda. Gracias por la claridad en la exposición de tus micro tutoriales.
Hola. Excelente video
Intenté hacer lo del vídeo pero en lugar de un LED pretendo encender un motor nema 17 con pololu y no lo he conseguido. Que tengo que hacer?
Gracias y saludos!
Muchas gracias por tus videos, se aprende un montón. Si pudieras aclararme una cosa... Me parece entender que las interrupciones no funcionarían con un sensor continuo sin valor de cambio de estado, es decir, no se pueden usar a modo de algo tan sencillo como un termostato o higrostato (sensor temperatura /humedad de entrada y relé activado por interrupción en valor de consigna). ¿Es así? Gracias.
Hola, por qué la instrucción attachinterrupt se coloca en la función setup y no en la loop?, Lo pregunto porque void setup se ejecuta una sola vez, gracias
Gracias por tus videos, la verdad que son muy interesante porque empleas un código muy diferente a lo comúnmente ves por el resto de canales, un saludos desde Perú. Gracias.
Hola, muy buen video. Yo tambien tengo problemas con los rebotes del pulsador en esta practica y no se me ocurre como incorporar un antirrebote a la interrupcion. Lo unico que se me ocure es conectar el pulsador en otro pin, aplicar el antirrebote y luego mandar la señal al pin 2 ya depurada, no se si funcionara. Muchas gracias por el video.
me encantan tus videos y os entiendo perfectamente, muchas gracias.
llevo mucho tiempo buscando info sobre interrupciones internas pero nada, me encantaria que trataras en tema en uno de tus videos please.
saludos linda: e mirado todos tus tutoriales me an fasinado por lo que me imagino que eres profesora ,lo esplicas de una forma facil
entendiendo sabes mucho de programacion.
mi pregunta seria posible como relizar una cnc para poder realizar circuitos impresos pbc con toda su programacion.
sigue adelante que tu enseñanza la copean muchos ya que eres muy pasiente.
Gracias por tu ayuda, no sabes lo que te lo agradezco que te "ocupes" de nosotros. :)
Hola. Gracias por tus vídeos. Son muy interesantes. Me gustaría que hicieras un montaje con el código para encender secuencialmente una serie de leds empleando dos botones de un mando a distancia. Uno de ellos para avanzar en el sentido del encendido y el otro para retroceder y, si es posible, emplear otra dos teclas diferentes para aumentar y disminuir la intensidad de iluminación de los leds. Muchas gracias.
Excelente vídeo, claro y preciso. Como dices el código termina siendo más claro y limpio.
Gracias por compartir, cordial saludo.
Excelente video, la explicación es perfecta , una pregunta , para activar un motor a pasos unipolar es similar a tu ejemplo solo que en vez de led necesito activar un motor a pasos espero me puedas ayudar de verdad te lo agradecería bastante , saludos y gracias por tu tiempo felicidades por tu canal es de mucha ayuda.
Hola. Te saludo desde Argentina. Gracias por ocupar tu tiempo en los que menos sabemos. Mi consulta es la siguiente: ¿Cuantas "distintas" interrupciones podemos realizar en nuestra placa?. por ahí lei que no más de dos ¿esto es así? Te deseo lo mejor.
Excelente explicación y es posible hacer interrupciones en el attiny85. Gracias
Entradas analógicas para interrupciones?
Muy interesantes tus vídeos muchas gracias por la información, disculpa como podemos en las interrupciones manejar la parte del anti-rebote
Muchas gracias por tus didácticas explicaciones. Tengo una duda, visto que el sketch usa solo la declaración inicial y la interrupción, es necesario incluir la sentencia dentro del void loop() ?
Desde el punto de vista lógico no le encuentro sentido pero tal vez hay algún requerimiento técnico.
Que sucede si no la incluyes?
Muchas gracias y adelante!
Me ayudaste mucho para poder entender las interrupciones en arduino, saluditos
la mejor explicando arduino, gracias por salvarme el semestre ;P
hola buenas los video son estupendo y creo que usted puede ayudarme en mi cometido,tengo un gps tomtom vio yo estoy instalándolo en el quadro mi moto haora necesito que el gps se encienda a conectar corriente , para eso me an dicho que haciendo un puente con una residencia que dal el on al detectar corrientes nel boton de encendido, puede ser cierto y si lo es podría explicármelo un poco más detalladamente? muchísimas gracias de antemano
hola, te saludo desde Mexico excelente tu explicación gracias por compartir tus conocimientos
Excelentes tus videos!!! si quisiera encender y apagar un led con un sensor IR de obstaculos, aplicando interrupciones. Como seria? Mil gracias, saludos desde BS AS
Excelentes tus videos Sonia. Saludos fraternos desde Buenos Aires, Argentina
de los mejores videos de Arduino, exelente
Hola son excelentes tus vídeos. Estoy intentando modificar GRBL 0.8 c. Este ya está modificado para usar solo los ejes x e y con motores unipolar, con ULN 2003. Utiluza la escritura de los puertos D y C. Quisiera agregar una entrada analógica para un potenciómetro y una salida Pwm para controlar la temperatura de un filamento de nicrom. Disculpa, sabes si podré hacerlo?
tks por el tiempo que le dedicas
Hola. ¿Dónde puedo encontrar esos cables conectores? Busco unos de calidad porque los chinos son lamentables. Gracias.
hola genia !! quiero mostrar números fijos en una matriz de 8x8 con un pulsador pero no se como hacer la interrupción ya que cada dígito es una función .
estoy usando la librería LedControl.h
mi intención es ir mostrando cada dígito con el pulsador .
en ningun canal muestran como usar una matriz con pulsadores , solo te muestran mensajes en movimiento y nada mas .
si puedes hacer un video referido a eso seria marivilloso .
gracias
@@Frank-h7c, 😂 ya lo solucione igualmente
He probado a medir frecuencia con interrupciones de hardware y funciona, estoy midiendo 1000 ciclos con un contador y la función micros(), y frecuencia de 74KHz. La pregunta es, es malo para el Arduino hacer 74000 interrupciones por segundo?
Tus vídeos son fantásticos :D Saludos desde Bolivia!
muchas gracias :)
Un 7 la explicación! sube más !
muy buen video, tengo una pregunta, yo deseo un control para una incubadora que se active un ventilador a 28 grados y que se desactive cuando haya descendido tres grados, utilizando un sensor de temperatura, como se haría la función para un arduino?
RESPONDER
Muchas gracias por los videos. Te explicas excelentemente.
Excelente tutorial!
gracias por ampliar las letras :)
hola, muy interesante
si tengo una secuencia de relevo como utilizar esta función para detenerla en cualquier momento?
Uno de los mejores canales, gracias
muy buen aporte, gracias
Tengo una duda, estoy utilizando la función para cambiar una secuencia de leds pero el problema reside en el anti rebote del pulsador puesto que hay veces que a la hora de hacer el attacchInterrupt me cuenta dos veces o tres en vez de una. tu crees que se podría hacer de manera digital un anti rebote para el pulsador o habría que hacerlo por componentes?
me confundes en una parte cuando conectas la resistencia una va a tierra y la otra al arduino y el pulsador a que lo conectas en cada pata? gracias
Buenas tardes, excelente explicación, queria saber si hay forma de que me puedas ayudar en un programa que no me queda, espero contar con su ayuda, gracias.
Cual es la diferencia entre digital read e interrupciones?
No se si ya lo explicaste y no lo entendí xd
Hola, queria conectar un PIR con una targeta Arduino UNO, y una salida a un rele y que este se encienda y apague 10 veces. que el rele empiese la cuenta cada vez que se activa el PIR.
No se como hacer el código.
De cuanto es el valor de la resistencia, se que es algo facil, pero cuanto es el valor que tu colocas o el valor ideal.
ni siquiera mi profesor de electrónica podría dar una demostración tan buena
Hola, buen vídeo, tengo una consulta , ¿por qué el pulsador lo declaraste simplemente como INPUT y no como INPUT_PULLUP? .. ojala puedas contestar, saludos.
Exelentes videos Tech Krowd, una pregunta: si quisieras trabajar estas interrupciones con bluethoot como seria? . Un ejemplo tengo un sensor ultrasonico que me da la distancia cada segundo a travez de bluethoot , ahora como puedo prender y apagar un LED de manera simultanea, osea que me lea la disntancia cada segundo y si envio un dato a travez del bluethoot se encienda y apague el led sin afectar el sensor. gracias de antemano :)
Este video es genial muchas gracias.
podrías mirar el botón en el mismo loop que ejecuta la aplicación ppal...???
Saludos. Muy buenos vídeos.
Tengo una inquietud, qué sucede con los rebotes de los pulsadores, cuando se trabaja con interrupciones.
Muchas gracias por su respuesta.
Pues que te da la risa... no en serio yo tambien me lo pregunto. Si utilizas millis(), en su valor anterior y actual (cuando cambia de Flanco el pulsador), el rebote sigue estando... el debounce por software se usa millis. Por hardware hay varias opciones. Con 50ms es mas que suficiente con millis().
El tema es que actualizar el valor de millis se haria en cada ciclo del void loop o de otro void dentro del loop.
Todavia no entiendo para que sirve las interrupciones y he visto el video.
excelente video, te Felicito gracias por compartir tus conocimientos, eso si, podrias adelantar un poco de informacion del proyecto no? quisas de que trata. xP
Este es el proyecto: ruclips.net/video/PcHLd4BGpt0/видео.html
Gracias por comentar :)
Muchas gracias Buenos videos buen material.
¿Que ventaja ofrece la interrupcion frente a un if?
tomberi 211
interrupcion te da capacidad multitarea
su poder se aprecia si tenes que hacer varias (mas de 8 +-) al "mismo tiempo"
entonces para hacer cualquier cosa con arduino, se necesita hardware? no se puede conectar directamente? esque no lo tengo
Estimada desde Uruguay le envió mi saludos, la sigo por youtube y ya de paso la felicita por los videos que realiza,
son de mucha ayuda. Me gustaria pedirle ayuda con un proyecto en un arduino uno, necesito lo siguiente (lo voy a expresar lo mejor que pueda): suponiendo que pin 2 y pin 3 son entradas de señal y pin 13 salida,
Si pin 2 se pone en high arduino debera empezar un conteo de 10 segundos, si durante ese tiempo pin 2 no se pone en high arduino pone pin 13 en high, pero si pin 3 durante ese tiempo se pone en high entonces arduino para el conteo y vuelve a la espera de que pin 2 este en estado high para comensar de nuevo.
No he podido encontrar la función que me sirva para esto.
¿me podrias ayudar por favor?
gracias.
Hola, que fue de ti SoniX?
muy buen video muchas, me encantan tus vídeos gracias, felicidades eres muy buena, en esto..
Hola soy nuevo en el mundo Arduino y tengo un problema con un proyecto. Es una alarma por corte de haz infrarrojos que hago con una interrupción como he aprendido con este video :) El problema es que para restablecerla he añadido una lectura de un mando a distancia. Lo he probado de mil maneras...que si en una función...que si en el loop..pero solo se restablece una vez..al siguiente "disparo" de la alarma el mando no funciona. Sé que es un poco lío pero agradecería algún apunte
Tengo que hacer un trabajo para el instituto me piden que funcione un contador de 7 segmentos y un semáforo de vehículos coordinado con uno de peatones. Por separado lo se configurar con arduino uno R3 y su programa pero me piden que tienen que funcionar simultáneamente los dos y la luz ámbar del semáforo tiene que parpadear antes de su correspondiente cambio a verde y aquí es donde estoy perdido no se si es posible y como. ¿ puedes indicarme porfavor? Seria un programa con dos funciones simultáneas
Contador y semaforo simultáneamente sin pulsador con arduino uno
en que momento usas la variable que se llama INTERRUPCION ?
hola, buen programa, gracias, pero ,como podría eliminar los rebotes del pulsador utilizando interrupciones???, agradecería tu ayuda #TechKrowd
Me encantan tus videos. Gracias
que bien explicado mui buen video
muy claro
por eso es que te amooooooooo.......... me sacaste de una gran duda !!!!!! ejejejejejjejejejejejej grax! grax! grax!
y la interrupcion funciona mientras esta ejecutando otras cosas? como sacarme de un delay
hola me he realizado el codigo completo y no me ha funcionado, tengo un arduino, infiduino que me comprado desde china no se si es eso o que, se carga el codigo pero no hace nada
Como haces el anti-rebote?
muy buenos tus videos
hola, podrías hacer un vídeo de como crear un menú en arduino y una lcd
Mírate un vídeo que colgué como aporte, en un futuro próximo cuelgo sobre como se realizó los menús...
pues hace un año y no has puesto nada de menús ni nada, tu video más reciente de youtube es de hace tres años.
Eres la mejor!!!!
Una Genia!!!!
buenas.. que pines del arduino mega son los q reciben interrupciones
2 3 21 20 19 18
Gracias ! :)
muchas gracias me salvaste :D
no me sale lo intente mil veces y no resulta.
te amoo!
Disculpa muy buen video, quisiera que alguien me ayude y tengo rato con este problema, cuando voy a subir la programacion al Arduino me dice missing filename after '-o', ¿alguien me puede ayudar?
¿Has seleccionado el modelo de la placa y el puerto en el IDE? Posiblemente sea por eso.
me enamore :'v
Vuelve :(
me enamoré x2
la interrupcion te permite hacer varias tareas "al mismo tiempo"
ese es lo interesante de las interrupciones
Muy buenos tus videos ! Gracias