title
Arduino Programming

description
Get the Code : http://bit.ly/arduinotut Subscribe to Me: http://bit.ly/2FWQZTx Genuine Arduino : https://amzn.to/2nHD5Mk Kit I'm Using : https://amzn.to/2PdbwXI Best Arduino Beginner Book : https://amzn.to/2MuT7qS MY UDEMY COURSES ARE 87.5% OFF TIL February 13th ($9.99) One is FREE ➡️ Python Data Science Series for $9.99 : Highest Rated & Largest Python Udemy Course + 56 Hrs + 200 Videos + Data Science https://bit.ly/Master_Python_46 ➡️ C++ Programming Bootcamp Series for $9.99 : Over 23 Hrs + 53 Videos + Quizzes + Graded Assignments + New Videos Every Month https://bit.ly/C_Course_46 ➡️ FREE 15 hour Golang Course!!! : https://bit.ly/go-tutorial7 (100 Available) Like the channel? Consider becoming a Patreon! Check it out here: ►► https://www.patreon.com/derekbanas In this tutorial I'll cover the core C language used to program Arduinos. We'll look at ports, the serial monitor, looping, data types, conditionals, setup, loop, static, functions, arrays, strings, numerous math functions, bit manipulation, random, structs, styling text, pointers and much more. I make multiple little projects here, but the projects will get more advanced as I make more videos. *Watch More Learn in One Videos* ►► Java - https://youtu.be/n-xAqcBCws4 ►► C++ - https://youtu.be/Rub-JsjMhWY ►► Python - https://youtu.be/N4mEzFDjqtA ►► MySQL - https://youtu.be/yPu6qV5byu4 ►► PHP - https://youtu.be/7TF00hJI78Y ►► Kotlin - https://youtu.be/H_oGi8uuDpA ►► C# - https://youtu.be/lisiwUZJXqQ ►► JavaScript - https://youtu.be/fju9ii8YsGs

