Arduino Tutorial 28: Using a Pushbutton as a Toggle Switch

  Рет қаралды 285,671

Paul McWhorter

Paul McWhorter

Күн бұрын

You guys can help me out over at Patreon, and that will help me keep my gear updated, and help me keep this quality content coming:
/ paulmcwhorter
In this lesson we learn how to use a pushbutton as a toggle switch in Arduino Projects. This uses the same circuit as was used in Lesson 27, but we add the toggle feature to the software.
You can get the kit I am using for this series at the following link:
amzn.to/2I7N4Ek
Also, you can get the Mastech Digital Voltmeter I am using here:
amzn.to/2Ks9nHN
Check out our most awesome web site here:
toptechboy.com/arduino-tutori...
[Disclosure of Material Connection: I am a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com. This means if you visit the link and purchase the item, I will receive an affiliate commission. Regardless, I only recommend products or services I use personally and believe will add value to my readers.]
#Arduino

Пікірлер: 1 100
@northadventure5654
@northadventure5654 4 жыл бұрын
please don't stop after lesson 68! this is so awesome! You are a very good teacher, and there is no one out there like you :D
@tatereinke5166
@tatereinke5166 4 жыл бұрын
North Adventure on video away from greatness
@srinivasyalala1767
@srinivasyalala1767 4 жыл бұрын
Are there videos till 68? I see those videos are as Private (from 43 to 68) and cannot watch them. Please confirm.
@parulpari7346
@parulpari7346 4 жыл бұрын
Yeah
@vitustillebeck4965
@vitustillebeck4965 3 жыл бұрын
He hearted the comment. must mean he just might.
@jaythebay8425
@jaythebay8425 2 жыл бұрын
I agree
@jasonengblom2993
@jasonengblom2993 4 жыл бұрын
Loving the series. Drinking beer though, kids and wife are asleep and I'm geeking out in the garage.
@JoeMakaFloe
@JoeMakaFloe 4 жыл бұрын
Sounds like a nice life
@johnvincentjimar8257
@johnvincentjimar8257 2 жыл бұрын
You sir, are the Organic Chemistry Tutor of Arduino. I always go to your videos if I want to continue in learning arduino. Great teacher, love to see more of your videos.
@sebastiannunez4878
@sebastiannunez4878 2 жыл бұрын
lmao this is so accurate
@erwinvelasquez9018
@erwinvelasquez9018 3 жыл бұрын
As a professional programmer, I thought I could do this on my 1st trial. I finally got it to work (after trying hundreds of times, with sips of coffee, and believing holding my breath will help) when I found out that delaying the loop was my only solution. I had doubts that what I did wasn't the best way of doing it. And then I saw it at 18:42 that explained what I was missing. And now I can't sleep because of the coffee :) Nevertheless, I finally felt the true satisfaction of saying "BOOOOOM!"
@karlgross877
@karlgross877 4 жыл бұрын
I've finished 28 lessons in 4 days and have completed all the homework and lessons including this one. I retired from teaching jr high coding and robotics. We never got into programming Arduino and I always wanted to, so I bought an Ellego and Vilros kit and when they arrived, I started on your lessons and I am having a blast.
@aisssboudi
@aisssboudi 2 ай бұрын
Wow how 😮😮
@alanoestacado
@alanoestacado 4 жыл бұрын
Hey Paul, I'm really enjoying your new Arduino series. Please keep the lessons coming. I can tell you are a great teacher and wished you had been my high school science teacher many years ago. I often feel like I am back in high school science class during the sessions. This was the most challenging exercise to date. Took me a couple of tries to dust off enough brain cells to reach a solution. I always try to complete the lesson before watching your solution. BTW, I am using parts of your series as inspiration in teaching my six year old grandson about electronics. He loves working with the Arduino.
@patrickdelvisohopkins
@patrickdelvisohopkins 3 жыл бұрын
Hi Paul! Your Arduino tutorials are amazing. Your teaching approach is "most excellent" and inspirational! I tried this tutorial and solved it with a while loop and two if statements. It was a great feeling to achieve this on my own. Keep up the good work, sir! Thanks again!
@travisrichardson5366
@travisrichardson5366 4 жыл бұрын
Have to admit, this one stumped me. Thanks for walking us through it.
@hughpatterson1480
@hughpatterson1480 2 жыл бұрын
I started out wanting to get a Technicians license for Ham Radio. Flash forward two years later and I have an extra class license, I went back to school to become certified in IoT, just so I could build my own SDR radio. I now teach Arduino and and Raspberry Pi classes to teenagers. I built an electronics lab in my house as well. I decided to work through all your videos because I recommend them to anyone wishing to learn this type of material. My teaching has greatly improved due to your videos. I am so glad that you explain the math and get students to try things on their own. I came up with a similar sketch (although I prefer to call it code) when trying to do it on my own. I'm currently working on a self driving robot car based on the Arduino platform. I could do this stuff all day and night! Thanks for the great lessons!
@Spiffycaius
@Spiffycaius 4 жыл бұрын
I've been binge-watching these tutorials lately, ever since 2015, I've been trying to figure language out but couldn't at least until now, You made this very easy, and I'm finally understanding how it works, most importantly remembering it, it's hard to remember some things when you have a learning disability, so tysm for making this easy.
@adampuckey
@adampuckey Жыл бұрын
I attempted this on my own, and got as far as assigning an independent tracker - in my case I used a boolean. What I did not think of was using && , so I kept falling down, cycling through random states. I also did not think of placing a small delay in the loop to make things a little cleaner; that was a very useful lesson. I then watched through and, although I wasn't able to work through it alone, the lesson afterwards made a lot more sense for having at least tried! Thanks Paul!
@whynot548
@whynot548 Жыл бұрын
I was able to use your tutorial to turn an ultrasonic sensor into a switch whenever it read a value under a certain number. Thank you so much for making the tutorials you do, you explain them very well and cover a lot of very useful things!
@kageshirou
@kageshirou 3 жыл бұрын
I've been looking at the code over and over again and it's amazing how efficient the code is. It's quite confusing at first but I am starting to understand why it works. Many thanks for showing how to use a pushbutton as a toggle switch!
@nortetrading3136
@nortetrading3136 4 жыл бұрын
18:04 is the funniest part on this series yet! Thanks Paul!
@patrickdoherty3371
@patrickdoherty3371 2 жыл бұрын
Love how you instruct! Repetitive programming is the best way to learn. I've replayed and re-programmed many of your lectures! Thanks!
@nahuel3256
@nahuel3256 3 жыл бұрын
I was not able to do it by myself, but I saw the light when you mentioned that we should consider the previous logic state and the actual logic state of the button!!! That was a great insight!! Your videos are fabulous!!!
@quaternion-pi
@quaternion-pi 4 жыл бұрын
As always- excellent, practical explanation - including debouncing the switch. My solution used logical not (!) on LEDState in the if statements.
@yp4577
@yp4577 4 жыл бұрын
These lessons are great! You are such an amazing teacher. Having said that, I will have to reread some of the code written to follow along exactly how the commands make up a toggle switch. As you can probably deduce from that, I was NOT able to come up with the solution all by myself.
@libbytardalo2071
@libbytardalo2071 3 жыл бұрын
I was lost. You had to 'baby step' me through this one and that's okay. I'm here to learn. And you sir, are a teacher.
@yousefessam5235
@yousefessam5235 2 жыл бұрын
Thank you for your amazing tutorials, Paul. As for the toggle switch assignment, I managed to do it in another way before watching you. When the value read by digitalRead becomes 0, we enter a loop which keeps reading the value of digitalRead until it becomes 1 and when it becomes a 1, we toggle a boolean variable - which represents the state of the LED.
@mikemanny1533
@mikemanny1533 4 жыл бұрын
Hi, Paul...got to be honest with you, I couldn't work this one out by myself! The problemo was a tad confusing to solve, Old Bean, and after many cups of tea and a whole lotta head scratching and coding errors, I gave up and admitted defeat. The answer to the problem was even harder than I had imagined, so it was a good job that you went on to explain how to overcome this particular problem. Thanks again from across the pond....hope all's well over there with you and family, what with all this Coronavirus malarky. Stay in...stay safe...and stay "switched on".....pardon the pun. Regards....the Grumpy Limey.
@rebeccahare897
@rebeccahare897 4 жыл бұрын
Great video series, thanks very much Paul. I came at this problem in a slightly different way: since the LED modes are binary (at least in this scenario), if you do a button counter (i++ [or j++]), you can then write an "if" statement to check if it is an even number - LOW if even, HIGH if odd. This also gives an advantage of being able to count the number of times the LED has been on & times button has been pressed (if you add a Serial.print!).
@426F6F
@426F6F Жыл бұрын
That's pretty much how mine worked too, but instead, I made 'x += 1;'. When x == 1, the light turns on, then after the next iteration when 'x==2', the light turns off and in the same block I put 'x = 0;' to reset it. It was a pretty simple way to code it.
@markelven1552
@markelven1552 4 жыл бұрын
Cannot believe it has taken me so long to start watching this series! Excellent tutorials, keep up the great work it is much appreciated.
@stevenfinken5835
@stevenfinken5835 2 жыл бұрын
I have been watching the series (old as well as the new and improved) repeatedly. Here is the thing for me. If you listen once, you heard it...if you follow along...you copied it...if you do it on your own after the previous, you remembered it...but, if you can create from what you have done previously, you have gained experience and knowledge, therefore...you have learned. I have LEARNED things by reviewing and practicing via your lessons. The things I have taken from your lessons is far more than I learned from dozens of books. For this I thank you, and ask that you continue to keep it simple and speak in "English" vs. speaking in trueNerd (bumpy text used there just for you). Keep up the good work!
@thefierceninja2557
@thefierceninja2557 3 жыл бұрын
Honestly, toggle switches are the bane of my existence as I have always had issues with making them in both programs and videogames, and it's really annoying too because I have made very complex logic systems and made flight control chips using logic gates in games like Scrap Mechanic but I couldn't make a toggle switch, but now I finally found a way that works for all scenarios thanks to this video. Amazing teaching Paul!
@prankshot7971
@prankshot7971 4 жыл бұрын
I tried many ways but never succeeded ..after watching this video i am feeling confident.. thanks so much
@jjedwards1
@jjedwards1 Жыл бұрын
That took me a long time to wrap my head around. I tried numerous things with counters and switch values but need to see your example and then "draw it out" several times to see why it worked. Very elegant in the end. Thanks
@TheTradesman1111
@TheTradesman1111 3 жыл бұрын
Hi Paul - Gratitude to you for providing super quality content. I am a big fan of you and your teaching style and learning a lot everyday. I feel delighted as I got through the toggle switch code after few tries without going into the solution that follows. I captured lag value of the push button and passed it inside the while loop where i reread current value of push button and compared for combination (0,1) and if true then used MOD operator on the counter variable to toggle LED :)
@vladstrulev
@vladstrulev 4 жыл бұрын
Thank you very much. Great. I've learned to do it with millis(), not delay()
@Ikke-xd4nl
@Ikke-xd4nl 3 жыл бұрын
Got this exercise suprisingly quick tbh but did it in a different way, I read the value of the buttonPin and when it's pressed I use a while loop to wait until the button is released again to then switch the state of the LED. This uses less variables (no old/new) and makes it a bit easier to understand in my opinion. Still very interesting to see how you did it! Discovering multiple ways to solve a problem is the best way to learn and really get a solid understanding of solving problems on your own. I only recently got a kit and even though I have some programming experience in Python I'm quite new to electronics and racing through the vids right now.
@msmnutech2814
@msmnutech2814 3 жыл бұрын
I'm similar to you. Programming experience with little to no electronics experience. I also solved it the same way as you did. Check it button pushed, if it is, set the LED on, then wait for it to be released. When released, wait for it to be pushed again, when its pushed a second time, set the LED off and wait for it to be released again. when its released, let the program end so you start at the top again. I'm enjoying the combination of electronics and programming.
@lvessen
@lvessen Жыл бұрын
Thanks, this worked for me too.
@manuellomote1425
@manuellomote1425 Жыл бұрын
Your comment has everything I was going to say 😊
@TheGauld89
@TheGauld89 4 жыл бұрын
Another great lesson. I have only very recently started trying to learn how to code with Arduino. I have been following your lessons and they've been a massive help. Keep it up, this is the very best of Arduino coding video tutorials out there!!
@jordynvanevenhoven6305
@jordynvanevenhoven6305 2 жыл бұрын
I never thought that I'd learn so much from such a simple task! I figured it out my own way after a bit of head scratching but still thoroughly enjoyed how you broke it down and explained it. Love your videos and plan on using what I learn in my club, my future classes, and hopefully even one day on the job.
@paulmcwhorter
@paulmcwhorter 2 жыл бұрын
Fantastic!
@jamess009
@jamess009 4 жыл бұрын
After hours of banging my head against a wall I finally managed to get it working, with a bit of help from google i admit. I did it a bit differently, I made a counter and each time you press the button it adds 1. Then if the count is at an odd number the led is off, if its an even number it turns on
@GLH8
@GLH8 3 жыл бұрын
I did this, but it made it flash whenever you held the button down.
@allensun
@allensun 3 жыл бұрын
Thanks for the tutorial! I was able to figure it out beforehand, however I used a slightly different approach. In my code, when digitalRead() detects a "0", I enter a while loop which continually performs more digitalReads() until it detects a "1". This indicates the button was released, so I proceed to do an LED state change which was quite similar to your implementation (though I used a boolean variable for LEDState rather than an integer).
@karanjaspreetsingh3807
@karanjaspreetsingh3807 3 жыл бұрын
I too did the same way
@tacowithgiantbeansallover
@tacowithgiantbeansallover 2 жыл бұрын
SAME
@echanical2156
@echanical2156 2 жыл бұрын
If you use a while loop, your program will stuck in there until you release the button. It can't be used in programs with multiple things running simultaneously.
@FarmBoyTech
@FarmBoyTech Жыл бұрын
Did u do this without delay ?
@tretty07
@tretty07 3 жыл бұрын
I couldn't figure out the coding on my own and had to see your code, then I had to watch the video 3 times to understand when the condition, "if(buttonOld ==0 && buttonNew==1)" became true, then the light literally turned on and I was able to understand. I am learning so much from you, keep up these most excellent tutorial videos.
@rexaustin2885
@rexaustin2885 4 жыл бұрын
Hey Paul, thanks so much for your series. your new patron here. Not even exams have kept me awake like your lessons or as excited for the next. i was able to do it using three 'while' loops within one 'if' loop. also, i am not sure if i missed it before but that 'else' command came out of the blue. good thing i went through the whole tutorial. that was a much more efficient way to do it, perhaps
@kenmeyer100
@kenmeyer100 3 жыл бұрын
After banging my head against a wall for a microsecond, I got my version running before watching the video. (my secret: I did hold my breath)
@jitunehete
@jitunehete 4 жыл бұрын
Sir please make lesson on SPI interface. . Thanks in advance..
@danbishop4035
@danbishop4035 4 жыл бұрын
Another great video...my mother passed away a couple of years ago and she had this old flashlight that she always used. Her old flashlight will soon get an upgrade to an Arduino nano, as many LEDs as I can fit into the lens area and a variant of this toggle code. Also thanks to your Fusion 360 tutorials I'll be 3D printing and insert to fill the void of the battery compartment which will hold the nano and the batteries. Thanks for the inspiration!
@erygion
@erygion 4 жыл бұрын
I could not do this on my own Mr. Mcwhorter. This was a great lesson and I fully understand what's going on. What a handy function. Very clever. Thank you sir.
@oleksandr_honcharov
@oleksandr_honcharov 4 жыл бұрын
Hi, Paul🙂 Interesting tutorial, thank you very much as always) I did it like that before watching how you did it. const int redPin = 12; const int buttonPin = 10; int buttonRead; int redLEDState = LOW; void setup() { Serial.begin(9600); pinMode(redPin, OUTPUT); pinMode(buttonPin, INPUT); buttonRead = digitalRead(buttonPin); } void loop() { digitalWrite(redPin, redLEDState); int newRead = digitalRead(buttonPin); if (buttonRead != newRead && newRead == 1) { redLEDState = !redLEDState; } buttonRead = newRead; Serial.println(buttonRead); }
@nahuel3256
@nahuel3256 3 жыл бұрын
this is very elegant
@michaeltanner4404
@michaeltanner4404 2 жыл бұрын
@@nahuel3256 It is, with one exception. He's declaring a new newRead variable with every loop. I don't think the Arduino does garbage collection, so he has a memory leak. Better to declare newRead as a global and just assign it a new value every pass through the loop. Other than that, it's definitely less code than my attempt :)
@evreid6800
@evreid6800 4 жыл бұрын
This one stumped me. I tried to get the program to look at LEDPin and ButtonPin. I got it to come in and stay on but not turn off
@shatann
@shatann 4 жыл бұрын
I had the same problem. Turned out to be the wiring. I only had pin12 going to the switch, but you also need the 5V.
@wonderwang1585
@wonderwang1585 4 жыл бұрын
I have the same problem with yours. Push buttom, it is on; push button again, it still on.
@minhtam5051
@minhtam5051 3 жыл бұрын
the concept you introduce in this video is sophisticated!
@nicholasmakas7356
@nicholasmakas7356 3 жыл бұрын
I am loving this series, the utility of the internet is in action. I tried to program the toggle switch but struggled with exiting loops, I am use to programming in Python, so it was frustrating with the new 'rules' but I ended up using a return statement in my if statements and I was able to program the toggle switch successfully. Thankyou for the content Paul
@Ben-fy3dl
@Ben-fy3dl 3 жыл бұрын
Damn this pushbutton toggle is logic intensive. I need more brainpower lol
@daveflatters4981
@daveflatters4981 3 жыл бұрын
I got it myself by using 3 if statements and an On variable with 3 states 0, 1, & 2. If button = 0 & On = 0 turn led HIGH & On = 1 If button = 1 & On = 1 turn led HIGH & On = 2 If button = 0 & On = 2 turn led LOW & On = 0
@jakerice1593
@jakerice1593 Жыл бұрын
I'm loving the videos so far! for anyone watching this in the future, there are actually a few ways to code this. The most efficient I've found, was to just use while-loop-waits, much like waiting for user input.
@johndavid360
@johndavid360 3 жыл бұрын
I’m so amazed about all of these new programs!
@AnshishRay
@AnshishRay 3 жыл бұрын
cant do it by myself! :(
@user-ev5tn8on5t
@user-ev5tn8on5t Ай бұрын
Same!
@nicholasknapik1423
@nicholasknapik1423 Жыл бұрын
Network admin and beginner tinkerer here. Found your tutorial Playlist when searching for teaching that wasn't filled with fluff. These videos are great. I could likely skip around and go ahead but I'm enjoying the fundamentals you teach on every component. Thank you. Looking forward to getting to display screens.
@Dragonsecho3
@Dragonsecho3 3 жыл бұрын
I've looked up other arduino help before, and it's patchy at best. You lay it out and actually explain the content. You've answered questions I've long had that no one else has come close to answering. Thank you
@axelbrendel4091
@axelbrendel4091 3 жыл бұрын
My sentiments exactly!
@TMRu22311
@TMRu22311 2 жыл бұрын
I didn't even have a clue how to go about this one. I really appreciate the time you have taken to help us all better understand this stuff. Has anyone else wondered how any of these videos could get a "Dislike?" Personally, I am very grateful for these videos and always looking forward to the next lesson. I can't wait until the day when I can start creating my own circuits and projects. Thank you Paul (10^100) times!!!!
@BGP_23
@BGP_23 4 жыл бұрын
Thank you for this video. It was great to see this done live versus in a wall of text. Keep up the great videos, I am working through the backlog.
@anthonyj.dipasqua4676
@anthonyj.dipasqua4676 3 жыл бұрын
It is fun to think of what I could do with this new power. I did not figure it out on my own and had to follow your demo. Thanks again Mr McWhorter! I hope you had and will continue to have a happy holiday!
@zachhamersley967
@zachhamersley967 3 жыл бұрын
This was a tough one, but had some fun! I had to watch the video to work this one out. Then I had major issues with the brackets in the code...Figured it out eventually, learned a lot about bracket placement. I used a lot of the troubleshooting skills that I learned in the earlier lessons, "comment out" is a great tool. Used the code from Lesson 27 to troubleshoot the circuit hookup. It reminded me of something you said in an earlier lesson," the code is doing exactly what you tell it to do." Very important lesson here, Thanks Paul!!!
@coconutyesse
@coconutyesse Жыл бұрын
Yes. I did it after I checked the strategy drawing. It is the most important part before the coding. Thanks for this great lesson!
@user-zu1ix3yq2w
@user-zu1ix3yq2w 3 жыл бұрын
I did this on my own, but the explanation on graph paper was incredibly insightful.
@wayneswan3092
@wayneswan3092 3 жыл бұрын
There were multiple other sources I was able to look over to set up toggle button. However, as always, yours has proven to be most educational! After going through it with you on this video, however, I have since been able to set up multiple void loops to manipulate 4 RGB-LEDs in various ways, that I was then able to toggle through at the touch of a button. This has been my primary goal since I started playing with Arduino using LEDs. Next I'll be investing in other RGB LED cables and other fun light toys to program to dance to my own liking. Thank you Paul!
@Traxonen
@Traxonen 2 жыл бұрын
I missed the initial test but your explanations were so clear that it seemed almost easy... Wonderful!
@rontanedo
@rontanedo 2 жыл бұрын
Thanks for making it easier to comprehend! :D How this code works is really blowing my mind off. Looking forward to more lessons you teach!
@evanbudd649
@evanbudd649 2 жыл бұрын
It took me longer than I thought it would. I had to leave it alone for a while and come back to it. I remembered dealing with "lead edge" and "lag edge" signals when troubleshooting a different problem which led me to a similar solution, but as others have said, yours was more efficient. Awesome challenge! I was tempted to give up because it seemed like the solution should be so obvious. Glad I worked it out myself. Thanks for the great videos.
@paulmcwhorter
@paulmcwhorter 2 жыл бұрын
This is a classic programming problem, and one much harder than you would expect. Glad you understand it now
@Ronavargas
@Ronavargas 4 жыл бұрын
This project was very difficult. Completed along with your explanation regarding the 2 variables and conditions associate with pushbutton and LED respectively. Thanks for your support.
@souljr.
@souljr. 3 ай бұрын
I was definitely mistaken by the appeared simplicity of the homework. I then fell into my bad habit trap of overthinking the absolute hell out the problem. Gave up and felt quite silly when I came and saw the answer. I'm happy you gave us this assignment, it seems to have gotten most people thinking quite critically! You are truly one of the most amazing teachers I've ever had the pleasure of studying under (even though not in a typical sense).
@lawrencex5745
@lawrencex5745 4 жыл бұрын
This one really stumped me. Love how easy you make it look. Thanks Paul. :-)
@jimfisher5099
@jimfisher5099 3 жыл бұрын
I will admit, it took all day tinkering with it, but I got it to work this evening!! Now, my reward it watching this video before I go to bed...
@srikannandairy
@srikannandairy 4 жыл бұрын
I tried myself, it is working. It's great on your part to insist on writing the code by myself.
@enriqueeenriquez2180
@enriqueeenriquez2180 2 жыл бұрын
i forgot to mention in my previous comment, that your code is simple, elegant and clever and very important, validated. You kept the button pressed on to ensure it will not change, simple but effective validation.. WELL DONE!!!!
@paulmcwhorter
@paulmcwhorter 2 жыл бұрын
I appreciate that!
@anonymouse4147
@anonymouse4147 8 күн бұрын
this one was really hard but finally i got it using 5 while loop, thank you paul for making the concepts very clear with examples.
@laxmanrao4554
@laxmanrao4554 3 жыл бұрын
Many thanks again Paul. I am just loving these awesome lessons! ❤️ I made an addition to the task for myself. Led will be on on every 3rd release of push button. Codes below: Variables int ledPin=2; int buttonPin=4; int buttonOld=1; int buttonNew; int ledState=0; int dt=500; Void setup(){ Serial.begin(9600); pinMode(ledPin,OUTPUT); pinMode(buttonPin, INPUT); // I AM POWERING THE BUTTONPIN USING A 5V VOLTAGE OUTPUT SLOT IN ARDUINO. void loop(){ buttonNew=digitalRead(buttonPin); Serial.println(buttonNew); if(buttonOld==1 && buttonNew==0){ if(ledState==0){ digitalWrite(ledPin,LOW); ledState=1; buttonOld=buttonNew; } } if(buttonOld==0 && buttonNew==1){ if(ledState==1){ digitalWrite(ledPin,LOW); ledState=2; buttonOld=buttonNew; } } if(buttonOld==1 && buttonNew==0){ if(ledState==2){ digitalWrite(ledPin,LOW); ledState=3; buttonOld=buttonNew; } } if(buttonOld==0 && buttonNew==1){ if(ledState==3){ digitalWrite(ledPin,LOW); ledState=4; buttonOld=buttonNew; } } if(buttonOld==1 && buttonNew==0){ if(ledState==4){ digitalWrite(ledPin,LOW); ledState=5; buttonOld=buttonNew; } } if(buttonOld==0 && buttonNew==1){ if(ledState==5){ digitalWrite(ledPin, HIGH); delay(dt); ledState=0; } buttonOld=buttonNew; }
@ovi_4
@ovi_4 4 жыл бұрын
Ahhhh, I was thinking of the need to use new and old state variables and I have used them but did not realize that you have to actually ,,manually,, change the LEDstate after the IF statement and then manually change it again after the else statement. So my LED switched on at the first push but that was it. I could no longer switch it OFF after that. I must have tried about a dozen different combinations and lots of ,, head scratches,,. Oh...what a bummer...:))) But you know what I'm absolutely hucked on your teaching style. You are a true native teacher. Thank you very much and please, please do not stop the series. It is....well... it goes without saying one of the best teachings I've ever encountered here on youtube. Once again, Thank You, Sir.
@robertcurpan9047
@robertcurpan9047 3 жыл бұрын
Hi Paul! I managed to do the task on my own and in another way. What I did different is that I did 2 digitalReads with a little delay in between ( buttonVal1=digitalRead(buttonPin) ; delay(20) ; buttonVal2=digitalRead(buttonPin) ). Then I pretty much did as you did, only that I used a digitalRead for the LEDstate as well (yellowVal in my code). Thanks for the lesson!
@Sam-rz5hw
@Sam-rz5hw 2 жыл бұрын
IT WORKED! THANKS A LOT SIR! // PULL DOWN RESISTOR int readPin = 2; int outPin = 3; int delayTime = 500; int signal = 0; void setup() { pinMode(readPin, INPUT); pinMode(outPin, OUTPUT); Serial.begin(9600); } void loop() { while (digitalRead(readPin) == 0) { digitalWrite(outPin, signal); } while (digitalRead(readPin) == 1) { digitalWrite(outPin, signal); } signal = !signal; digitalWrite(outPin, signal); delay(delayTime); }
@stefanfarier7384
@stefanfarier7384 4 жыл бұрын
You reminded me to be aware of the power of boolean algebra and reassignment of variables. Thanks much! Love from Guyana
@anandg825
@anandg825 10 ай бұрын
I don't think any other code has such ingenuity with fewer statements but works without any glitches and oscillation, especially at the release of the switch. Moreover, the way you explained with the dots on graph is amazing. No one can match you. Thanks Mr.Paul.
@DGworksIvan
@DGworksIvan 2 жыл бұрын
the line if(buttonOld==0 && buttonNew==1) made me so confused, I rewatch the video 3 times and started analyze the logic of the code, since if(buttonOld==1 && buttonNew==0) made way more sense to me! What made it more confusing is the program works both ways. Then i studied with 100% concentration, serial printed all values to analyze if i missed something....BOOM! the code works both ways, however the trigger time is different! It has been so long I lost the joy of studying and figuring stuff by myself. Thanks Mr. McWhorter, your lesson is way too good to be free on internet.
@user-su5sq5ib3i
@user-su5sq5ib3i Жыл бұрын
Had to go back to this just to marvel at how powerful yet simple, brilliant!
@danbishop4035
@danbishop4035 4 жыл бұрын
Although I didn't complete the project on my own I did recognize that we needed several variables to keep track of the button state. Maybe a little laziness on my part because had a diagrammed it out I think I'd have come up with the solution. I will be using this to transform an old school flashlight that my mother used when she drove trucks into an LED flashlight with a toggle switch. A lot of good information in this lesson...Thanks!!!
@user-qs4ti1bh6e
@user-qs4ti1bh6e 23 күн бұрын
This lesson kinda reminded me of working with rotary encoders, comparing a previous condition/state to a new one in order to determine the direction of rotation (clockwise or counterclockwise). Thanks for another great one, Semper Fidelis!
@jonnycorleone13
@jonnycorleone13 4 ай бұрын
I did it! Used a while loop white the button is pressed, and changed a boolean inside the while loop with an if, else if statement!! Thank you so much for your lessons Sir!
@rogthedodge99
@rogthedodge99 3 жыл бұрын
Only did it with help from the internet! I managed to fathom out a toggle variable, button didn't track the button state. Not many of us would have realised that an 'Else' was required, as youv'e not shown this before. Made me think though. Keep up the good work.
Жыл бұрын
Fantastic episode, thank you. We had to watch because we weren't able to figure out the delay due to the Button bouncing by ourselves. Thanks one more time.
@warrenscorner
@warrenscorner 4 жыл бұрын
I had no clue where to start! This is a fairly easy accomplishment in PLC ladder logic programming but this one stumped me.
@dannycollins5698
@dannycollins5698 Жыл бұрын
I didn't get it without you. The answer was harder than I thought! I did give it multiple tries before watching you. I got close using a while loop.
@magnusroigk3287
@magnusroigk3287 3 жыл бұрын
Dude you are awesome, using your toturials to get my projects done works just too fine. greetings from Germany
@EthanElkorr
@EthanElkorr Жыл бұрын
was not able to figure it out my self but followed along and now I understand how to. Love your Tutorials!!!
@pasteltiara
@pasteltiara 4 жыл бұрын
WOuld not have solved this problem. Did not think about the two-state concept.Had to follow on this lesson. And that made it much more clearer. A good one that made me think deeper.
@danielbrown9813
@danielbrown9813 Жыл бұрын
man, all i had was "okay, when it goes from 0 to 1 it's gotta do somethin" but had no real idea how to make that 'somethin' happen til seeing it and now it's so obvious. Thanks for the great content!
@kojitw
@kojitw 3 жыл бұрын
finally got it to working after several hours. forgot the "==" sign, didn't connect the pin correctly, there are many things that can go wrong, but I am glad to have made it. thanks, Paul!
@brandontodd1377
@brandontodd1377 2 жыл бұрын
Love the lesson. I was not able to get it working without watching you first... I did try though, just the code was much more complicated than i envisioned. Thanks for the lesson!!! Keep them coming please
@paulmcwhorter
@paulmcwhorter 2 жыл бұрын
Great job!
@devtest8259
@devtest8259 3 жыл бұрын
I really like your tutorials. Thank you for all you’ve done for the community.
@abramians1
@abramians1 3 жыл бұрын
Really challenging homework. Took me a loooong time, but was finally able to do it! Would welcome more of these challenging homeworks! As always, great tutorial!
@jaminvalick5612
@jaminvalick5612 3 жыл бұрын
Hi Paul. I'm enjoying this series so far and love the explanations. I was able to complete this homework with a different method but found yours to be a bit more efficient than what I came up with. Thank you for the amazing lessons, I'm learning a bunch!
@paulmcwhorter
@paulmcwhorter 3 жыл бұрын
Great job!
@lorisrobots
@lorisrobots 2 жыл бұрын
I was not successful on my own. I had the basic logic but the "bounce" in the circuit kept making me think I was totally wrong. Adding in a delay was the key. Thanks for the great lesson. Very practical.
@kevinroden5503
@kevinroden5503 2 ай бұрын
My new friend Gemini and I made the toggle switch slightly differently. Your excellent tutorials make it a lot easier to understand, and correct, the AI suggestions.
@lhoussainhamadi8414
@lhoussainhamadi8414 2 жыл бұрын
with a lot of thinking I couldn't build the code to make the toggle at the beginning, but with your help i Did it. Thank you M.r paul.
@wesleypingleton9519
@wesleypingleton9519 3 жыл бұрын
Paul, after some trial and error , I was able to perform this before watching your video . However I did this by putting a digital read onto the LED as well . So now I could keep track where the button was and what state the Led was constantly . I then set a couple IF statements and Boom!!
@agustinruiz2081
@agustinruiz2081 2 жыл бұрын
I was not able to figure out myself before to watch the video, my approach was far away and I become crazy :). Honestly, I had to watch the video a few time to understand the approach and finally I got it. Thank you very much!
@paulmcwhorter
@paulmcwhorter 2 жыл бұрын
Excellent!
@andylaurie326
@andylaurie326 4 жыл бұрын
great lesson. more viewers should become patreons. the content you provide is some of the best on youtube.
@manny419
@manny419 4 жыл бұрын
Love the lessons. Keep them coming. I did the assignment. I used a counter and a while loop. Every button press adds to the counter . While the counter is even the light turns on and while the counter is odd the light is turned off.
@callmeandoru2627
@callmeandoru2627 3 жыл бұрын
Nice. Mine is a bit different though. when the light turns on my 'counter' becomes 0 and when the light turns off my counter becomes 1. It's a boolean type variable
@mrktm65sx
@mrktm65sx 6 ай бұрын
Didn't get this one going by myself. Knew I needed state variables but couldn't finish it. Thanks Paul for the clear instructions!
Arduino Tutorial 29: Using Push Buttons to Create Dimmable LED
41:38
Paul McWhorter
Рет қаралды 138 М.
The day of the sea 🌊 🤣❤️ #demariki
00:22
Demariki
Рет қаралды 91 МЛН
The joker's house has been invaded by a pseudo-human#joker #shorts
00:39
Untitled Joker
Рет қаралды 13 МЛН
Must-have gadget for every toilet! 🤩 #gadget
00:27
GiGaZoom
Рет қаралды 11 МЛН
Arduino Tutorial 30: Understanding and Using Servos in Projects
18:05
Paul McWhorter
Рет қаралды 237 М.
Arduino Sketch with millis() instead of delay()
14:27
Programming Electronics Academy
Рет қаралды 224 М.
Arduino Tutorial 14- Using a Pushbutton as a Toggle Switch
10:43
Enjoy Mechatronics
Рет қаралды 4,8 М.
How to Control a 12V Motor with Arduino: Easy Wiring & Code Examples
44:13
Arduino Tutorial 25: Understanding Photoresistors and Photo Detectors
36:19
Arduino Tutorial 26: More Fun with Photo Resistors
31:38
Paul McWhorter
Рет қаралды 113 М.
Top Fifteen Mistakes People Make When Designing Prototype PCBs
12:26
Cosplay Light and Sound
Рет қаралды 132 М.
How to do multiple tasks in Arduino | Beginners | millis() function
10:23
Arduino Uno to ATmega328 - Shrinking your Arduino Projects
37:17
DroneBot Workshop
Рет қаралды 779 М.
Simple maintenance. #leddisplay #ledscreen #ledwall #ledmodule #ledinstallation
0:19
LED Screen Factory-EagerLED
Рет қаралды 6 МЛН
Best mobile of all time💥🗿 [Troll Face]
0:24
Special SHNTY 2.0
Рет қаралды 1 МЛН
Hisense Official Flagship Store Hisense is the champion What is going on?
0:11
Special Effects Funny 44
Рет қаралды 2,4 МЛН
Хотела заскамить на Айфон!😱📱(@gertieinar)
0:21
Взрывная История
Рет қаралды 4,4 МЛН