How to Use Millis to Master Arduino Multi-tasking

Поділитися
Вставка
  • Опубліковано 23 сер 2024

КОМЕНТАРІ • 173

  • @robertorusso3192
    @robertorusso3192 8 місяців тому +35

    Hi Rachel, i saw many tutorials about millis, but no one was clear and effective like yours! Thank you!

  • @bikobika7319
    @bikobika7319 6 місяців тому +8

    Hi Rachel
    I am not only an arduino learner, but I am also an english learner
    So I think I am lucky when I watch your videos because your clear accent and your explanation way
    Thanks

    • @RachelDeBarrosLive
      @RachelDeBarrosLive  6 місяців тому

      I have a lot of fun doing these and learn new things too. 😄

  • @jimjames7479
    @jimjames7479 7 місяців тому +19

    she is what we think a real teacher should be like. she is the best educator out there.

    • @barleyhopps
      @barleyhopps 7 місяців тому

      She reminds me of sex-ed teacher.

  • @Anointingify
    @Anointingify 6 місяців тому +5

    Hi Rachel, I want to say your illustration of using millis with all in one example was just awesome. Your detailed example gave me a good understanding of this topic. Thank you very much.

  • @petrosyrjala6908
    @petrosyrjala6908 7 місяців тому +4

    You are the best at teaching arduino. You are a really efficient and lively person to teach with good examples. Thank you!

  • @jansmit4628
    @jansmit4628 7 місяців тому +2

    You are an entertaining and enthusiastic teacher. Found a small error I think in the servopos values which is declared as an integer.
    While incrementing its value it will run upto 181 before it decrements again. The servo will not run past 180 so will be there for 2 intervals.
    As servopos is declared as integer, it can become -1, which creates the same situation in the opposite position.
    In your demo nobody can see this, but when you really drive something serious with the servo you would notice.
    Your energy makes me want to pull the arduino out the drawer and play with it some more. Keep up your teaching sessions.

  • @jasongrayston7450
    @jasongrayston7450 7 місяців тому +1

    I teach high school robotics in Canada. You are a fantastic teacher! My kids are going to love the way you explain coding. I have a bunch of girls in my program who will be looking up to you as well! Thank you so much!

  • @dannyyeoh2340
    @dannyyeoh2340 Місяць тому

    OMG, so a million thank you Rachel, been doing C++ programming and no one be able to explain clearly the difference between unsigned long and long and what unsigned variable is for. You explained it with sample to make it more clearer. Wow the servo moves so smoothly. I never get to move it so smoothly always there is some interruption. Your code is short, not winding and very simple to understand. Thank you so much for doing this tutorial.

  • @joebatista4306
    @joebatista4306 11 місяців тому +5

    Hi Rachel, so glad i came across your channel, your presentation is so much more vibrant and intuative than others (i guess we learn better/ easier when we having fun). Will follow for all things arduino/ coding

  • @richardgoldston5922
    @richardgoldston5922 6 місяців тому

    Hi Rachel, I am a radio engineer and I have just come across your vid's and love them so much,

  • @leonvita-zo6ri
    @leonvita-zo6ri 2 місяці тому

    I love you, i never watch a video on youtube for 50 mins, max 20 mins, but your videos are so fun and i really really like them, you deserve my sub and like.

  • @SaiksTech
    @SaiksTech 6 місяців тому +1

    You made the whole lesson enjoyable with a unique approach.
    Bless dear!

  • @elektron2kim666
    @elektron2kim666 12 днів тому

    Just started with the Arduino IDE and thought it was MicroPython for a few days and my app was already working (I'm a bit of a polyglot) and ran into more details for what I wanted, of course. It was not obvious with a special machine causing extra setup with libraries and similar with tests. Now I'm loving it and look into the correct places.

  • @stever3886
    @stever3886 8 місяців тому +2

    Hey Rachel, I snagged this note below from the Arduino reference page for analogWrite function. Your comment about some PWM pins being flakey made me do a little digging. In general pins 5 and 6 “may give” unexpected results?
    Notes and Warnings
    The PWM outputs generated on pins 5 and 6 will have higher-than-expected duty cycles. This is because of interactions with the millis() and delay() functions, which share the same internal timer used to generate those PWM outputs. This will be noticed mostly on low duty-cycle settings (e.g. 0 - 10) and may result in a value of 0 not fully turning off the output on pins 5 and 6.

    • @Samiby
      @Samiby 5 місяців тому

      I think UNO just needs to disappear. So many tech issues with it. For the cheaper price, people need to start buying into more functional esp32 boards or something

  • @janszal
    @janszal Рік тому +3

    Great example, I was looking something like this for some time. Keep up the good work!

  • @banglarif
    @banglarif 10 місяців тому +2

    You are 24k gold. I like the way you teach. WOW. OMG

  • @josepheccles9341
    @josepheccles9341 8 місяців тому +1

    You are so much fun to watch. I have taken up using a library "elapsed millis" for many similar tasks. I started using that when I made an NHRA style Christmas tree like starts drag races. I use a single object to compare to for turning on and off each light. Before I was using industrial PLC's to make them, but those are expensive. But I have a lot more experience writing programs for those. Ladder logic is a lot more simple to write than C, or the similar found in arduino.

  • @SummersideDiver
    @SummersideDiver 5 місяців тому

    Oh my god, this video just saved me. I had a fading led that stopped working when the servo was added, and I could not figure out what went wrong. Your explanation of the servo library messing with pin 10 helped so much. The way you explain code structure is also very straightforward. Thank you

  • @azmathismail1611
    @azmathismail1611 2 місяці тому

    Hi Rachel. Great video and love your gripping enthusiasm to teach your passion to others. I'm a developer myself. Been wanting to get into Arduinos and electronics and also drag my daughter along the ride. I think we'll enjoy the ride much more with your videos 🙂

  • @ThierryC2373
    @ThierryC2373 2 місяці тому

    Fantastic video, very well explained. I love the way you teach by doing the things along. Next level = include interruption for a certain period of time with a trigger within a function while permitting other tasks to continue, then resume the interrupted task.

  • @christinamarks6349
    @christinamarks6349 Місяць тому

    Excellent (if you're not already, you should be teaching professionally). I've watched countless videos on this subject, but this is by far the most concise to date and, explained in language that anyone can understand! Keep Up The Great Work!

  • @Mokkers_stuff
    @Mokkers_stuff 2 місяці тому

    Hi Rachel. Thank you for posting such a great tutorial video. Have recently got back into Arduino programming with a view to controlling a model railway and associated accessories such as signals, uncoupling ramps and turnouts (or points as we call them here in the UK). This video is going to help me a lot! Loved the fact that you just dealt with syntax errors as they came up, those darned brackets get me every time too! And thanks for the tip about the servo library pin conflict, that was news to me. Great work!

  • @beachcomberbob3496
    @beachcomberbob3496 5 місяців тому

    Now all we need to know is how we drop out of a void function once that function has reached a time limit (or number count). It would be cool to see the red LED turn off after 2 minutes, and/or switch on with a button, run for two minutes, stop again and wait for the next button press. Having said all that, your tutorials are crystal clear compared to a lot of guys on UA-cam who head off into the weeds.

  • @gigsim7115
    @gigsim7115 6 місяців тому +1

    I love the energie and the way you talk.

  • @mattinkel7342
    @mattinkel7342 4 місяці тому

    What and absolutely fantastic teacher you are Rachel.. it helps no end to see someone explain as they write the code and describe their thought process .. just wonderful. Never subscribed so fast and eager to learn more

  • @navinkumar6888
    @navinkumar6888 5 днів тому

    Good teachers inspire and motivate students to reach their full potential.
    You are worthy and amazing Teachers. You can change lives and anyway you are doing a great Job.❤

  • @user-sm6uc7ub4f
    @user-sm6uc7ub4f День тому

    Im new to Arduino programming this was really helpful thanks

  • @stradcar1
    @stradcar1 7 місяців тому

    This is the best present I have ever watched guaranteed not to make you sleep.

  • @toeterdetoet539
    @toeterdetoet539 10 місяців тому +1

    Forcably limiting myself to the technical questions. (I'm stunned)

  • @davidgierke7582
    @davidgierke7582 7 місяців тому

    As a retired high school technology teacher who subsequently became the author of books concerning the internal combustion engine and pioneer flight. I am currently working on a series of books designed to meet the needs of middle grade kids who are interested machines from a hands-on perspective-a severely overlooked topic that is rarely addressed in middle school or high school library books. Book one (completed) is about an 11 year-old who is enthralled by the internal combustion engine and its systems. In book two, our protagonist desperately wants to learn how to code because he knows that modern engines depend upon ECMs (Engine Control Modules). Unfortunately, I wasn't having much success in my "coding research"-until I ran across your channel and watched two of your Ardiuno-assisted lessons. Wonderful-what a talent you are! I was not only impressed by your knowledge of coding, but also your ability to deliver a well-researched lesson plan! Your two "lessons" did more for me than a month's reading of two of the most current books on "coding for kids!" Please continue with these coding-centered lessons. PS-would you consider co-authoring book two?

  • @DONCRAGUN
    @DONCRAGUN 6 місяців тому +1

    Hi Rachel. I really like your teaching style. The energy and enthusiasm are infectious. I wish I had had computer science teachers with your skills when I was learning to program 50+ years ago.
    However, I think the range of values written to your servo are a little bit out of range. If servoIncrement is 5, your code would give values from 185 to -5 inclusive to the servo.write method. Shouldn't you have something more like:
    servoPos += servoIncrement;
    if((servoPos > 180) || (servoPos < 0)) {
    servoIncrement = -servoIncrement;
    servoPos += 2 * servoIncrement;
    }
    servo.write(servoPos);
    or:
    if((servoPos + servoIncrement > 180) || (servoPos + servoIncrement < 0)) {
    servoIncrement = -servoIncrement;
    }
    servoPos += servoIncrement;
    servo.write(servoPos);

  • @pingfway1455
    @pingfway1455 11 місяців тому +2

    It helps to me understand the millis() function better and thinking this may be a better solution for creating a multi-tasking for my agriculture system. A system to control the temperature and irrigation. Your cheering explanation made the presentation interesting and enjoyable. Thanks a lot.

  • @JohnyRalte
    @JohnyRalte 8 місяців тому

    Thank you Rachel. Best explanation ever, especially int, long and unsigned long. Great video for curious beginners.

  • @zk_6312
    @zk_6312 4 місяці тому

    Great video. I have always stayed away from millis mostly as it can get so complicated, but you make it look easy. I will have to try this again.

  • @louiepauda6275
    @louiepauda6275 Рік тому +1

    Amazing! You're amazing with all that knowledge of configuring the functionality! Rated highest in my class when in college making me pretty much a good for it geick! Really injoy the jargon! Looking bright, brilliant and a natrual at it!

  • @DBB-KE5DUO
    @DBB-KE5DUO Рік тому +2

    This is just like a Perl program i wrote many moons ago! i measured from the computer epoch to several "triggers" including one that sent an error email if the program seemed to be running away (but continued until another time frame passed by) ...
    😎😎😎😎😎😎😎😎😎😎

  • @Frisky0563
    @Frisky0563 4 дні тому

    Hi Rachel, great video I enjoyed your presentation of this topic of millis() thanks

  • @bigEratt
    @bigEratt Рік тому +1

    Wow !..Just found your channel again, 👑 De Barros !..

  • @davidcamilleri288
    @davidcamilleri288 10 місяців тому +1

    Hi Rachel, thanks to you I can manage my project better now because I was going crazy trying to use three infrared object sensors at the same time but could not manage to do it. now i am going to have a try following your program and then we'll see the result.
    thanks again.

  • @mikey38632
    @mikey38632 6 місяців тому

    Thank you for this video, it is most timely. I am planning to use a microcontroller with similar capabilities to drive several LED status lights with various behaviors during various conditions, and this is likely the key to making it all work together properly.

  • @johnpfeffer1957
    @johnpfeffer1957 5 місяців тому

    You're a good instructor! I learned 2 new things yesterday & today.

  • @SpectreTTM
    @SpectreTTM 9 місяців тому +2

    Loved the pacing of the coding. Too many times people go so fast and don't explain why they code things a certain way. It felt like we were included in the thought process of the code rather than just watching someone type in the code.
    Stumbled across this video looking for multi tasking on the Arduino for a Halloween prop. Thought it was a coding channel until I looked at your other vids. Pleasantly surprised to see the Halloween / props vids. Thx

  • @hornbachhh
    @hornbachhh 3 дні тому

    Hi Rachel I enjoy your videos and they are very helpful for my hobby. Have you done any videos showing how motors with encoders can be coded for Arduino? Say if I want a motor to home at an exact point every time after spinning for a desired amount of times. If you haven’t would you consider doing a video because you are easy to follow. Many thanks and keep up the great work.

  • @contentcliques4260
    @contentcliques4260 5 місяців тому

    This is seriously a great video. Hit my issue exactly !

  • @christophe1800
    @christophe1800 7 місяців тому

    If i could, i would have given this video more than 1 thumbs up. Very entertaining and instructive. Thanks.

  • @rinkashime0289
    @rinkashime0289 7 місяців тому

    At the end about what you said on the servo library where there are certain pins that will not behave right when you use a servo library. It is new to me and that I have a previous project where I encountered such problem, I wasn't able to determine the problem. Now I know why, thanks Ma'am

  • @flywittzbeats4008
    @flywittzbeats4008 5 місяців тому

    I am now a state machine master! Haha thank you so much this is amazing.

  • @RocketCarpenter
    @RocketCarpenter 8 місяців тому +2

    You are just an amazing teacher!

  • @cyberwip
    @cyberwip 8 місяців тому +2

    You don't have to worry about unsigned word length, it wraps perfectly. CURRENT_TICS - LAST_TICS will always be the difference even if CURRENT_TICS wraps around and is less than the starting tic count. (The beauty of UNSIGNED math).

    • @bertblankenstein3738
      @bertblankenstein3738 7 місяців тому

      As long as you do not wrap more than once between taking values.

  • @speakertoanimals
    @speakertoanimals 7 місяців тому

    Very Nice! Polling is incredibly useful, simple to code, and effective (as long as the processor works faster than the components.) You did a great presentation. BTW, I think your vid on using hardware interrupts (for the button) is a great way of kicking it up a notch.

  • @Steve-xb7dn
    @Steve-xb7dn 5 місяців тому

    Great video Rachel, love your energy and enthusiasm

  • @mrrgc74
    @mrrgc74 6 місяців тому

    I have been looking for something to create a set of boom gates for a model train layout soooo many thanks you have explained everything i needed to know.

  • @chandramalsoysa3715
    @chandramalsoysa3715 Місяць тому

    Excellent tutorial. Very clear and helpful.

  • @killtrocity6857
    @killtrocity6857 7 місяців тому +3

    Now this is a teacher i could sleep with after learnings ardrino

  • @GreatPlainsChaser
    @GreatPlainsChaser 4 місяці тому

    So glad I found this channel... Have you done a stepper motor video yet?

  • @markwerley6965
    @markwerley6965 7 місяців тому

    This was very well conceived and presented. A few years ago i built a Halloween Monster in a Box prop, and although I noodled my way through the coding, I would have benefited from this video. Nice work.

  • @skipsmessyworkbench
    @skipsmessyworkbench 6 місяців тому

    Again...Excellent lesson!!! I've subscribed to you on both of my channels.

  • @ph21meo
    @ph21meo 11 місяців тому +1

    I got my code pulse counting running with other set of code. Thank you❤🎉

  • @jamesaulgur4556
    @jamesaulgur4556 3 дні тому

    I cannot get over how old you are...
    You look so much younger...
    I love your content and your program, the fact that your cute is just a bonus...
    I am curious how you got into this, and what led you down this path?
    Do you have a link to a biography or about that? Something other than "about" your channel? I am curious the path that you took to get here...
    You are a great teacher as I stumbled upon your channel with a query about data types for my boys who are being home schooled in data types.
    My boys who are in 7th and 5th grades also commend you for making things easy to understand...
    We played a good part of one of your video's as a lesson and we really enjoyed the content.
    Interestingly enough my boys are seeing me develop an iot project on an esp 32 derivative.
    We are using sparkfun items and, trying to light the fire beneath them, to encourage the same kind of desire that I inspired myself into electronics.
    Who knows you might have 3 more paying subscribers real soon as I see gleam in their eyes... ;)
    Channels like yours are a gold mind for young minds.
    Congratulations and keep up the good work.
    Tnx. JRA WWMA

  • @carrizzle9586
    @carrizzle9586 9 місяців тому

    Great video!!! Very detailed explanation of the Millis function and how to make use of multiple devices at once, kind of. Thanks for sharing.

  • @StaleCookies
    @StaleCookies 6 місяців тому

    Wow fantastic you are so engaging I learned a lot and at a manageable pace thankyou

  • @charlesmiller6132
    @charlesmiller6132 5 місяців тому

    You are wonderful. Great teacher and fun to too! ❤❤

  • @lidiaermolenko621
    @lidiaermolenko621 7 місяців тому

    Please, do not stop, this is best lessons, what i see. What do you thing about FLprog, for education Arduino?

  • @TheUnofficialMaker
    @TheUnofficialMaker 7 місяців тому

    Very clear and outstanding job of explaination with examples and code.

  • @shaikeshap
    @shaikeshap 9 днів тому +1

    Awesome, just awesome.

  • @rudyvlog2897
    @rudyvlog2897 9 місяців тому +1

    Wow thanks ma'am looking forward for more interesting tuitorials 🙂

  • @vermeirmarc2
    @vermeirmarc2 9 місяців тому

    Thanks a lot, helps me a lot! Clear explanation and good examples! Best regards, Marc

  • @dab3963
    @dab3963 5 місяців тому

    Great video, very clear explications I appreciated too much. I wonder how to solve in case of a button with 2 states and debouce problems without use of delay function

  • @garciawallace7106
    @garciawallace7106 6 місяців тому

    Hi Rachel, Thank you for this awesome video, using millis function. I am working on a project display and i need to pause some warning banners when triggered by different sensor readings, but when i used delay function every freeze up and
    Sensor reading start lagging i didnt like it so had to get rid of the delays but then the banners wont show now. So i think this millis will fix my issue. Tried it before but i tried using it lik a delay() and now after watch you videos i see why it didnt work. Lol So thank you for these great videos it so easy to follow along i learn a lot from your vids.

  • @watsonbanda7702
    @watsonbanda7702 4 місяці тому

    From malawi ,ur brilliant

  • @damianbutterworth2434
    @damianbutterworth2434 3 місяці тому

    Hi Rachel, I been using a for n loop for years doing a similar thing. I`ll mix it with BBC BASIC because I`m drinking. :)
    FOR N=0 TO 2000
    IF N=1000 THEN LET LED=TRUE;
    IF N=1500 THEN LET LED=FALSE;
    DELAY(1);
    NEXT N

  • @danny117hd
    @danny117hd 7 місяців тому +1

    Consider calculating the future time and the code execution is faster cause your not even doing the subtraction just the comparebe... if currentmissis > nextmillis. ( Nextmillis+= period; ledState=! ledState; digitalwrite(mled.ledstate).; ). Faster code = feel more responsive.

  • @jamesmoon5632
    @jamesmoon5632 4 місяці тому +1

    Great tutorial

  • @wisco58
    @wisco58 7 місяців тому

    super super interesting video's. Just one question. Do you have a video where you use a servo motor controlled by a joystick?

  • @rickhunt3183
    @rickhunt3183 7 місяців тому

    Time slicing or super looping are probably more accurate terms than multitasking. While time slicing can be very useful. Sometimes It's best to divide a task among multiple microcontrollers working independently, and have a master controller monitor and control ( adjust ) each independent controller.

  • @mixme8655
    @mixme8655 9 місяців тому

    New subscriber I enjoy watching your videos thank you ❤ with sense of humor I learned a lot from you as beginner

  • @MarioRossibless
    @MarioRossibless 4 місяці тому

    I'm new in your channel. Excellents class. Your english is clear and expressive. Thank you

  • @arliewinters2776
    @arliewinters2776 4 місяці тому

    I like your teaching...
    I come from C#, does Arduino have a "backgroundworker" function ?
    Where you can have two threads working at the same time ?

  • @J_Creative
    @J_Creative 8 місяців тому

    Beauty with brain 🎉thank to this clear tutorial hope to have some more tutorials,,😊

  • @nara49veera12
    @nara49veera12 7 місяців тому

    Excellent delivery of key concepts. Awsum. It will help me more if you use larger fonts when you explain the code, Thanks in advance.

  • @danieltugui4364
    @danieltugui4364 8 місяців тому

    extremly useful, thank you from italy

  • @cyberphox1
    @cyberphox1 7 місяців тому

    Really nice and engaging video. Subscribed

  • @fatihakalper9460
    @fatihakalper9460 7 місяців тому

    Hi Rachel, I loved your explanation. Can you create content about Modbus RTU communication on Arduino? I'm looking forward to your video.

  • @mikey38632
    @mikey38632 6 місяців тому

    At 18:00 I'm thinking you could probably do a
    ledState = !ledState
    But having the If statements is good when there are more things to be done based on the If's

  • @KJ7JHN
    @KJ7JHN 5 місяців тому

    Hi Rachel, do you have a video covering TCP/IP for DOS 6.22 or FreeDOS 1.3? I'm really looking for a guide on bridging 6.22 and HTML5? I think HTML5 is the most recent? I'm making a game that needs Network support. Thanks!

  • @vantondercorne
    @vantondercorne 6 місяців тому

    you are the best. Thank you🤗

  • @maokai8310
    @maokai8310 5 місяців тому

    thank you
    this was clear

  • @africantech5
    @africantech5 Місяць тому

    u won my subscription
    right away I am actually working a system that unlock solenoid welcome the User on LCD display and send message to librarian that certain RFID card user approach the Libra wardrobe

  • @mdrafiqul3358
    @mdrafiqul3358 7 місяців тому

    Thank you very much good work, prayers and best wishes for everyone

  • @rujhannalsor3638
    @rujhannalsor3638 Місяць тому

    Thanks so much teacher

  • @SandeepSandhu
    @SandeepSandhu 6 місяців тому

    Brilliantly explained….👌🖖

  • @ayganotomasyon1109
    @ayganotomasyon1109 7 місяців тому

    Thank you. Very good sample code to understand millis..

  • @georgejetson4378
    @georgejetson4378 7 місяців тому

    Hi Rachel, Just stumbled upon your channel. What’s an Arduino?

  • @310765
    @310765 4 місяці тому

    Hi Racheal, how would I fade down the blue LED

  • @grk608
    @grk608 6 місяців тому

    Hi Rachel,
    So what if I wanted to use millis to blink the LED only once? I have several instances of millis I want to use but I want each one to do it at different times and only one time each. The delay function won't work because it blocks the other code from running that has to keep running. Thanks.

  • @HenrikHvalpen
    @HenrikHvalpen 7 місяців тому

    I would like to see how you could make the 3 leds blink in a row.
    Like:
    Delay 3 seconds
    RedLED High for 500 ms
    Delay 3 Seconds
    BlueLED High for 500ms
    Delay 3 Seconds
    GreenLED High for 500ms
    While the servo is still going.

    • @MB-fp9lq
      @MB-fp9lq 7 місяців тому

      Guessing here but, what if you play with the original values, so like for red it's 6000, it waits for 9000 (and since it starts with 6000 it's only gonna wait for 3000), then it blinks. for the Blue give it 3000 initially, it waits for 9000 (so only 6000 the first time), and for the green initial value of 0, so it does wait for the full 9000ms. There might be a better way to do it but this is what I could come up right now.

  • @stefannilsson7692
    @stefannilsson7692 4 місяці тому

    Hi I've been trying to get a servo go to 180 when you seter press the button in position on don't know what I'm doing wrong have tried a little bit of everything but millis might work what do you think about it

  • @sajiniwasana7869
    @sajiniwasana7869 8 місяців тому

    You are an amazing teacher 😍😍😍 thank you very much ❤

  • @KeffelewAssefa
    @KeffelewAssefa 8 місяців тому

    Thank you, great tutorial.

  • @RandomTorok
    @RandomTorok 6 місяців тому

    Can we create a delay function, say myDelay(int) so if I call myDelay(30) it will pause for 30 seconds? Will have to read your writeup closely.