Arduino Interrupts Tutorial

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ธ.ค. 2024

ความคิดเห็น • 290

  • @Educ8s
    @Educ8s  2 ปีที่แล้ว +5

    I hope you took away lots from this video and you managed to understand how interrupts work. Let me know below!
    PS. WANT TO LEARN CODING? CHECK MY NEW TH-cam CHANNEL!
    bit.ly/3tku2n0

    • @paulpixzy5297
      @paulpixzy5297 2 ปีที่แล้ว +1

      Please ! How can I use this one push button to turn on and off the whole system ,example inverter control board to turn on when pressed and also when off ?? Please help

    • @symontorres3952
      @symontorres3952 2 ปีที่แล้ว +1

      Can i adjust the 10 secondd to .5 millis? Using the potentiometer of PIR

  • @cw4608
    @cw4608 4 ปีที่แล้ว +2

    ....so you check your mailbox every ten minutes. Best example of how interrupts work that I have heard. Thank you.

  • @DaveBuildsThings
    @DaveBuildsThings 7 ปีที่แล้ว +7

    I've always had a hard time understanding how to use and program interrupts. Best description of interrupts I have seen yet. Simple and elegant. Thanks.

  • @joedempseysr.3376
    @joedempseysr.3376 7 ปีที่แล้ว +60

    To show the true power of interrupts write a loop to blink an LED once per second. Then use the same code using the sensor to turn a second LED on or off by interrupt as you have done here. The demonstration will show how you can do two things at once using interrupts! Please show this on a future video.
    Thanks for all your good work! I thoroughly enjoy your videos! Your pace and explanations are outstanding!

  • @theambient1
    @theambient1 6 ปีที่แล้ว +52

    "without any further delay let's get started!"
    I see what you did there... I see it!
    kudos to you Mr. educ8s!

  • @caffeinatedinsanity2324
    @caffeinatedinsanity2324 5 ปีที่แล้ว +7

    Just a little notice at the end part that you could have only used one interrupt on CHANGE mode and if the state of the interrupt pin is high, turn it on. If low, turn it off. It's a good idea to try and save the use of interrupt pins as much as possible, especially on an Uno.

  • @tbyers31
    @tbyers31 7 ปีที่แล้ว +14

    This is a fantastic video. Very clear and easy to follow. The pace of your teaching was perfect and the graphic illustrations some of the best to make this understandable. I will apply this technique to a water alarm I have planned. I want the moisture sensor to wake up the arduino and send an alarm via wifi or sms. Thank you!

  • @nolantaylor1760
    @nolantaylor1760 9 หลายเดือนก่อน

    I am taking your tuition seriously. I am creating a control algorithm for an Arduino Nano that has two hardware interrupts(input from Photo_interrupter, and input from Photo Beam detector parallel with a Push_Button switch) 2 Software Interrupts(Counter resets). Thank you for the clear explanations.

  • @karlsangree
    @karlsangree 4 หลายเดือนก่อน

    Best explanation of interrupts I've heard. It's a well-done video with easy-to-follow instructions. I must admit I had to back up and turn on subtitles on in certain sections. I've worked with Arduinos for a while now and never heard the term "distal pin" before. After turning on subtitles I realized it was "digital pin" and suddenly everything made sense. 😄How is this the first time I've heard this guy? Now I have to check the rest of his videos. Good bye productive afternoon! lol

  • @jimstarr5840
    @jimstarr5840 6 ปีที่แล้ว +1

    Thank you. I’m working on my first project that is battery powered and was looking for a good way to save power. This is exactly what the doctor ordered.

  • @kasskon
    @kasskon 7 ปีที่แล้ว +2

    φιλε πολυ καλος αυτο ηταν απο τα πιο ενδιαφεροντα που εχεις κανει με την μεθοδο των διακοπών γιατι ειναι πολυ χρησιμο πολύ καλή δουλειά συνέχισε :D

  • @Mailmartinviljoen
    @Mailmartinviljoen 2 ปีที่แล้ว +1

    Thanks for this explanation. I successfully built an NES controller using an ESP32 that will mimic an 8-Bit shift register. It works on an actual Orgina Nintendo console.😀

  • @note9redmi17
    @note9redmi17 6 หลายเดือนก่อน

    Thank you for the great video. For the second PIR motion detect example, it can be simplified by using only one interrupt (digital pin 2) to control the led on/off. The following modified code works very well:
    #include "LowPower.h"
    #define PIRmotion 2
    #define LedPin 13
    void setup() {
    pinMode(LedPin,OUTPUT);
    pinMode(PIRmotion,INPUT);
    attachInterrupt(digitalPinToInterrupt(PIRmotion),OutputLED,CHANGE);
    }
    void loop() {
    LowPower.powerDown(SLEEP_FOREVER , ADC_OFF, BOD_OFF);
    }
    void OutputLED(){
    digitalWrite(LedPin,digitalRead(PIRmotion));
    }

  • @kevinbyrne4538
    @kevinbyrne4538 7 ปีที่แล้ว

    Simple, clear explanation of how to use interrupts with an Arduino. Perfect for dummies like me.

  • @springwoodcottage4248
    @springwoodcottage4248 7 ปีที่แล้ว +1

    By far the best tutorial on interrupts I have seen & I have watched & read very many. Thank you so much for sharing this which is an extraordinary useful assistance to me.

    • @Educ8s
      @Educ8s  7 ปีที่แล้ว

      Thank you very much, my friend, for your kind words. I am glad it was helpful.

  • @dubbadan1
    @dubbadan1 4 ปีที่แล้ว

    Well explained. I've not really understood the basics of interrupts till now.

  • @markschuurman4000
    @markschuurman4000 5 ปีที่แล้ว +1

    Excellent explanation, thnx!
    I'm wrestling this interrupt stuff for two weeks now, so I hope your basic setup will do the trick finally!

    • @markschuurman4000
      @markschuurman4000 5 ปีที่แล้ว

      After reading this (www.arduino.cc/en/Tutorial/DigitalPins):
      Often it is useful to steer an input pin to a known state if no input is present. This can be done by adding a pullup resistor (to +5V), or a pulldown resistor (resistor to ground) on the input. A 10K resistor is a good value for a pullup or pulldown resistor.
      I attached a 1K restistor from sensor to GND which gave an accurate result.

  • @paulpixzy5297
    @paulpixzy5297 2 ปีที่แล้ว +2

    Your teaching is unique and clear see how you impact the knowledge I ve been seeking since I come across mcu's interrupt well explaned

    • @Educ8s
      @Educ8s  2 ปีที่แล้ว +1

      Thanks!

  • @MJLMICRO
    @MJLMICRO 7 ปีที่แล้ว

    Very useful information! I was not aware that hardware interrupts could wake the Arduino from a deep sleep and then go back to sleep right after.

  • @triac777
    @triac777 7 ปีที่แล้ว

    I have used timer interrupts but not hardware interrupts. The hardware interrupts are much easier and more useful. With this video there is no reason not to use them. Thank you.

  • @aleal8
    @aleal8 4 ปีที่แล้ว

    Well, as many others, I have to say that I really appreciate the way you explain those videos. Very good, thank you.

  • @activeacommando
    @activeacommando 7 ปีที่แล้ว +12

    Συγχαρητήρια. Πολύ καλή και τεκμηριωμένη δουλειά!!

  • @ValseInstrumentalist
    @ValseInstrumentalist 7 ปีที่แล้ว

    I recently learned to use interrupts when learning to program ATmel controllers without the help of an Arduino. It's good to see now how to use them with the Arduino.

  • @vikalpas
    @vikalpas 7 ปีที่แล้ว +9

    I am working on a digital speedometer for my motorbike and would use this to issue interrupt whenever Reed switch senses a revolution completion.

  • @shivanngpuri
    @shivanngpuri 7 ปีที่แล้ว

    I was working on a project of an arduino smartwatch with Nokia 5110 lcd, and this interrupt function would really help in controlling the backlight. Cheers!

  • @geomcc39
    @geomcc39 2 ปีที่แล้ว

    Thank you my new friend ! I like your idea of sharing and helping people learn Electronics etc .

  • @stevewilliams430
    @stevewilliams430 5 ปีที่แล้ว

    Nice video I could have done with it 30 years ago when I learned Assembler coding and then swapped to C cross compiler.But this was most informative for the nubbie. Helped me for the Arduino which is a nice IDE.

  • @fiveooooo
    @fiveooooo 4 ปีที่แล้ว

    I'm Italian, I love your English! clear and usefull. Thanks

  • @giannisdrompilis8509
    @giannisdrompilis8509 7 ปีที่แล้ว

    Grate job! Keep going.
    Interrupt have an 2 other triggers. The Change and the low. Some models also have the hi.
    You can do your project using only 1 input and look for change of input state.

  • @Szurix90
    @Szurix90 4 ปีที่แล้ว

    Thank you for your video! TH-cam is for people like you.

  • @markjlewis
    @markjlewis 4 ปีที่แล้ว

    Thanks for the video, saved me a lot of time trying to figure this out for myself.

  • @JahanZeb1976
    @JahanZeb1976 7 ปีที่แล้ว +11

    Excellent dear friend. Great projects discussed. This was what exactly I was looking for my projects. Keep the excellent work up.

  • @pauldusa
    @pauldusa 7 ปีที่แล้ว

    yes you can also use INT to be a counter, a water flow meter with a hall effect, or a RPM of a speed of a fan or motor, a IR car counter,,,, many many uses, Thanks for your good video's

  • @tonysicily2687
    @tonysicily2687 4 ปีที่แล้ว

    Fast, simple clear and yummy mind PERFECT,
    This is exactly what I needed to know, not a huge monolithic project, but a simple
    Arduino is asleep
    Interrupted
    - Do action
    Go back to sleep
    Perfect 👍

  • @DogRox
    @DogRox 7 ปีที่แล้ว +4

    Great video!! Quite informative! I knew how interrupts work I just never knew how to incorporate the knowledge into the Arduino! :-) I love your explanation comparing it to the mailbox and watching every 10 minutes that definitely sounds like me when I'm expecting hardware!! :-)

  • @thisoldjeepcj5
    @thisoldjeepcj5 2 ปีที่แล้ว

    Thanks for explaining interrupts.
    I will use with photo interrupter for tachometer.

  • @chetanpandit983
    @chetanpandit983 6 ปีที่แล้ว

    Outstanding. A concept I thought was very difficult, has been very clearly explained. Chetan Pandit

  • @chemgreec
    @chemgreec 7 ปีที่แล้ว

    thats great I am building a project and I was going to look into this interrupts. I was watching your weather station project just to get the low power mode(i building an automatic cloth dryer for home) and then i needed to turn tha arduino on and of and there it is

  • @michaelcostello6991
    @michaelcostello6991 7 ปีที่แล้ว +5

    Fantastic easy to follow interrupt demo. Thank You

  • @shvideo1
    @shvideo1 4 ปีที่แล้ว +1

    Excellent tutorial, which is very well explained. Thank you for sharing your knowledge.

  • @donaldfilbert4832
    @donaldfilbert4832 7 ปีที่แล้ว

    I can see that interrupts are highly useful - and the doorway to programming much more complicated applications !!

  • @necatee
    @necatee 4 ปีที่แล้ว

    Thank you Nick ! Best regards from Turkey.

  • @szilvesztermohacsi7489
    @szilvesztermohacsi7489 6 ปีที่แล้ว

    Hi, I started learning the arduino, and this video very usefull for me. Short, simple. Thanks.

  • @shivanngpuri
    @shivanngpuri 7 ปีที่แล้ว +7

    Hi nick!! Really thanks for all the wonderful and easy tutorial you make!!

    • @Educ8s
      @Educ8s  7 ปีที่แล้ว +3

      Thank you for the nice words! Cheers!

  • @georgekot6377
    @georgekot6377 7 ปีที่แล้ว +1

    Exactly what I was looking for ! A big thank you . Bravo.

  • @tserbos2
    @tserbos2 7 ปีที่แล้ว +8

    μπράβο ρε φιλέ... πολύ δουλειά είχε αυτό το βίντεο!!! πρέπει να σου πήρε εβδομαδα.. με το μονταζ, σπικαζ,κτλ
    σε ευχαριστουμε που μοιραζεσαι τις γνώσεις σου δωρεάν!

    • @Educ8s
      @Educ8s  7 ปีที่แล้ว +7

      Όντως φίλε αυτό το βίντεο μου πήρε μια βδομάδα να το φτιάξω, αλλά πιστεύω το αποτέλεσμα άξιζε τον κόπο!

  • @trr3576
    @trr3576 4 ปีที่แล้ว

    thanks for all the clear and nice tutorials

  • @savage8336
    @savage8336 6 ปีที่แล้ว

    I LOVE THAT QUOTE AT THE BEGINNING OF THE VIDEO!!!

  • @DanMcAfee
    @DanMcAfee 5 ปีที่แล้ว

    FANTASTIC. Wanting to click the Thumbs Up multiple times...

  • @rooster443
    @rooster443 4 ปีที่แล้ว +1

    Where have you been all this time Master! Thank you for this.

  • @sendoutalerts4537
    @sendoutalerts4537 7 ปีที่แล้ว

    a VERY well organized tutorial. i absolutely love all the links! thx for all of the effort!! - a new fan

  • @resonance2001
    @resonance2001 7 ปีที่แล้ว +1

    That's another great video but may I suggest the use of digitalPinToInterrupt(pin) for the first argument to attachInterrupt for portability? It's a different story for the Arduino Due though. The pin and interrupt numbers are the same.

  • @2150dalek
    @2150dalek 4 ปีที่แล้ว

    Great tutorial, you get to the point fast while being clear....unlike other videos.⚡🐙
    I needed this to build a Limit switch for a door.

  • @diego.alienigena
    @diego.alienigena 7 ปีที่แล้ว

    I have had button bouncing issues. Thanks for this great video.

  • @wduraes
    @wduraes 7 ปีที่แล้ว +2

    Another AWESOME video. I'm learning a lot here. thank you for your channel! Keep up with the great work.

  • @blybaly
    @blybaly 7 ปีที่แล้ว +1

    Can you make further solid examples with different tools like lcd light control with movement?

  • @caproni4863
    @caproni4863 7 ปีที่แล้ว

    Thank's a lot for this educational video. I am currently working on a project where this fits perfectly!

  • @ajayanchal
    @ajayanchal 2 ปีที่แล้ว

    great video !!! just one question. in the second example with pir sensor why there was no need for a pull up or pull down resistor?

  • @joemwangi5813
    @joemwangi5813 3 ปีที่แล้ว

    i needed this for my project, thanks

  • @valakatz3967
    @valakatz3967 4 หลายเดือนก่อน

    Thank you for sharing your knowlage, great video. Only one thing is missing, you should add the schematics this way it will be much more clearer, again thanks have nice day

  • @ziathadam8260
    @ziathadam8260 6 ปีที่แล้ว

    woah, I encounter interrupts in arduino from this video, great job, man !

  • @mexicanmoustache8180
    @mexicanmoustache8180 7 ปีที่แล้ว

    great video sir! thanks! finally understood interrupts!!

  • @Torsan1977
    @Torsan1977 7 ปีที่แล้ว

    Very good tutorial! Thank you! I will have to try this on my battery powered projects!

  • @bgable7707
    @bgable7707 3 ปีที่แล้ว

    So, no de-bounce circuit needed in the first example? I'm trying to put together a device which I want to use two buttons to activate different ISRs. However, everything I have read indicates I will have trouble with the ISR firing multiple times with a button switch. Can you give some advice on this? Thanks for all your video's too!

  • @oglocop4693
    @oglocop4693 2 ปีที่แล้ว

    Hello, great tutorial. I'm having a lot of trouble with accidental triggers. It will probably get better when I solder the circuit together so I'm not using the flimsy female/male connectors, but I would like to implement a solution in the code as well. Is there a way to only trigger it when the button is held down for a second?

  • @jasoncook9817
    @jasoncook9817 2 ปีที่แล้ว

    Urgh, I was trying to run a program in the interrupts. Thanks for this timeless tutorial, I am now just setting flags and everything works as expected.

    • @Educ8s
      @Educ8s  2 ปีที่แล้ว

      Glad it helped!

  • @emiltoteb
    @emiltoteb ปีที่แล้ว

    Why is it just now I lean about interrupts?! That'll save me a lot of headaches in the future, thanks!

  • @MrBobWareham
    @MrBobWareham 7 ปีที่แล้ว +1

    Love the video as always I found it very interesting but what if when the button pressed it starts a timer to run as a one shot for 30 seconds then goes off until the next button press

  • @mitchellcojocariu3363
    @mitchellcojocariu3363 2 ปีที่แล้ว

    Why do you use 2 input pins for the single sensor output? The state will be the same on both pins and it will never send different states at the same time?

  • @scootergem
    @scootergem 3 ปีที่แล้ว +1

    Excellent tutorial! Thanks

  • @jalalbukhari1149
    @jalalbukhari1149 4 ปีที่แล้ว

    i want to use these interrupts as a counter for fast moving objects. like seed counter. but i need to know which sensor will be most useful to detect the small grain sized particle to trigger the sensor and cause interrupt.

  • @amihaiba
    @amihaiba 6 ปีที่แล้ว

    Thanks for the video! as always clear and easy to follow.
    By the way the quote was originally by confucius and it was slightly different :)

  • @brandondaniels9471
    @brandondaniels9471 7 ปีที่แล้ว

    Yea, I never knew this was possible. I'll defnitely use it for my projects if I can. Thanks for the excellent tips! :-)

  • @wardmd
    @wardmd 3 ปีที่แล้ว

    Only comment I have, is it would be good to explain/clarify why you wire the digital output of the sensor to TWO digital pins of the Arduino (as opposed detecting and handling BOTH events within the interrupt routine [with the CHANGE parameter to trigger on EITHER sensor state changes]).

  • @PetrasL_1976
    @PetrasL_1976 7 ปีที่แล้ว

    at 7:57 Just one question, where did you defined these 10 seconds or this is "hardcoded" in your sensor to keep 10 seconds HIGH after motion was detected?
    Thanks

    • @DaveBuildsThings
      @DaveBuildsThings 7 ปีที่แล้ว

      The sensor goes low after 10 seconds if no movement is detected. It is a function of the sensor.

  • @ausprobierendannweisstdues8686
    @ausprobierendannweisstdues8686 7 ปีที่แล้ว

    Very well explained thank you,
    Can you change the time so the length in which the LED lights?

  • @1_HighDuke
    @1_HighDuke 7 ปีที่แล้ว

    In the PIR example, you can't attach two different interrupts to the same pin? For example, attachInterrupt(0, LEDon, RISING) and attachInterrup(0, LEDoff, FALLING). You need to use separate pins for the different conditions?

    • @Educ8s
      @Educ8s  7 ปีที่แล้ว +2

      No, each digital pin must have only one ISR. But with the trigger mode CHANGE you can create the same behavior in a single ISR.

    • @1_HighDuke
      @1_HighDuke 7 ปีที่แล้ว

      Great, thank you.

  • @tubecandle
    @tubecandle 2 ปีที่แล้ว

    How much amazing information! Great stuff.

  • @TheHoviat
    @TheHoviat 7 ปีที่แล้ว +1

    Thank you very much, that was so helpful!

  • @toastrecon
    @toastrecon 3 ปีที่แล้ว

    So, what would happen if the PIR sensor was triggered any time there was motion? Maybe if it not only told you motion but also speed or distance? Would the interrupt "interrupt" itself? Say that the ISR called a function to read in the data from the PIR? Maybe if there were two PIR's?

  • @pantoffelheld14
    @pantoffelheld14 7 ปีที่แล้ว

    Hello can you make a video on how to go from the breadboard to a prototype on pcbs?

  • @gamecity7265
    @gamecity7265 7 ปีที่แล้ว

    I programed a stepper motor that stop 24 time in one loop.
    Would you know how to turn on an led for each stop ? So 24 blink.
    LED on while motors stops. LED off while motor rotates. Thanx for your great help

  • @avejst
    @avejst 7 ปีที่แล้ว

    thanks for your time to share your knowledge with all of us 👍😀

  • @maulanawahyudi7127
    @maulanawahyudi7127 3 ปีที่แล้ว

    no delay on section ISR only or all of code sir ? can i take some delays in void loop

  • @goodwill7643
    @goodwill7643 4 ปีที่แล้ว

    I think Arduino calls Interrupt on the end of every loop(), not inside of it. Just try to create your own while(1) and you'll see that attach interrupt will stop working, because you never starting new iteration of loop(). This means, ISR will be called not between command as you show here, but between loop() iterations. So if you have any counter, and for some reason your code is relatevly slow. Your counter will be inaccurate or even skip counts.

  • @hadihaque4547
    @hadihaque4547 6 ปีที่แล้ว

    very nice and to the point.Thanks for sharing.

  • @kfash5198
    @kfash5198 7 ปีที่แล้ว

    Best Interrpt video on TH-cam

  • @jacopo.scarpellini
    @jacopo.scarpellini 4 ปีที่แล้ว

    Is the button in the first example a momentary button? If so, why doesn’t the led only stay on during the short time you press it but instead it stays on until you press it again?

  • @TuanNguyen107bvt
    @TuanNguyen107bvt 4 ปีที่แล้ว

    if u left the hand there forever, will LED light up forever or it just do 10s and back to sleep. then check for motion and on again ?

  • @MrCarlozan96
    @MrCarlozan96 7 ปีที่แล้ว

    At around 4:20, in the if condition, I don't get why there is only "if(ledOn)"
    Shouldn't it be something like "if(ledOn == true) {...}?

    • @Educ8s
      @Educ8s  7 ปีที่แล้ว +2

      +Mr.Carlozan it is exactly the same

    • @4209211vikash
      @4209211vikash 6 ปีที่แล้ว

      it validates the statement inside braces to be TRUE. "ledOn==TRUE" is TRUE . So, "if(ledOn)" is same as writing "(ledOn==TRUE)"

  • @JeanPierreLavoie
    @JeanPierreLavoie 7 ปีที่แล้ว

    I love it and very good tutorial. Will use interrupts on my ESP8266 projects!

  • @PhilipBlignaut
    @PhilipBlignaut 6 ปีที่แล้ว

    Excellent Video! Just subscribed to your channel.

  • @Rolly369
    @Rolly369 7 ปีที่แล้ว

    wow...you improved much on your tutorial, very well done :) thanks for that nick :)))

  • @pratahsinnetamby
    @pratahsinnetamby 4 ปีที่แล้ว

    Thanks for the great video.
    I have a questions - why do you use 2 pins for the 2 interrupts. Is it not possible to use the same pin, one when it goes HIGH and the other when it goes LOW?
    Appreciate your help.

    • @edgardodiaz8155
      @edgardodiaz8155 4 ปีที่แล้ว

      I was reading the comments looking for someone asking or stating that, as conditions are different (Raise and fall), one pin interrupt can be used. I don't have any spare arduino now to verify this, so if any can do it, you are welcome to comment if it works or not.

  • @nagarajanj1135
    @nagarajanj1135 7 ปีที่แล้ว

    Nice explanation....thnkyou very much upload more videos.......

  • @sumedhburbure4173
    @sumedhburbure4173 7 ปีที่แล้ว

    Thank you so much! The video was clear and well descriptive. New Subscriber :)

  • @ClaudeDufourmont
    @ClaudeDufourmont 3 ปีที่แล้ว

    Congretulations for your video, very interesting

  • @MEP_NOTES
    @MEP_NOTES ปีที่แล้ว

    Thanks a lot
    it is so useful informations and easy to understand

  • @chefbennyj
    @chefbennyj 7 ปีที่แล้ว

    Just gotta say, if it wasn't for your videos I wouldn't have been able to build my home automation motorized blinds for my home. Now, I'm wondering if I should have used interrupts with my project. Is it possible to use interrupts with nrf24 wireless modules? How would that look?

    • @1_HighDuke
      @1_HighDuke 7 ปีที่แล้ว

      Aren't the NRF24 modules attached to Arduino boards?

  • @Starwave...3821
    @Starwave...3821 6 ปีที่แล้ว

    Its a good video ... You did a really good job

    • @Educ8s
      @Educ8s  6 ปีที่แล้ว

      Thank you, my friend!