detail
{'title': 'Arduino Programming', 'heatmap': [{'end': 2544.45, 'start': 2508.895, 'weight': 1}], 'summary': "'arduino programming' covers arduino programming basics, led speed control, c functions, data types, operators, arrays, string manipulation, programming concepts, and core c language basics with arduino, addressing a wide range of topics including wait time manipulation, logical operators, and bit manipulation techniques.", 'chapters': [{'end': 384.229, 'segs': [{'end': 30.449, 'src': 'embed', 'start': 0.578, 'weight': 0, 'content': [{'end': 3.879, 'text': 'Well hello Internet and welcome to my Arduino C programming tutorial.', 'start': 0.578, 'duration': 3.301}, {'end': 9.4, 'text': "In this one tutorial I'm going to cover pretty much everything you can do C programming wise with an Arduino.", 'start': 3.919, 'duration': 5.481}, {'end': 12.081, 'text': "Now, of course, I'm not going to be able to cover all the different types of hardware,", 'start': 9.44, 'duration': 2.641}, {'end': 18.302, 'text': "but I will cover a lot of different hardware in regards to how we're going to use an Arduino.", 'start': 12.081, 'duration': 6.221}, {'end': 21.723, 'text': 'But I will cover pretty much everything you can do C programming wise.', 'start': 18.342, 'duration': 3.381}, {'end': 25.966, 'text': 'Like always, all of the code is available in the description underneath the video.', 'start': 21.983, 'duration': 3.983}, {'end': 30.449, 'text': 'I am also going to link to a kit that I am going to be using.', 'start': 25.986, 'duration': 4.463}], 'summary': 'Arduino c programming tutorial covers everything, code available in description.', 'duration': 29.871, 'max_score': 0.578, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw578.jpg'}, {'end': 83.948, 'src': 'embed', 'start': 54.987, 'weight': 1, 'content': [{'end': 58.23, 'text': "This is going to be the Arduino IDE, and this is what I'm going to use.", 'start': 54.987, 'duration': 3.243}, {'end': 59.971, 'text': 'However, you can use Visual Studio Code.', 'start': 58.27, 'duration': 1.701}, {'end': 61.512, 'text': 'It works pretty much exactly the same way.', 'start': 60.011, 'duration': 1.501}, {'end': 65.895, 'text': 'Alright, so Arduino.ccen main software.', 'start': 61.732, 'duration': 4.163}, {'end': 71.179, 'text': 'Or you can just go to Google and type in Arduino IDE and you will see this tutorial.', 'start': 66.155, 'duration': 5.024}, {'end': 74.221, 'text': "And this, Arduino IDE, is what I'm using.", 'start': 71.459, 'duration': 2.762}, {'end': 79.385, 'text': "And you can see it's available here for Windows and Mac and Linux and everything works exactly the same.", 'start': 74.261, 'duration': 5.124}, {'end': 83.948, 'text': "Alright, and here is the Arduino software we're using.", 'start': 79.725, 'duration': 4.223}], 'summary': 'Using arduino ide for windows, mac, and linux.', 'duration': 28.961, 'max_score': 54.987, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw54987.jpg'}, {'end': 190.905, 'src': 'embed', 'start': 162.558, 'weight': 2, 'content': [{'end': 165.141, 'text': 'And this is outside of any of our functions.', 'start': 162.558, 'duration': 2.583}, {'end': 166.001, 'text': 'This is a function.', 'start': 165.201, 'duration': 0.8}, {'end': 166.842, 'text': 'This is a function.', 'start': 166.041, 'duration': 0.801}, {'end': 171.206, 'text': 'And so what that means is this is what we call a global variable,', 'start': 167.222, 'duration': 3.984}, {'end': 177.551, 'text': 'meaning that this value is going to be accessible to all of the other code in our program.', 'start': 171.206, 'duration': 6.345}, {'end': 185.639, 'text': "And you do not want to have a lot of these in your program because it can become confusing because there's values changing all through your code.", 'start': 178.152, 'duration': 7.487}, {'end': 189.262, 'text': 'You want to pretty much keep everything inside of functions themselves.', 'start': 185.759, 'duration': 3.503}, {'end': 190.905, 'text': "So that's the basics there.", 'start': 189.642, 'duration': 1.263}], 'summary': 'Global variables should be minimized to avoid confusion and maintain code organization.', 'duration': 28.347, 'max_score': 162.558, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw162558.jpg'}, {'end': 232.927, 'src': 'embed', 'start': 204.759, 'weight': 3, 'content': [{'end': 209.983, 'text': 'And to do that, you have to start off by going serial begin and 9600.', 'start': 204.759, 'duration': 5.224}, {'end': 216.588, 'text': "And what this means is this is going to open up a port that's going to set how many bits per second.", 'start': 209.983, 'duration': 6.605}, {'end': 221.872, 'text': 'And 9600 is equivalent to 960 characters per second.', 'start': 216.849, 'duration': 5.023}, {'end': 223.694, 'text': "And it's pretty much a standard.", 'start': 222.373, 'duration': 1.321}, {'end': 224.715, 'text': "So that's what I'm going to use here.", 'start': 223.754, 'duration': 0.961}, {'end': 227.761, 'text': 'Now if we want to be able to light up the LED and, of course,', 'start': 224.955, 'duration': 2.806}, {'end': 232.927, 'text': "you're going to have to have a USB plugged into an Arduino into the back of your computer to be able to do this.", 'start': 227.761, 'duration': 5.166}], 'summary': 'Configuring serial port at 9600 bits per second for arduino communication.', 'duration': 28.168, 'max_score': 204.759, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw204759.jpg'}, {'end': 302.767, 'src': 'embed', 'start': 273.934, 'weight': 5, 'content': [{'end': 275.635, 'text': 'Hence the term loop.', 'start': 273.934, 'duration': 1.701}, {'end': 278.116, 'text': "Now what we're going to do is this is a global variable.", 'start': 275.795, 'duration': 2.321}, {'end': 284.999, 'text': "What we're going to do is we're going to create some local variables that are going to only be available inside of the loop function.", 'start': 278.136, 'duration': 6.863}, {'end': 289.161, 'text': "One thing we're going to do is we're going to turn our LED on and off.", 'start': 285.259, 'duration': 3.902}, {'end': 297.845, 'text': "So we are going to define another integer and we're going to say how much time we are going to delay the.", 'start': 289.421, 'duration': 8.424}, {'end': 300.446, 'text': "well, we're going to turn the LED on and then we're going to hit.", 'start': 297.845, 'duration': 2.601}, {'end': 301.927, 'text': 'this is a tenth of a second.', 'start': 300.446, 'duration': 1.481}, {'end': 302.767, 'text': "It's going to be on.", 'start': 302.007, 'duration': 0.76}], 'summary': 'Creating local variables for led on-off loop with 0.1 second delay.', 'duration': 28.833, 'max_score': 273.934, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw273934.jpg'}, {'end': 351.68, 'src': 'embed', 'start': 321.871, 'weight': 4, 'content': [{'end': 324.453, 'text': 'You can see LED pin is referenced there both times.', 'start': 321.871, 'duration': 2.582}, {'end': 329.837, 'text': 'We are then going to say that we want to have it stay on for a certain period of time.', 'start': 324.753, 'duration': 5.084}, {'end': 332.579, 'text': 'And that is going to be our delay period.', 'start': 329.997, 'duration': 2.582}, {'end': 334.801, 'text': 'And we can say that.', 'start': 333.2, 'duration': 1.601}, {'end': 341.546, 'text': "And then after that, we're going to say that we want to once again turn the LED pin off.", 'start': 335.121, 'duration': 6.425}, {'end': 344.209, 'text': 'And to do that, we say low.', 'start': 342.167, 'duration': 2.042}, {'end': 348.392, 'text': 'And this is a standard way just to test that our Arduino is working properly for us.', 'start': 344.549, 'duration': 3.843}, {'end': 351.68, 'text': 'Okay, and then after we have that, we turn it off.', 'start': 348.772, 'duration': 2.908}], 'summary': 'Demonstrating turning led pin on and off as a test for arduino.', 'duration': 29.809, 'max_score': 321.871, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw321871.jpg'}, {'end': 395.06, 'src': 'embed', 'start': 366.096, 'weight': 6, 'content': [{'end': 368.438, 'text': "Then we're going to come over here and click on verify.", 'start': 366.096, 'duration': 2.342}, {'end': 372.561, 'text': "And you're going to see down here, if there's any errors, there are none.", 'start': 368.998, 'duration': 3.563}, {'end': 374.022, 'text': "So you're going to click on upload.", 'start': 372.581, 'duration': 1.441}, {'end': 375.523, 'text': 'And whenever you do,', 'start': 374.562, 'duration': 0.961}, {'end': 384.229, 'text': "you're going to see that your Arduino is going to blink a couple of times and then it's led is going to blink pretty quickly on your screen.", 'start': 375.523, 'duration': 8.706}, {'end': 395.06, 'text': 'Now what I want to do is I want to increase the delay period between the LED blinking and then I want to go backwards and have it speed up and slow down,', 'start': 384.429, 'duration': 10.631}], 'summary': 'Demonstrating the uploading process for arduino, with no errors, led blinks and speed variations.', 'duration': 28.964, 'max_score': 366.096, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw366096.jpg'}], 'start': 0.578, 'title': 'Arduino programming basics', 'summary': 'Covers c programming with arduino, including software requirements, hardware setup, defining constants for an led pin, global variables, led control, and uploading code to arduino uno board.', 'chapters': [{'end': 162.558, 'start': 0.578, 'title': 'Arduino c programming tutorial', 'summary': 'Covers everything about c programming with arduino, including software requirements, hardware setup, and defining constants for an led pin, emphasizing the use of arduino ide and the arduino uno board.', 'duration': 161.98, 'highlights': ['The chapter covers everything about C programming with Arduino, including software requirements, hardware setup, and defining constants for an LED pin. Covers software requirements, hardware setup, defining constants for an LED pin', 'Emphasizes the use of Arduino IDE and the Arduino Uno board. Emphasizes Arduino IDE, Arduino Uno board']}, {'end': 384.229, 'start': 162.558, 'title': 'Arduino basics: global variables and led control', 'summary': 'Explains the concept of global variables and their accessibility, initializing the serial monitor to communicate with the arduino, setting up the led to turn on and off using pins and delay periods, and testing the code by uploading it to the arduino.', 'duration': 221.671, 'highlights': ['Explaining global variables and their accessibility to all program code The explanation of global variables emphasizes their accessibility to all program code, cautioning against excessive usage due to potential confusion caused by changing values throughout the code.', 'Initializing the serial monitor with serial begin and 9600 bits per second The tutorial highlights the process of initializing the serial monitor using serial begin at 9600 bits per second, which is equivalent to 960 characters per second, providing a standard for communication.', 'Setting up the LED to turn on and off using a specific pin and specifying it for output The tutorial explains the process of setting up the LED to turn on and off by referencing a specific pin (in this case, pin 13) and specifying it for output, enabling the user to change its value.', "Creating local variables inside the loop function to control the LED's on and off cycles The tutorial covers the creation of local variables inside the loop function to control the LED's on and off cycles, specifying a delay period of 100 milliseconds for the LED to be on before turning off.", "Testing the code by verifying and uploading it to the Arduino The tutorial emphasizes the importance of testing the code by verifying it for errors and then uploading it to the Arduino, ensuring its proper functionality by observing the LED's blinking pattern."]}], 'duration': 383.651, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw578.jpg', 'highlights': ['Covers c programming with arduino, including software requirements, hardware setup, defining constants for an led pin, global variables, led control, and uploading code to arduino uno board.', 'Emphasizes the use of Arduino IDE and the Arduino Uno board.', 'Explains global variables and their accessibility to all program code, cautioning against excessive usage due to potential confusion caused by changing values throughout the code.', 'Initializes the serial monitor with serial begin at 9600 bits per second, providing a standard for communication.', 'Explains the process of setting up the LED to turn on and off by referencing a specific pin (in this case, pin 13) and specifying it for output, enabling the user to change its value.', "Covers the creation of local variables inside the loop function to control the LED's on and off cycles, specifying a delay period of 100 milliseconds for the LED to be on before turning off.", "Emphasizes the importance of testing the code by verifying it for errors and then uploading it to the Arduino, ensuring its proper functionality by observing the LED's blinking pattern."]}, {'end': 814.876, 'segs': [{'end': 433.688, 'src': 'embed', 'start': 384.429, 'weight': 0, 'content': [{'end': 395.06, 'text': 'Now what I want to do is I want to increase the delay period between the LED blinking and then I want to go backwards and have it speed up and slow down,', 'start': 384.429, 'duration': 10.631}, {'end': 397.062, 'text': 'speed up and slow down over and over and over again.', 'start': 395.06, 'duration': 2.002}, {'end': 398.383, 'text': 'So how am I going to do that??', 'start': 397.282, 'duration': 1.101}, {'end': 406.171, 'text': 'Well, I am going to just come inside of the code that we already wrote, and right after this guy, I am going to put some more code in here.', 'start': 398.583, 'duration': 7.588}, {'end': 419.178, 'text': "So what I'm going to do is I'm going to say, if my delay period is equal to 1000, which is going to be the maximum amount that I want to wait,", 'start': 406.59, 'duration': 12.588}, {'end': 421.86, 'text': 'or one second or so.', 'start': 419.178, 'duration': 2.682}, {'end': 424.622, 'text': 'this is a condition and this is going to be another condition.', 'start': 421.86, 'duration': 2.762}, {'end': 432.287, 'text': 'The delay period is equal to zero, which is going to be the minimum that I wanted to wait.', 'start': 424.922, 'duration': 7.365}, {'end': 433.688, 'text': 'And there we go.', 'start': 432.908, 'duration': 0.78}], 'summary': 'Code will increase and decrease led delay period between 0 and 1000.', 'duration': 49.259, 'max_score': 384.429, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw384429.jpg'}, {'end': 485.794, 'src': 'embed', 'start': 460.72, 'weight': 2, 'content': [{'end': 466.743, 'text': "But as you can see, this function we have here is starting to get kind of long and we're going to be adding even more code to this.", 'start': 460.72, 'duration': 6.023}, {'end': 474.606, 'text': 'So what I want to do is create another outside function that I can then call to keep my functions a reasonable length overall.', 'start': 467.123, 'duration': 7.483}, {'end': 478.908, 'text': "So I'm going to start off using good coding practices here right from the beginning.", 'start': 474.846, 'duration': 4.062}, {'end': 485.794, 'text': "So, up here, right after this variable has been declared, I am going to mend and I'm going to create another integer,", 'start': 479.148, 'duration': 6.646}], 'summary': 'Creating an outside function to keep codebase manageable and adhering to good coding practices.', 'duration': 25.074, 'max_score': 460.72, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw460720.jpg'}, {'end': 787.245, 'src': 'embed', 'start': 756.993, 'weight': 1, 'content': [{'end': 761.495, 'text': "So what we're going to do is we're going to come in and we're gonna put static in front of that.", 'start': 756.993, 'duration': 4.502}, {'end': 770.399, 'text': 'And what static means is that we only want to initialize or set a value for this one time, And whenever we come into loop the next time,', 'start': 761.895, 'duration': 8.504}, {'end': 772.62, 'text': 'we do not want it to be reset to 100..', 'start': 770.399, 'duration': 2.221}, {'end': 777.221, 'text': 'We want to start it off at 100 and then be able to change it each time through the loop.', 'start': 772.62, 'duration': 4.601}, {'end': 780.142, 'text': "So once again, we're going to click Compile, and we're going to run it.", 'start': 777.361, 'duration': 2.781}, {'end': 787.245, 'text': 'And this time, you are going to see on your LED that the wait time is going to slowly increase.', 'start': 780.582, 'duration': 6.663}], 'summary': "Using 'static' to initialize value once in loop, led shows slow increase in wait time.", 'duration': 30.252, 'max_score': 756.993, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw756993.jpg'}], 'start': 384.429, 'title': 'Led blinking speed control and creating outside functions', 'summary': 'Demonstrates adjusting the delay period between led blinking, creating a pattern of speeding up and slowing down, between 0 and 1000 milliseconds. it also discusses creating an outside function to maintain a reasonable length overall, utilizing good coding practices, and the use of static to prevent resetting values in a loop, resulting in gradual increase and decrease of wait time on an led.', 'chapters': [{'end': 433.688, 'start': 384.429, 'title': 'Led blinking speed control', 'summary': 'Demonstrates how to adjust the delay period between led blinking, creating a pattern of speeding up and slowing down, between 0 and 1000 milliseconds.', 'duration': 49.259, 'highlights': ['By adjusting the delay period between LED blinking, a pattern of speeding up and slowing down can be created, ranging between 0 and 1000 milliseconds.', 'The code will include conditions for the delay period being equal to 1000, representing the maximum wait time, and for the delay period being equal to 0, the minimum wait time.']}, {'end': 814.876, 'start': 433.888, 'title': 'Creating outside functions', 'summary': 'Discusses creating an outside function to maintain a reasonable length overall, utilizing good coding practices, and the use of static to prevent resetting values in a loop, resulting in gradual increase and decrease of wait time on an led.', 'duration': 380.988, 'highlights': ['Using an outside function to maintain a reasonable length overall The chapter emphasizes creating an outside function to keep the current function at a reasonable length, promoting code organization and readability.', 'Utilizing good coding practices The speaker stresses the importance of using good coding practices from the beginning, demonstrating the intention to maintain high-quality code standards.', "Using static to prevent resetting values in a loop The chapter explains the use of 'static' to avoid resetting values in a loop, allowing the gradual increase and decrease of the wait time on the LED, showcasing the practical application of the concept."]}], 'duration': 430.447, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw384429.jpg', 'highlights': ['By adjusting the delay period between LED blinking, a pattern of speeding up and slowing down can be created, ranging between 0 and 1000 milliseconds.', "Using static to prevent resetting values in a loop The chapter explains the use of 'static' to avoid resetting values in a loop, allowing the gradual increase and decrease of the wait time on the LED, showcasing the practical application of the concept.", 'Using an outside function to maintain a reasonable length overall The chapter emphasizes creating an outside function to keep the current function at a reasonable length, promoting code organization and readability.', 'The code will include conditions for the delay period being equal to 1000, representing the maximum wait time, and for the delay period being equal to 0, the minimum wait time.', 'Utilizing good coding practices The speaker stresses the importance of using good coding practices from the beginning, demonstrating the intention to maintain high-quality code standards.']}, {'end': 1306.548, 'segs': [{'end': 858.964, 'src': 'embed', 'start': 814.876, 'weight': 0, 'content': [{'end': 823.819, 'text': 'so the wait time is increasing And then, once it hits 1000, it is then going to turn around and the wait time will start decreasing,', 'start': 814.876, 'duration': 8.943}, {'end': 826.5, 'text': 'just like we see right there.', 'start': 823.819, 'duration': 2.681}, {'end': 832.502, 'text': "And now I'm going to jump over and I'm going to show you my Arduino and exactly what this looks like on the Arduino.", 'start': 826.961, 'duration': 5.541}, {'end': 834.343, 'text': "And then we'll get back to write more code.", 'start': 832.683, 'duration': 1.66}, {'end': 840.465, 'text': 'You can see here on the Arduino, it is going to get slower and slower and slower.', 'start': 835.083, 'duration': 5.382}, {'end': 845.247, 'text': 'And then eventually it will start speeding up just as we had programmed it to do.', 'start': 840.685, 'duration': 4.562}, {'end': 850.356, 'text': "Okay, and we're back.", 'start': 849.215, 'duration': 1.141}, {'end': 858.964, 'text': 'One thing I wanted to mention is right here where we said we were going to execute this code if this was true or that was true.', 'start': 850.516, 'duration': 8.448}], 'summary': 'Demonstrated wait time increasing, then decreasing, on arduino.', 'duration': 44.088, 'max_score': 814.876, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw814876.jpg'}, {'end': 907.174, 'src': 'embed', 'start': 878.448, 'weight': 3, 'content': [{'end': 884.634, 'text': "I'm going to create a function inside of here that is going to do a countdown before it starts manipulating the code.", 'start': 878.448, 'duration': 6.186}, {'end': 892.302, 'text': "And I'm going to pass the value of 5, and that means it is going to go and it's going to print 5, 4, 3, 2, 1 and then go,", 'start': 884.955, 'duration': 7.347}, {'end': 894.144, 'text': "and then it's going to start executing this code.", 'start': 892.302, 'duration': 1.842}, {'end': 898.707, 'text': "So this function is going to come down inside of here, and I'm going to start writing it.", 'start': 894.364, 'duration': 4.343}, {'end': 907.174, 'text': "Okay, so this function is just going to perform an action, so it doesn't need to return a value when it executes.", 'start': 898.988, 'duration': 8.186}], 'summary': 'Creating a countdown function with a value of 5 before code execution.', 'duration': 28.726, 'max_score': 878.448, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw878448.jpg'}, {'end': 991.458, 'src': 'embed', 'start': 961.432, 'weight': 1, 'content': [{'end': 967.016, 'text': 'Alright, and there that is, and make sure you have your curly brackets set up right.', 'start': 961.432, 'duration': 5.584}, {'end': 976.444, 'text': "Now, with four loops, we're going to be able to perform conditions on greater than less than greater than or equal to, less than or equal to,", 'start': 967.276, 'duration': 9.168}, {'end': 977.605, 'text': "and that's basically it.", 'start': 976.444, 'duration': 1.161}, {'end': 983.77, 'text': "But of course we're going to be able to do AND conditions or OR conditions if we want to have multiple conditions.", 'start': 977.925, 'duration': 5.845}, {'end': 991.458, 'text': "Okay, so we're going to come down here in a for loop and we're going to say we want to print and we're going to print out I,", 'start': 984.355, 'duration': 7.103}], 'summary': 'Using 4 loops to perform conditions and print values in a for loop.', 'duration': 30.026, 'max_score': 961.432, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw961432.jpg'}, {'end': 1123.922, 'src': 'embed', 'start': 1098.963, 'weight': 4, 'content': [{'end': 1105.408, 'text': "And if we do that and upload it to Arduino, you're going to see that it's going to do a countdown from three instead.", 'start': 1098.963, 'duration': 6.445}, {'end': 1106.228, 'text': 'All right.', 'start': 1105.868, 'duration': 0.36}, {'end': 1108.59, 'text': "So there's an example of a while loop.", 'start': 1106.268, 'duration': 2.322}, {'end': 1114.114, 'text': "Another thing we can do is let's talk about some different values we can work with here.", 'start': 1108.91, 'duration': 5.204}, {'end': 1116.196, 'text': 'And one of them is called a float.', 'start': 1114.495, 'duration': 1.701}, {'end': 1121.22, 'text': 'Now, a integer is not allowed to have decimal values.', 'start': 1116.676, 'duration': 4.544}, {'end': 1123.922, 'text': 'However, a float is allowed.', 'start': 1121.52, 'duration': 2.402}], 'summary': 'Demonstrating countdown from three using while loop and discussing integer and float values.', 'duration': 24.959, 'max_score': 1098.963, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw1098963.jpg'}, {'end': 1306.548, 'src': 'embed', 'start': 1282.697, 'weight': 5, 'content': [{'end': 1291.261, 'text': "but you're also going to see the precision of a double as well as a float, and as you can see, they only have one, two, three, four,", 'start': 1282.697, 'duration': 8.564}, {'end': 1297.445, 'text': 'six points of precision before they mess up, and just so you can see the float is exactly the same.', 'start': 1291.261, 'duration': 6.184}, {'end': 1303.987, 'text': "So whenever you're working with doubles or floats, just be aware that they are only precise up to six digits.", 'start': 1297.705, 'duration': 6.282}, {'end': 1306.548, 'text': 'And then after that, they go absolutely haywire.', 'start': 1304.147, 'duration': 2.401}], 'summary': 'Doubles and floats are precise up to six digits before becoming imprecise.', 'duration': 23.851, 'max_score': 1282.697, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw1282697.jpg'}], 'start': 814.876, 'title': 'Arduino and c functions', 'summary': 'Demonstrates arduino wait time manipulation and logical operators, as well as creating countdown functions in c using for and while loops, and showcasing precision limitations of float and double data types in arduino.', 'chapters': [{'end': 878.188, 'start': 814.876, 'title': 'Arduino wait time demonstration', 'summary': 'Demonstrates the arduino wait time increasing to 1000 and then decreasing, also highlighting the use of logical operators to execute code and the demonstration of slowing down and speeding up on the arduino.', 'duration': 63.312, 'highlights': ['The chapter demonstrates the Arduino wait time increasing to 1000 and then decreasing.', "The use of logical operators to execute code is highlighted, including the use of 'and' (ampersand) for multiple conditions.", 'The demonstration of slowing down and speeding up on the Arduino is showcased.']}, {'end': 1306.548, 'start': 878.448, 'title': 'Function countdown and looping in c', 'summary': 'Covers creating a countdown function in c, using for and while loops for iteration, and demonstrating the precision limitations of float and double data types in arduino.', 'duration': 428.1, 'highlights': ["Demonstrating the countdown function using a for loop and the value of 5, printing 5, 4, 3, 2, 1, and then 'go'. Countdown from 5", 'Explaining the usage of a while loop for iteration and displaying a countdown from 3. Countdown from 3 using while loop', 'Comparing the precision limitations of float and double data types, showing the lack of precision beyond six digits. Demonstrating the precision limitations of float and double with 6 digits']}], 'duration': 491.672, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw814876.jpg', 'highlights': ['The demonstration of slowing down and speeding up on the Arduino is showcased.', "The use of logical operators to execute code is highlighted, including the use of 'and' (ampersand) for multiple conditions.", 'The chapter demonstrates the Arduino wait time increasing to 1000 and then decreasing.', "Demonstrating the countdown function using a for loop and the value of 5, printing 5, 4, 3, 2, 1, and then 'go'. Countdown from 5", 'Explaining the usage of a while loop for iteration and displaying a countdown from 3. Countdown from 3 using while loop', 'Comparing the precision limitations of float and double data types, showing the lack of precision beyond six digits. Demonstrating the precision limitations of float and double with 6 digits']}, {'end': 2059.357, 'segs': [{'end': 1422.265, 'src': 'embed', 'start': 1381.145, 'weight': 0, 'content': [{'end': 1386.672, 'text': "And now whenever we're storing individual characters, just be aware that they have to be surrounded by single quotes.", 'start': 1381.145, 'duration': 5.527}, {'end': 1390.957, 'text': 'And of course, you could go and print out that value if you would like to.', 'start': 1387.213, 'duration': 3.744}, {'end': 1391.698, 'text': 'All right.', 'start': 1391.257, 'duration': 0.441}, {'end': 1393.881, 'text': 'And also other data types.', 'start': 1392.279, 'duration': 1.602}, {'end': 1395.182, 'text': 'there are.', 'start': 1394.261, 'duration': 0.921}, {'end': 1396.502, 'text': 'this is basically it.', 'start': 1395.182, 'duration': 1.32}, {'end': 1403.826, 'text': "if you want to use values between 0 and 255 we're going to get more into binary and stuff later on you can use bytes.", 'start': 1396.502, 'duration': 7.324}, {'end': 1407.068, 'text': 'you can also define unsigned integers which get to be bigger.', 'start': 1403.826, 'duration': 3.242}, {'end': 1409.269, 'text': 'remember the maximum size for an integer is 32 000.', 'start': 1407.068, 'duration': 2.201}, {'end': 1413.971, 'text': "it's actually 32 700 and something, but like i said, you can see that doubled.", 'start': 1409.269, 'duration': 4.702}, {'end': 1419.314, 'text': 'we can also use longs which are much longer and then unsigned longs which are longer even yet.', 'start': 1413.971, 'duration': 5.343}, {'end': 1422.265, 'text': 'You can also see here an example of a comment.', 'start': 1420.083, 'duration': 2.182}], 'summary': 'Storing characters in single quotes, integers limited to 32,000, bytes for values 0-255, and various data types discussed.', 'duration': 41.12, 'max_score': 1381.145, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw1381145.jpg'}, {'end': 1479.317, 'src': 'embed', 'start': 1453.555, 'weight': 3, 'content': [{'end': 1460.522, 'text': 'And each of the values stored inside of it has an index or an address, whatever you want to consider it, that starts with a zero.', 'start': 1453.555, 'duration': 6.967}, {'end': 1468.248, 'text': "So let's go and let's define an array that is going to represent the number of blanks that we're going to want.", 'start': 1460.962, 'duration': 7.286}, {'end': 1470.75, 'text': "Now it's going to be a bunch of integers.", 'start': 1468.708, 'duration': 2.042}, {'end': 1472.151, 'text': "So we're going to put int in front of it.", 'start': 1470.77, 'duration': 1.381}, {'end': 1474.753, 'text': "I'm going to call this number of blanks.", 'start': 1472.331, 'duration': 2.422}, {'end': 1479.317, 'text': 'And to designate this as an array, you just go and put those brackets inside of there.', 'start': 1475.394, 'duration': 3.923}], 'summary': 'Defines an array of integers to represent the number of blanks, starting with index zero.', 'duration': 25.762, 'max_score': 1453.555, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw1453555.jpg'}, {'end': 1531.617, 'src': 'embed', 'start': 1499.928, 'weight': 4, 'content': [{'end': 1502.449, 'text': "And let's say I want to change a value in an array.", 'start': 1499.928, 'duration': 2.521}, {'end': 1504.63, 'text': 'You can change a value in an array.', 'start': 1502.489, 'duration': 2.141}, {'end': 1514.473, 'text': 'You go number of blinks, and we can change the first one to say five instead of one, which it was.', 'start': 1505.05, 'duration': 9.423}, {'end': 1516.853, 'text': "And we'll just go equal to five.", 'start': 1514.933, 'duration': 1.92}, {'end': 1517.593, 'text': 'All right.', 'start': 1517.093, 'duration': 0.5}, {'end': 1524.675, 'text': 'You can also define an array without going in and actually putting values inside of it.', 'start': 1518.273, 'duration': 6.402}, {'end': 1527.256, 'text': "However, you're going to have to say how big you want it to be.", 'start': 1524.755, 'duration': 2.501}, {'end': 1531.617, 'text': 'So that time I said I wanted to have 10 little places to store values inside of it.', 'start': 1527.476, 'duration': 4.141}], 'summary': 'You can change array values; define array size, e.g., 10 places.', 'duration': 31.689, 'max_score': 1499.928, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw1499928.jpg'}, {'end': 1655.839, 'src': 'embed', 'start': 1629, 'weight': 6, 'content': [{'end': 1633.883, 'text': 'Just wanted to go and cover this because I was talking about strings there.', 'start': 1629, 'duration': 4.883}, {'end': 1640.028, 'text': 'And we can also check for equality between our different strings.', 'start': 1634.624, 'duration': 5.404}, {'end': 1642.35, 'text': 'So go print line.', 'start': 1640.048, 'duration': 2.302}, {'end': 1645.692, 'text': 'And you would just put whatever the name of your string is.', 'start': 1642.99, 'duration': 2.702}, {'end': 1651.557, 'text': 'And then this is going to return true or false, depending upon if the string is the same or not.', 'start': 1645.973, 'duration': 5.584}, {'end': 1655.839, 'text': 'and we can go equals and then what you want to compare it to.', 'start': 1651.897, 'duration': 3.942}], 'summary': 'Demonstrating string equality and comparison in programming, using print and equals methods.', 'duration': 26.839, 'max_score': 1629, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw1629000.jpg'}, {'end': 1890.174, 'src': 'embed', 'start': 1856.637, 'weight': 7, 'content': [{'end': 1858.458, 'text': "And then let's just go and print that out.", 'start': 1856.637, 'duration': 1.821}, {'end': 1862.119, 'text': 'So print line and print out our sum.', 'start': 1858.698, 'duration': 3.421}, {'end': 1864.22, 'text': 'So you can also see that on the screen.', 'start': 1862.179, 'duration': 2.041}, {'end': 1870.923, 'text': 'Also, likewise, I want to show you how to cycle through arrays because we were talking about arrays previously.', 'start': 1864.74, 'duration': 6.183}, {'end': 1875.065, 'text': 'As you may have guessed, that is going to be done with a for loop.', 'start': 1871.263, 'duration': 3.802}, {'end': 1877.046, 'text': 'So i is equal to 0.', 'start': 1875.525, 'duration': 1.521}, {'end': 1884.231, 'text': "And we're going to continue cycling through as long as i is less than 5.", 'start': 1877.046, 'duration': 7.185}, {'end': 1890.174, 'text': "And then we're going to go in and we're going to increment the value of i.", 'start': 1884.231, 'duration': 5.943}], 'summary': 'Demonstrating printing, summing, and cycling through arrays with a for loop.', 'duration': 33.537, 'max_score': 1856.637, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw1856637.jpg'}], 'start': 1306.908, 'title': 'Data types, operators, and arrays in programming', 'summary': 'Covers various data types, including booleans and characters, introduces the ternary operator, and defines integer sizes, with examples of storing individual characters and defining integer sizes, including the maximum size of 32,000. it also explains the concept of arrays in programming, including defining, changing values, strings, pointers, for loops, and functions, with examples and code explanations.', 'chapters': [{'end': 1437.019, 'start': 1306.908, 'title': 'Data types and operators in programming', 'summary': 'Covers various data types such as booleans and characters, and introduces the ternary operator, with examples of storing individual characters and defining integer sizes, including the maximum size of 32,000.', 'duration': 130.111, 'highlights': ['The chapter covers various data types such as booleans and characters, and introduces the ternary operator, with examples of storing individual characters and defining integer sizes, including the maximum size of 32,000.', "The chapter provides an example of using the ternary operator for conditional output, demonstrating the usage of true and false values and resulting in the output 'yes' when the condition is true.", "The chapter introduces the concept of storing individual characters and highlights the requirement of surrounding them with single quotes, followed by a demonstration of printing out the value of the character 'D'.", 'The chapter explains the use of different integer data types such as bytes, unsigned integers, longs, and unsigned longs, and discusses their respective sizes and capabilities, including the maximum size for an integer being 32,000.']}, {'end': 2059.357, 'start': 1437.34, 'title': 'Arrays in programming', 'summary': 'Covers the concept of arrays in programming, including defining, changing values, strings, pointers, for loops, and functions, with examples and code explanations.', 'duration': 622.017, 'highlights': ['Arrays can contain multiple values with each value having an index starting from zero. Explains the concept of array indexing, with each value having an index starting from zero.', 'Arrays can be defined with specific values, and the size of an array cannot be changed once defined. Demonstrates the process of defining arrays with specific values and emphasizes that the size of an array cannot be changed once defined.', 'The process of changing the values in an array is explained, including updating specific indexes. Demonstrates how to change the values in an array, including updating specific indexes.', 'String manipulation such as combining strings, getting string length, and checking for equality between strings is covered. Covers string manipulation, including combining strings, getting string length, and checking for equality between strings.', 'The process of cycling through arrays using for loops is demonstrated, including printing array values. Demonstrates the process of cycling through arrays using for loops and printing array values.']}], 'duration': 752.449, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw1306908.jpg', 'highlights': ['The chapter covers various data types such as booleans and characters, introduces the ternary operator, and defines integer sizes, with examples of storing individual characters and defining integer sizes, including the maximum size of 32,000.', "The chapter introduces the concept of storing individual characters and highlights the requirement of surrounding them with single quotes, followed by a demonstration of printing out the value of the character 'D'.", 'The chapter explains the use of different integer data types such as bytes, unsigned integers, longs, and unsigned longs, and discusses their respective sizes and capabilities, including the maximum size for an integer being 32,000.', 'Arrays can contain multiple values with each value having an index starting from zero. Explains the concept of array indexing, with each value having an index starting from zero.', 'Arrays can be defined with specific values, and the size of an array cannot be changed once defined. Demonstrates the process of defining arrays with specific values and emphasizes that the size of an array cannot be changed once defined.', 'The process of changing the values in an array is explained, including updating specific indexes. Demonstrates how to change the values in an array, including updating specific indexes.', 'String manipulation such as combining strings, getting string length, and checking for equality between strings is covered. Covers string manipulation, including combining strings, getting string length, and checking for equality between strings.', 'The process of cycling through arrays using for loops is demonstrated, including printing array values. Demonstrates the process of cycling through arrays using for loops and printing array values.']}, {'end': 2396.558, 'segs': [{'end': 2161.453, 'src': 'embed', 'start': 2119.385, 'weight': 3, 'content': [{'end': 2125.548, 'text': "And then you're going to see all the different manipulation we did until we finally cut it down to BAN.", 'start': 2119.385, 'duration': 6.163}, {'end': 2126.249, 'text': 'All right.', 'start': 2125.828, 'duration': 0.421}, {'end': 2129.712, 'text': 'And there is all that information about arrays and strings.', 'start': 2126.489, 'duration': 3.223}, {'end': 2134.037, 'text': "And now I'm going to cover a whole bunch of random things that I haven't covered so far.", 'start': 2130.213, 'duration': 3.824}, {'end': 2135.198, 'text': 'All right.', 'start': 2134.857, 'duration': 0.341}, {'end': 2140.723, 'text': "So to keep everything simple, I'm going to do a lot of this coding inside of the setup function here.", 'start': 2135.218, 'duration': 5.505}, {'end': 2149.23, 'text': "So what I want to do is I want to create a character that's going to represent a grade And then I am going to go and show you the switch statement.", 'start': 2140.944, 'duration': 8.286}, {'end': 2155.611, 'text': 'Now basically the switch is going to perform different actions based on a limited number of possible values.', 'start': 2149.43, 'duration': 6.181}, {'end': 2161.453, 'text': "So what we're going to do is we're going to check the grade that we just entered inside of here.", 'start': 2156.031, 'duration': 5.422}], 'summary': 'Covered array, strings, setup function, switch statement for grade check.', 'duration': 42.068, 'max_score': 2119.385, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw2119385.jpg'}, {'end': 2295.792, 'src': 'embed', 'start': 2246.674, 'weight': 1, 'content': [{'end': 2254.556, 'text': 'Then what I want to do is if I only want to print odd values, what I can do is I can say if i and this is modulus,', 'start': 2246.674, 'duration': 7.882}, {'end': 2259.337, 'text': 'and what modulus is is it returns the remainder of a division.', 'start': 2254.556, 'duration': 4.781}, {'end': 2268.788, 'text': "So in this situation, if the value is a multiple of two or even, it's going to return zero and zero in C is exactly the same as false.", 'start': 2259.617, 'duration': 9.171}, {'end': 2273.074, 'text': "So we're going to come in here and we're going to pronounce I.", 'start': 2269.169, 'duration': 3.905}, {'end': 2281.101, 'text': "if that is true, that it is an a odd value, and then we're gonna increment the value of i, very important to do that.", 'start': 2273.855, 'duration': 7.246}, {'end': 2284.064, 'text': "Then, well, let's go and I'm gonna show you something else.", 'start': 2281.382, 'duration': 2.682}, {'end': 2292.391, 'text': "Let's say that I then wanna jump back to the top of the loop up here and to continue with our while loop, but skip everything that follows afterwards.", 'start': 2284.624, 'duration': 7.767}, {'end': 2295.792, 'text': 'can just type in continue, and it does that for me.', 'start': 2292.871, 'duration': 2.921}], 'summary': 'Using modulus to print odd values, incrementing and continuing in a loop.', 'duration': 49.118, 'max_score': 2246.674, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw2246674.jpg'}, {'end': 2364.155, 'src': 'embed', 'start': 2334.706, 'weight': 0, 'content': [{'end': 2337.948, 'text': 'We can subtract, multiply, divide, and do the modulus.', 'start': 2334.706, 'duration': 3.242}, {'end': 2341.37, 'text': 'And remember, it gives you the remainder of a division.', 'start': 2338.008, 'duration': 3.362}, {'end': 2342.65, 'text': 'We can do absolute value.', 'start': 2341.59, 'duration': 1.06}, {'end': 2345.671, 'text': 'Of course, this is going to return it to a positive two.', 'start': 2342.69, 'duration': 2.981}, {'end': 2346.931, 'text': 'We can just go and run that.', 'start': 2345.811, 'duration': 1.12}, {'end': 2349.052, 'text': 'You can see the results over here on the right side of the screen.', 'start': 2346.971, 'duration': 2.081}, {'end': 2353.533, 'text': 'Min is going to return the minimum of these two values, which is going to be two point five.', 'start': 2349.352, 'duration': 4.181}, {'end': 2354.993, 'text': 'Max is going to return three.', 'start': 2353.773, 'duration': 1.22}, {'end': 2359.334, 'text': 'Of course, rounding is going to round up in this situation to a three.', 'start': 2355.033, 'duration': 4.301}, {'end': 2364.155, 'text': 'Anything over five to point five is going to be rounded up.', 'start': 2359.594, 'duration': 4.561}], 'summary': 'Math operations include subtract, multiply, divide, modulus, absolute value, min, max, and rounding up to nearest integer.', 'duration': 29.449, 'max_score': 2334.706, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw2334706.jpg'}], 'start': 2059.556, 'title': 'Arduino string manipulation & c while loop', 'summary': 'Covers arduino string manipulation, switch statement, while loop, and math functions in c, including the manipulation of strings, printing specific values, and performing different actions based on values. it also explores various math functions and their applications.', 'chapters': [{'end': 2230.48, 'start': 2059.556, 'title': 'Arduino string manipulation & switch statement', 'summary': 'Covers arduino string manipulation and the switch statement, demonstrating the manipulation of strings, including the printing of specific values and the use of the switch statement to perform different actions based on specific values, with a focus on understanding the switch statement functionality.', 'duration': 170.924, 'highlights': ['The chapter covers Arduino string manipulation and the switch statement The chapter focuses on demonstrating the manipulation of strings and the use of the switch statement to perform different actions based on specific values.', 'Demonstrates the manipulation of strings, including the printing of specific values The chapter showcases the printing of specific values related to string manipulation, such as printing out different parts of a string and displaying the total length of the string.', 'Use of the switch statement to perform different actions based on specific values It explains the functionality of the switch statement to perform different actions based on specific values, with examples of checking the grade value and executing different actions accordingly.']}, {'end': 2396.558, 'start': 2230.871, 'title': 'While loop and math functions in c', 'summary': "Explores the while loop in c, demonstrating its use to print odd values, use of 'continue' and 'break' within the loop, and covers various math functions including addition, subtraction, multiplication, division, modulus, absolute value, minimum, maximum, rounding, square root, power, cube root, and logarithms.", 'duration': 165.687, 'highlights': ["The chapter covers the use of 'continue' and 'break' within the while loop in C, demonstrating how 'continue' allows to skip the remaining code within the loop and 'break' is used to completely exit the while loop. Demonstrates the use of 'continue' and 'break' within the while loop in C, showing how 'continue' allows to skip the remaining code within the loop and 'break' is used to completely exit the while loop.", 'The chapter demonstrates the use of modulus to print odd values within the while loop in C by checking if the value is a multiple of two or even, then incrementing the value for odd values. Demonstrates the use of modulus to print odd values within the while loop in C by checking if the value is a multiple of two or even, then incrementing the value for odd values.', 'The chapter covers various math functions in C including addition, subtraction, multiplication, division, modulus, absolute value, minimum, maximum, rounding, square root, power, cube root, and logarithms. Covers various math functions in C including addition, subtraction, multiplication, division, modulus, absolute value, minimum, maximum, rounding, square root, power, cube root, and logarithms.']}], 'duration': 337.002, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw2059556.jpg', 'highlights': ['Covers various math functions in C including addition, subtraction, multiplication, division, modulus, absolute value, minimum, maximum, rounding, square root, power, cube root, and logarithms.', "The chapter covers the use of 'continue' and 'break' within the while loop in C, demonstrating how 'continue' allows to skip the remaining code within the loop and 'break' is used to completely exit the while loop.", 'Demonstrates the use of modulus to print odd values within the while loop in C by checking if the value is a multiple of two or even, then incrementing the value for odd values.', 'Use of the switch statement to perform different actions based on specific values It explains the functionality of the switch statement to perform different actions based on specific values, with examples of checking the grade value and executing different actions accordingly.', 'Demonstrates the manipulation of strings, including the printing of specific values The chapter showcases the printing of specific values related to string manipulation, such as printing out different parts of a string and displaying the total length of the string.', 'The chapter covers Arduino string manipulation and the switch statement The chapter focuses on demonstrating the manipulation of strings and the use of the switch statement to perform different actions based on specific values.']}, {'end': 2773.109, 'segs': [{'end': 2444.975, 'src': 'embed', 'start': 2396.558, 'weight': 0, 'content': [{'end': 2399.94, 'text': "so now what we're going to do is i'm going to cover something else which is constrain,", 'start': 2396.558, 'duration': 3.382}, {'end': 2408.544, 'text': 'and what it does is it allows you to constrain a value between a range, and what i mean by that is if this is going to be the function,', 'start': 2399.94, 'duration': 8.604}, {'end': 2410.725, 'text': "the different pieces we're going to throw inside of it.", 'start': 2408.544, 'duration': 2.181}, {'end': 2416.348, 'text': "so it's going to return the value of x if X is between A and B.", 'start': 2410.725, 'duration': 5.623}, {'end': 2421.11, 'text': "Otherwise, it's going to return A if X is less than A.", 'start': 2416.348, 'duration': 4.762}, {'end': 2425.812, 'text': "So in that situation, it's going to constrain everything between here unless it falls in between it.", 'start': 2421.11, 'duration': 4.702}, {'end': 2428.893, 'text': 'So let me show you an example to show you exactly how it works.', 'start': 2426.232, 'duration': 2.661}, {'end': 2432.604, 'text': "So let's go and print out this information.", 'start': 2429.462, 'duration': 3.142}, {'end': 2437.247, 'text': 'And we will just simply say constrain.', 'start': 2432.624, 'duration': 4.623}, {'end': 2441.11, 'text': 'And this is very useful in electronics.', 'start': 2437.267, 'duration': 3.843}, {'end': 2444.975, 'text': 'And 5, and 1, and 6.', 'start': 2441.77, 'duration': 3.205}], 'summary': "The 'constrain' function restricts a value between a range, demonstrated with example inputs 5, 1, 6.", 'duration': 48.417, 'max_score': 2396.558, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw2396558.jpg'}, {'end': 2500.091, 'src': 'embed', 'start': 2461.659, 'weight': 3, 'content': [{'end': 2469.601, 'text': "also, we're gonna have some trig functions, of course, so those will be quite useful, especially in electronics, and there are all of those.", 'start': 2461.659, 'duration': 7.942}, {'end': 2473.802, 'text': "and another thing we can do is, let's say we want to generate random values.", 'start': 2469.601, 'duration': 4.201}, {'end': 2478.903, 'text': "Well, what we're going to have to do is we're going to have to create a random seed.", 'start': 2474.301, 'duration': 4.602}, {'end': 2485.025, 'text': "that is basically, if you just call for a random value, it's going to be the same every single time the program runs.", 'start': 2478.903, 'duration': 6.122}, {'end': 2491.108, 'text': "So what we need to do is initialize the random number generator we're going to be using here in a second with a random seed value.", 'start': 2485.466, 'duration': 5.642}, {'end': 2500.091, 'text': "And what we're going to use is an unconnected pin, which is going to provide us with a random value.", 'start': 2491.568, 'duration': 8.523}], 'summary': 'Trig functions and random value generation using random seed in electronics.', 'duration': 38.432, 'max_score': 2461.659, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw2461659.jpg'}, {'end': 2565.838, 'src': 'heatmap', 'start': 2508.895, 'weight': 4, 'content': [{'end': 2512.056, 'text': "So I'm going to go into i is equal to 0.", 'start': 2508.895, 'duration': 3.161}, {'end': 2515.097, 'text': "And we're going to cycle through as long as i is less than 10.", 'start': 2512.056, 'duration': 3.041}, {'end': 2517.558, 'text': "So we're going to create 10 random values.", 'start': 2515.097, 'duration': 2.461}, {'end': 2518.979, 'text': "We're going to increment it, of course.", 'start': 2517.599, 'duration': 1.38}, {'end': 2524.962, 'text': "And then to actually go and create our random value, we're just going to say random.", 'start': 2519.219, 'duration': 5.743}, {'end': 2531.607, 'text': "And we're going to say that we want a value between 1 up to 10, not including 10.", 'start': 2525.162, 'duration': 6.445}, {'end': 2534.268, 'text': "So it's going to give us 1 through 9.", 'start': 2531.607, 'duration': 2.661}, {'end': 2537.148, 'text': 'Whoops, what did I do here? I forgot to put 0 inside of there.', 'start': 2534.268, 'duration': 2.88}, {'end': 2538.508, 'text': "So let's save that and run it again.", 'start': 2537.188, 'duration': 1.32}, {'end': 2540.169, 'text': 'And also that has to be uppercase.', 'start': 2538.908, 'duration': 1.261}, {'end': 2541.009, 'text': "And let's run it again.", 'start': 2540.309, 'duration': 0.7}, {'end': 2544.45, 'text': "And you're going to see that it shows and it generates 10 random values.", 'start': 2541.029, 'duration': 3.421}, {'end': 2544.83, 'text': 'All right.', 'start': 2544.57, 'duration': 0.26}, {'end': 2548.51, 'text': "And what else are we going to do? Let's talk about bit manipulation.", 'start': 2545.35, 'duration': 3.16}, {'end': 2551.131, 'text': 'Of course, that is very, very useful with electronics.', 'start': 2548.57, 'duration': 2.561}, {'end': 2555.772, 'text': 'So basically, what we are going to do, well, I had to cover the basics here, sort of.', 'start': 2551.471, 'duration': 4.301}, {'end': 2565.838, 'text': 'Basically, there are eight bits in a byte, and each bit is going to be a binary digit, meaning it has a value of 0 or 1.', 'start': 2556.272, 'duration': 9.566}], 'summary': 'Generating 10 random values and explaining bit manipulation basics.', 'duration': 56.943, 'max_score': 2508.895, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw2508895.jpg'}], 'start': 2396.558, 'title': 'Programming concepts', 'summary': 'Covers constraining values in programming, including an example of constraining the value 5 between 1 and 6. it also explores trigonometric functions, random number generation using a random seed, and bit manipulation techniques such as and, or, exclusive or, bitwise not, and byte shifting.', 'chapters': [{'end': 2461.659, 'start': 2396.558, 'title': 'Constraining values in programming', 'summary': 'Covers the concept of constraining values between a range, explaining its usage in electronics and providing an example of constraining the value 5 between 1 and 6, resulting in a printed output of 5.', 'duration': 65.101, 'highlights': ['The constrain function allows the user to limit a value within a specified range, returning the value itself if it falls within the range.', 'The example demonstrates the use of the constrain function by constraining the value 5 between 1 and 6, resulting in the printed output of 5.', 'The concept of constraining values is particularly useful in electronics, showcasing its practical application in real-world projects.']}, {'end': 2773.109, 'start': 2461.659, 'title': 'Trig functions, random number generation, and bit manipulation', 'summary': 'Covers the use of trigonometric functions in electronics, generating random values by initializing random number generator with a random seed, and bit manipulation techniques involving binary digits and bitwise operations, including and, or, exclusive or, bitwise not, and byte shifting.', 'duration': 311.45, 'highlights': ['Trigonometric functions are useful in electronics Trigonometric functions are mentioned as useful in electronics applications.', 'Generating random values by initializing random number generator with a random seed The process of generating random values is explained, including the need to initialize the random number generator with a random seed value to avoid repetitive results.', 'Bit manipulation techniques involving binary digits and bitwise operations The tutorial covers the basics of bit manipulation, including binary digits, binary to base 10 conversion, AND, OR, exclusive OR, bitwise not operations, and byte shifting.']}], 'duration': 376.551, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw2396558.jpg', 'highlights': ['The concept of constraining values is particularly useful in electronics, showcasing its practical application in real-world projects.', 'The example demonstrates the use of the constrain function by constraining the value 5 between 1 and 6, resulting in the printed output of 5.', 'The constrain function allows the user to limit a value within a specified range, returning the value itself if it falls within the range.', 'Generating random values by initializing random number generator with a random seed The process of generating random values is explained, including the need to initialize the random number generator with a random seed value to avoid repetitive results.', 'Bit manipulation techniques involving binary digits and bitwise operations The tutorial covers the basics of bit manipulation, including binary digits, binary to base 10 conversion, AND, OR, exclusive OR, bitwise not operations, and byte shifting.', 'Trigonometric functions are useful in electronics Trigonometric functions are mentioned as useful in electronics applications.']}, {'end': 3175.955, 'segs': [{'end': 2821.806, 'src': 'embed', 'start': 2794.006, 'weight': 1, 'content': [{'end': 2796.828, 'text': 'Now, basically, structs allow us to create custom data types.', 'start': 2794.006, 'duration': 2.822}, {'end': 2801.973, 'text': 'So a custom data type that would be useful would be RGB.', 'start': 2797.109, 'duration': 4.864}, {'end': 2809.178, 'text': "So let's say we wanted to have a red represented inside of it and a green.", 'start': 2802.153, 'duration': 7.025}, {'end': 2815.442, 'text': 'And this could be used with an LED to go and change different colors.', 'start': 2809.999, 'duration': 5.443}, {'end': 2821.806, 'text': 'Make sure you put a semicolon here down at the end and make sure you put a semicolon there so that that works.', 'start': 2815.522, 'duration': 6.284}], 'summary': 'Structs create custom data types like rgb for led color changing.', 'duration': 27.8, 'max_score': 2794.006, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw2794006.jpg'}, {'end': 2897.22, 'src': 'embed', 'start': 2874.053, 'weight': 2, 'content': [{'end': 2881.655, 'text': "So let's say, you know, whenever we're using the regular serial to print out things, it's very hard to style the information the way that we want to.", 'start': 2874.053, 'duration': 7.602}, {'end': 2887.597, 'text': "So for example, let's say we wanted to print out a time with two values and a colon in the middle of them.", 'start': 2882.035, 'duration': 5.562}, {'end': 2889.898, 'text': "Well, let's go and do that.", 'start': 2887.877, 'duration': 2.021}, {'end': 2892.778, 'text': 'So this function is going to receive an hour.', 'start': 2890.158, 'duration': 2.62}, {'end': 2895.239, 'text': 'You could also do this with seconds or whatever.', 'start': 2893.058, 'duration': 2.181}, {'end': 2897.22, 'text': "So there's that guy.", 'start': 2895.559, 'duration': 1.661}], 'summary': 'Formatting printed output can be challenging; function receives hour input.', 'duration': 23.167, 'max_score': 2874.053, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw2874053.jpg'}, {'end': 3016.504, 'src': 'embed', 'start': 2991.291, 'weight': 0, 'content': [{'end': 2996.513, 'text': 'And basically, a pointer, it just refers to a memory relocation for a variable.', 'start': 2991.291, 'duration': 5.222}, {'end': 2998.394, 'text': "So let's go and create one.", 'start': 2996.974, 'duration': 1.42}, {'end': 3000.275, 'text': 'So this is a pointer.', 'start': 2998.754, 'duration': 1.521}, {'end': 3003.396, 'text': 'I put the star in front of there to represent that that is a pointer.', 'start': 3000.295, 'duration': 3.101}, {'end': 3009.635, 'text': "Then I'm going to come in and I'm going to go value 1 and say that it is equal to 15.", 'start': 3003.888, 'duration': 5.747}, {'end': 3016.504, 'text': 'Now, if I want to store the memory location for a variable in a pointer, I just go pointer is equal to and value 1.', 'start': 3009.635, 'duration': 6.869}], 'summary': 'A pointer refers to a memory relocation for a variable, store the memory location for a variable in a pointer.', 'duration': 25.213, 'max_score': 2991.291, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw2991291.jpg'}], 'start': 2773.369, 'title': 'Core c language basics with arduino', 'summary': 'Covers bit manipulation, custom data types with structs, styling outputs with sprintf, pointers, memory relocation, and arrays, providing a comprehensive overview of the core c language using arduino.', 'chapters': [{'end': 3175.955, 'start': 2773.369, 'title': 'Core c language basics with arduino', 'summary': 'Covers the basics of bit manipulation, creating custom data types with structs, styling outputs with sprintf, understanding pointers, including memory relocation and working with arrays, providing a comprehensive overview of the core c language using arduino.', 'duration': 402.586, 'highlights': ['Understanding pointers and memory relocation Explained the concept and usage of pointers, demonstrated storing memory locations for variables, and printing values through pointers.', 'Styling outputs with sprintf Demonstrated the use of sprintf to format and print time values with specific styles, ensuring two-digit representation and proper formatting.', 'Creating custom data types with structs Described the creation of custom data types using structs, exemplified with an RGB type and showcased the assignment and usage of values within the custom data type.']}], 'duration': 402.586, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/QO_Jlz1qpDw/pics/QO_Jlz1qpDw2773369.jpg', 'highlights': ['Understanding pointers and memory relocation Explained the concept and usage of pointers, demonstrated storing memory locations for variables, and printing values through pointers.', 'Creating custom data types with structs Described the creation of custom data types using structs, exemplified with an RGB type and showcased the assignment and usage of values within the custom data type.', 'Styling outputs with sprintf Demonstrated the use of sprintf to format and print time values with specific styles, ensuring two-digit representation and proper formatting.']}], 'highlights': ['Covers c programming with arduino, including software requirements, hardware setup, defining constants for an led pin, global variables, led control, and uploading code to arduino uno board.', 'Emphasizes the use of Arduino IDE and the Arduino Uno board.', 'Explains global variables and their accessibility to all program code, cautioning against excessive usage due to potential confusion caused by changing values throughout the code.', 'By adjusting the delay period between LED blinking, a pattern of speeding up and slowing down can be created, ranging between 0 and 1000 milliseconds.', "Using static to prevent resetting values in a loop The chapter explains the use of 'static' to avoid resetting values in a loop, allowing the gradual increase and decrease of the wait time on the LED, showcasing the practical application of the concept.", 'The demonstration of slowing down and speeding up on the Arduino is showcased.', 'The chapter covers various data types such as booleans and characters, introduces the ternary operator, and defines integer sizes, with examples of storing individual characters and defining integer sizes, including the maximum size of 32,000.', 'Covers various math functions in C including addition, subtraction, multiplication, division, modulus, absolute value, minimum, maximum, rounding, square root, power, cube root, and logarithms.', 'The concept of constraining values is particularly useful in electronics, showcasing its practical application in real-world projects.', 'Understanding pointers and memory relocation Explained the concept and usage of pointers, demonstrated storing memory locations for variables, and printing values through pointers.', 'Creating custom data types with structs Described the creation of custom data types using structs, exemplified with an RGB type and showcased the assignment and usage of values within the custom data type.']}