Most arduino tutorials go from basics, like turn off/on a pin, flash a LED etc. and by tutorial 10 you're talking fancy talk like using for loops and so on. With Great Scott though, the complexity is exponential. At this rate tutorial 5 will have us manipulating the universal gravity constant through software.
Agreed. He went from 101, to 102, (undergraduate classes) to class 506 (doctorate class). I pride myself in being able to at least follow Great Scott in most of his videos, even if I couldn't necessarily repeat what he said... but in this case, let's just say if he comes out with a 104 class I'm going to pretend i didn't see it! LOL
An excellent video. You did cram a lot into 8.22 seconds but it was ALL gold. Other viewers, who found this challenging, might like to view the video again; this time pressing pause at the end of each topic and go back until you have a feel for what Scott is telling you. The message to be taken from this presentation is that; while the Arduino IDE/"language" does make things seem a lot simpler, it does so by hiding a lot of code in the background. This is fine for flashing LEDs but a lot of the MCU's awesome power is being hidden from you to. When one comes upon applications that need to control, or interface with, many peripherals, one will find the limitations imposed on you by the IDE, limit the applications one can tackle. Well done, Scott, for dipping your toe into the murky world of AVR programming. Be brave, your subscribers will soon realise that it is just new, not "too difficult" and will be so grateful to you for that lesson.
Although this vid is rather old, I enjoyed watching it. I recently spent a lot of time finding this out on myself and experimenting with it. This knowledge is especially usefull when trying to play 8bit sound samples by utilizing the PWM pins and using the ADC respectively. Because you need to switch on Fast PWM and setup the prescaler correctly, this video is a nice introduction for this scenario. Great, Scott!
It is not surprising that many of those who commented (Marwan Nasr El Din) didn't 'understand anything because 'Great Scott' used an approach that confused rather than clarified how one can manipulate bits in a status register to achieve a goal. Sorry to be so lengthy, hopefully you don't reply TLDR! The code to set a 'prescaler' value in 'ADCSRA' was NOT clearly described instead a supposedly 'clever' bit manipulation statement: "byte PS_16 = (1
Gamerdu45 if you like to know this stuff, which I presume you do since we are here, don't quit. Electronics seems hard at the beginning but it gets pretty simple once u understand some concepts. I've studied 3 years as eletronical technician (dont know how to name it in english), now heading to second semester in electronic engineering and I was lost too in the first weeks :)
There was a time that I did not know any off it. It takes time to learn but if you keep chipping away you'll get there. I'm no mastermind, just someone who, like you, wanted to learn. Maybe just start with basic logic operators and binary. Once you understand that you'll then will see that all he was doing was flipping some bits on and off. Good luck and above all, have fun learning. :) The buzz you get when the penny drops is awesome.
It's interesting how you say that you are lazy and then you explain parts of atmega datasheet. Lazy for littles datasheet but ready for Atmega datasheet, like wtf haha :D
***** Who has the patience to read the entire datasheet for less than a 6 figure salary? Would you do it for the wonderful UA-cam comments and around $200 that you get paid over 6 months to a year? ... while working at a full time job? Subjecting yourself to YT comments is like working in the customer service industry. You just do your job for a paycheck while a crowd of ignorant imbeciles feels like they have a right to treat you like a verbal punching bag.
***** I understand what you mean. When I learned to paint cars it took me forever to wrap my head around estimating time. I finally learned to make an honest assessment of the work, then quadruple it, and I would be right on the money. It's important to learn from both the internal mindset, and for communication with a customer. After being partially disabled, I picked up electronics. Learning those important bits to look for seems quite the challenge without buying a $30k to $50k, 4 year, guided reading program, but I'm probably just slow. I think it takes the right mindset and patience to isolate the necessary details. Sometimes it seems 'lazy' is the person unwilling to get up off the couch, other times it's the person that hasn't read the entirety of "The Art of Electronics." We're all wondering along different parts of the path to understanding this stuff.
There is two kind of people that watch this video. The ones who want to learn this and, the ones who already know the topic and they just feeling good about that they are able to understand :)
Long story short from above convo. BXXXXXXXX will only work with Arduino IDE. Reason is, the actual syntax of XXXXXXXb isn't supported by all Arduino systems, and you can't use a marco that starts with a number in your #define
That's pretty much what I remembered, but on checking (with a compiler), XXXXb is not valid syntax (it is valid MASM/TASM syntax, which I think is where I was remembering it from). 0bXXXX is the correct C syntax for this. test.c: In function 'main': test.c:5:29: error: invalid suffix "b" on integer constant printf("int = %d ", (int) 0001b );
Love this video. Thank you so much for posting and keep them coming. Love watching all your project videos and tutorials. Really helps me come up with ideas for my own personal projects.
4:03 - B stands for BINARY, not byte... like 0x for hex. It's not type definition just way to write numbers. Also you showing pin mapping which isn't very intuitive, better search for arduino board pins like: www.pighixxx.com/test/wp-content/uploads/2014/11/nano.png Edit2: Small list of Arduino pinouts: Nano: www.pighixxx.com/test/wp-content/uploads/2014/11/nano.png Pro mini: www.pighixxx.com/test/wp-content/uploads/2016/07/promini_final.png Pro micro: www.pighixxx.com/test/wp-content/uploads/2016/07/pro_micro_pinout_v1_0_blue.png Micro: 1.bp.blogspot.com/-ptZ4z1b9w20/VPW1E4ohsUI/AAAAAAAARVo/XZ3NqZ7JEP0/s1600/micro.png Leonardo: s-media-cache-ak0.pinimg.com/originals/00/55/d7/0055d75021113a0a0894feb2c4ade2ee.png Due: www.robgray.com/temp/Due-pinout-WEB.png Uno: s-media-cache-ak0.pinimg.com/originals/86/cd/1e/86cd1e943052227a9ebcf2d534beea6d.jpg Mega: s-media-cache-ak0.pinimg.com/originals/d7/c0/33/d7c0337674f0dd43bdb36484b5cabc46.png ESP8266: www.iot-experiments.com/content/images/2016/02/ESP_Pinout_01_big.png Bare uC: Atmega168/328: s-media-cache-ak0.pinimg.com/originals/4d/cb/20/4dcb20f436d46eae0fafcc03293b4fe6.png Atmega32u4: www.14core.com/wp-content/uploads/2015/06/atmel-atmega32u4-pinout-diagram.png Attiny: s-media-cache-ak0.pinimg.com/originals/0b/96/90/0b969089aad15d9b61f8ab0bf5b7f145.png Edit: More pinout maps: www.pighixxx.com/test/pinoutspg/boards/
Sorry, you're wrong there. The B means the following binary number can not exceed 8 bits in length. Binary would be 0b. Go on, try putting in 9 bits, you'll get shouted at! (And now 30 people think wrongly :( )
I am, the capital B denotes a byte whereas typing 0b tells the compiler the following number has been written in binary. You can think of it as a data type, but it's really just a way of telling the compiler what follows is a byte. The person above is wrong, a capital B is a common way of showing bytes (hence why ISPs always use Mb/s instead of MB/s to make it sound faster). (oh, and we're up to 52 :( )
Please create a playlists of Arduino tutorial. I love your tutorial. I have completed the basic electronics series. But unable to find Arduino tutorial playlist. Thank you.
Really great video again! I study Applied Informatics in Germany atm (thats why im already familiar with bitmanipulation etc.) and got my first Arduino when I was 14, but never actually thought increasing the performance through bitmanipulation. Man lernt nie aus :)
If you talk about PORTxn registers, why not explaining PINxn an DDRxn too? Also, you can explain the T/C settings/functions/registers a little deeper. Like how to use Output Compare(s) and setup timer ISRs, etc...
Scott. Thanks for doing all this and helping us. It is a bit. Too fast for me though and some of the things you appear to edit out maybe useful after all? It is impossible to get the pace right for everyone, but if you go a bit slower, the bright folk can always increase the speed.
My project requires 16 or more leds, for a runway chaser sequence with a very small footprint. I'm trying to simulate runway lights on a small aircraft carrier. Maybe three or four leds, the first one at 100%, second at 75%, third @ 50%, and fourth @25% chasing from left to right in a repeating pattern. As soon as the four leds reach midpoint in the travel direction, another set of four leds follows from the start position, so you will have two sets chasing from left to right, and so on. When the first set reaches the end, it starts over again from the beginning, same with the second set. I have looked all over the web and have had nothing that fits all the criteria. Doing it on an UNO will not work as there just isn't enough room in the model for the large board. 555 timers with a shift register won't work as most don't have a way to make the fading effect. Can you help me with a solution? Thank you.
Great guide, but as I study Embedded Systems I totally get that people never having used bit math or bit masking have no clue what the video is about. I'd definitely like to see if there is even more in depth stuff to learn!
when i learned this things in my engineering class i only concentrate just because of my electronics teacher is hot , this time my mind start boiling but great video great Scott
Don't get discouraged! The information provided in the video is condensed into 9 minutes, there is a lot of information you need to know to understand this video. You'll need to know digital circuit theory/math for example.
So instead of processing 4 million check per second, it wait for a clear event and execute once. I can only assume it is much more power efficient and would help reduce 9v battery drain? Could you measure it?
Question on the last advance example, was all that bit math used to change the sampling rate? What was the need to keep the bits with X's? (Or was the first 6 bytes toggled for something else?)
thanks for the video. i am a beginner. i have a question; can we exactly choose the PWM signal frequency in arduino? I am trying to drive a MOSFET in a converter which is controlled by switching frequency not duty cycle so the frequncy of the PWM is important for me. I appreciate you help :)
Very Nice Explanation... Great Scott, Great Job! Btw: The 'B' in B11110000 stands for 'Binary ' not 'Byte'. Like '0x' in Hexadecimal, eg: 0xF7 See: www.arduino.cc/en/Reference.IntegerConstants
WARNING: It's not in standard C, but GCC supports it as an extension, prefixed by 0b or 0B ( stackoverflow: Why doesn't C have binary literals? ) and did you notice IN YOUR WRITING you have no zero in front of B11110000 Yea, now you are using an Arduino library define constant: arduino / binary.h #define B11110000 240
@GreatScott! Please let us know lots of your opinion. We want to know the reasons behind why you choose one way/thing over another. Also, project suggestion : make a pc power supply into a bench power supply.
GREATSCOTT! YOU SHOULD DEFINITELY MAKE A VIDEO EXPLAINING HOW TO BUILD A CIRCUIT, CODE, APP AND ZERO CROSSING CIRCUIT WHICH CAN CONTROL AT LEAST 5 AC LIGHT BULBS AND BE ABLE TO NOT ONLY TURN THEM ON/OFF BUT DIM EACH ONE OF THEM SEPARATELY VIA BLUETOOTH HC-06 AND ANDROID APP. THAT WILL BE A CHALLENGE!!!
One question: Is there something that can be done to increase the refresh rate of the OLED display? Constraint: Needs to be at 9600 Bauds And nice video 👍
From another topic. Will you do a video how to do my own 3d printer from old cd/dvd readers using any magic stuff (can be with 3d pen)? Actually Im bad at these things and ur the only ytber that explains so well everything :)
@GreatScott! What do you mean by that " the Internal timer can be clocked by a prescaler"? This is a pretty complicated line for me to understand. Can you explain a bit?
5:22 The CS12 CS11 CS10 Clock Select bits tell the multiplexer which clock source line to connect the timer clock clk_T1 to, see: Figure 16-2. Prescaler for Timer/Counter0 and Timer/Counter1 the prescaler is a hardware counter with parallel outputs used as clock divider So e.g. using CK/64 from prescaler (CS12 set to 0, CS11 set to 1, CS10 set to 1 (in TCCR1B)) with 16MHz clk_IO will give 16000000/64=250000=250kHz counting clock speed to timer clk_T1
Thank you very much ! I was using a similar code to that in my multi-level inverter controller digitalWrite(outPin, HIGH); delayMicroseconds(50); but it didn't accept float values , nor variables . I think now i can manipulate your method to make it more accurate
This will be handy for setting unused pins on a mega2560 to non floating/input with pull up. without a whole bunch of digital write or pin mode commands
Hey Scott!! can you make a video Explaining more about the Fast PWM with registers please, what i want to do is to change the PWM frequencies of the pins 9, 10, 3, 11 all to 31khz. I need your help can you help me please, Greetings from México!
Is there a way to map a digital signal with arduino for instance I want to emulate a NZXT hue+ so what i have in mind is hook a adrino up inline with the hue+ read the digital output for the hue+ led controler and then use the recorded singnal to controle the led's.
Александр Коргин да, я. Я могу попробовать снять небольшую рубрику по ардуинкам, где на пальцах попробую объяснить, как работать с ардуинками через библиотеку Wiring и без неё. Спрос рождает предложение, постараюсь не подвести. :)
hey scott..i am a beginner please help me with how to interface arduino uno with wifi shield ...and how to choose wi fi shield in a simple way..and whats the difference b/w development board and arduino? why dont you do anything arduino uno?
Making a library is really simple, I don't think that needs a video, a guide on Google is plenty. I don't understand what you need help with for looking at a data sheet, data sheets are supposed to be pretty simple to use. Open the data sheet, find the data you need, read the data you need, close the data sheet. If you are having a hard time finding things in data sheets I recommend googling "how to use a table of contents"
Most arduino tutorials go from basics, like turn off/on a pin, flash a LED etc. and by tutorial 10 you're talking fancy talk like using for loops and so on.
With Great Scott though, the complexity is exponential. At this rate tutorial 5 will have us manipulating the universal gravity constant through software.
Agreed. He went from 101, to 102, (undergraduate classes) to class 506 (doctorate class). I pride myself in being able to at least follow Great Scott in most of his videos, even if I couldn't necessarily repeat what he said... but in this case, let's just say if he comes out with a 104 class I'm going to pretend i didn't see it! LOL
1:18 "...or a lazy person like me." If this is lazy we're all screwed.
I love the handwriting when you explain!
Local UA-camr Inincreases his signal frequency to 1MHz using these 2 weird lines. Electricians hate him.
2:25
Thanks for listening to us and continuing the series. :)
No problem :-)
This video series is definitely very useful! I'll be able to do a lot more due to a better understanding. Thanks!
An excellent video. You did cram a lot into 8.22 seconds but it was ALL gold. Other viewers, who found this challenging, might like to view the video again; this time pressing pause at the end of each topic and go back until you have a feel for what Scott is telling you.
The message to be taken from this presentation is that; while the Arduino IDE/"language" does make things seem a lot simpler, it does so by hiding a lot of code in the background. This is fine for flashing LEDs but a lot of the MCU's awesome power is being hidden from you to. When one comes upon applications that need to control, or interface with, many peripherals, one will find the limitations imposed on you by the IDE, limit the applications one can tackle.
Well done, Scott, for dipping your toe into the murky world of AVR programming. Be brave, your subscribers will soon realise that it is just new, not "too difficult" and will be so grateful to you for that lesson.
Arduino Is a framework, not an IDE, is different, you can use Arduino framework in many others MCU.
Although this vid is rather old, I enjoyed watching it. I recently spent a lot of time finding this out on myself and experimenting with it. This knowledge is especially usefull when trying to play 8bit sound samples by utilizing the PWM pins and using the ADC respectively. Because you need to switch on Fast PWM and setup the prescaler correctly, this video is a nice introduction for this scenario. Great, Scott!
It is not surprising that many of those who commented (Marwan Nasr El Din) didn't 'understand anything because 'Great Scott' used an approach that confused rather than clarified how one can manipulate bits in a status register to achieve a goal. Sorry to be so lengthy, hopefully you don't reply TLDR!
The code to set a 'prescaler' value in 'ADCSRA' was NOT clearly described instead a supposedly 'clever' bit manipulation statement: "byte PS_16 = (1
Once he started playing Xs and Os at 6:00, that was the moment I knew I was destined for a career at Burger King.
Well , you got a choice when you include Macdonalds...
holy shit i didn't understand anything
There is nothing wrong in that. :) And what is cool you get to have the fun learning what it was he was doing.
I think about my school if i should quit now and not suffer in other years i study electrotechnics.
Gamerdu45 if you like to know this stuff, which I presume you do since we are here, don't quit. Electronics seems hard at the beginning but it gets pretty simple once u understand some concepts. I've studied 3 years as eletronical technician (dont know how to name it in english), now heading to second semester in electronic engineering and I was lost too in the first weeks :)
Thank you i really like this stuff but it is kinda hard for me. But i will try my best.
There was a time that I did not know any off it. It takes time to learn but if you keep chipping away you'll get there. I'm no mastermind, just someone who, like you, wanted to learn. Maybe just start with basic logic operators and binary. Once you understand that you'll then will see that all he was doing was flipping some bits on and off.
Good luck and above all, have fun learning. :) The buzz you get when the penny drops is awesome.
I really like your videos because they are concise and force you to go deeper to understand the topic.
Congratulations!
I don't get anything but i still watch
And you feel kinda bad about it dont you. like me.
@@Gamerdu45 Me too :(
If you are interested not much will stop you from learning. It is a. fun and useful hobby. So go ahead and get some batteries resistors and LEDs. :)
@@shetsanjay chill man
@@Gamerdu45 go through datasheet , try to understand it.
It'll take some time but worth it .
That is it.
Your handwriting is absolutely amazing
It's interesting how you say that you are lazy and then you explain parts of atmega datasheet.
Lazy for littles datasheet but ready for Atmega datasheet, like wtf haha :D
Lazy is a relative term.
*****
Who has the patience to read the entire datasheet for less than a 6 figure salary? Would you do it for the wonderful UA-cam comments and around $200 that you get paid over 6 months to a year? ... while working at a full time job?
Subjecting yourself to YT comments is like working in the customer service industry. You just do your job for a paycheck while a crowd of ignorant imbeciles feels like they have a right to treat you like a verbal punching bag.
*****
I understand what you mean. When I learned to paint cars it took me forever to wrap my head around estimating time. I finally learned to make an honest assessment of the work, then quadruple it, and I would be right on the money. It's important to learn from both the internal mindset, and for communication with a customer. After being partially disabled, I picked up electronics. Learning those important bits to look for seems quite the challenge without buying a $30k to $50k, 4 year, guided reading program, but I'm probably just slow. I think it takes the right mindset and patience to isolate the necessary details.
Sometimes it seems 'lazy' is the person unwilling to get up off the couch, other times it's the person that hasn't read the entirety of "The Art of Electronics." We're all wondering along different parts of the path to understanding this stuff.
he probably meant in general
I am glad to see more advanced arduino topics. I would love to see more!
There is two kind of people that watch this video. The ones who want to learn this and, the ones who already know the topic and they just feeling good about that they are able to understand :)
Definitely like the pace and the details..!! Excellent tutorials..!!
Your handwriting is phenomenal...
Omg I didn't understand a thing back few months but now this is just what I needed. Love ya
The "b" in bxxxxxxxx stands for binary I believe.
quite close, but B0111111 is a #defined value (search for binary.h). A binary value can be written as 0b011111 .
Long story short from above convo. BXXXXXXXX will only work with Arduino IDE. Reason is, the actual syntax of XXXXXXXb isn't supported by all Arduino systems, and you can't use a marco that starts with a number in your #define
That's pretty much what I remembered, but on checking (with a compiler), XXXXb is not valid syntax (it is valid MASM/TASM syntax, which I think is where I was remembering it from). 0bXXXX is the correct C syntax for this.
test.c: In function 'main':
test.c:5:29: error: invalid suffix "b" on integer constant
printf("int = %d
", (int) 0001b );
@@virkotho5057 Luckily I new that but I think he should have said it too. Now some people think its the way to write binary numbers
Love this video. Thank you so much for posting and keep them coming. Love watching all your project videos and tutorials. Really helps me come up with ideas for my own personal projects.
Bit math section was little confusing .Thanks for your effort scott learnt a lot.
Just a little confusing? I had to ice my brain after trying to follow that section.. :-)
greatscott,油管EE科普界专门负责高三总复习的优秀教师
Lazy?!?! I somewhat understood it but I got to practice instead of just watching the video. Your a genius
part 4 next week? looking forward to learning everything about Arduino and what I can do with it. great video as always. keep it coming.
No, Part 3 was the last part.
4:03 - B stands for BINARY, not byte... like 0x for hex. It's not type definition just way to write numbers.
Also you showing pin mapping which isn't very intuitive, better search for arduino board pins like: www.pighixxx.com/test/wp-content/uploads/2014/11/nano.png
Edit2: Small list of Arduino pinouts:
Nano: www.pighixxx.com/test/wp-content/uploads/2014/11/nano.png
Pro mini: www.pighixxx.com/test/wp-content/uploads/2016/07/promini_final.png
Pro micro: www.pighixxx.com/test/wp-content/uploads/2016/07/pro_micro_pinout_v1_0_blue.png
Micro: 1.bp.blogspot.com/-ptZ4z1b9w20/VPW1E4ohsUI/AAAAAAAARVo/XZ3NqZ7JEP0/s1600/micro.png
Leonardo: s-media-cache-ak0.pinimg.com/originals/00/55/d7/0055d75021113a0a0894feb2c4ade2ee.png
Due: www.robgray.com/temp/Due-pinout-WEB.png
Uno: s-media-cache-ak0.pinimg.com/originals/86/cd/1e/86cd1e943052227a9ebcf2d534beea6d.jpg
Mega: s-media-cache-ak0.pinimg.com/originals/d7/c0/33/d7c0337674f0dd43bdb36484b5cabc46.png
ESP8266: www.iot-experiments.com/content/images/2016/02/ESP_Pinout_01_big.png
Bare uC:
Atmega168/328: s-media-cache-ak0.pinimg.com/originals/4d/cb/20/4dcb20f436d46eae0fafcc03293b4fe6.png
Atmega32u4: www.14core.com/wp-content/uploads/2015/06/atmel-atmega32u4-pinout-diagram.png
Attiny: s-media-cache-ak0.pinimg.com/originals/0b/96/90/0b969089aad15d9b61f8ab0bf5b7f145.png
Edit: More pinout maps: www.pighixxx.com/test/pinoutspg/boards/
And even after 3 hours someone else trying to write "first".. Magic :D
I was going to post the same comment xD
Sorry, you're wrong there. The B means the following binary number can not exceed 8 bits in length. Binary would be 0b.
Go on, try putting in 9 bits, you'll get shouted at!
(And now 30 people think wrongly :( )
I am, the capital B denotes a byte whereas typing 0b tells the compiler the following number has been written in binary. You can think of it as a data type, but it's really just a way of telling the compiler what follows is a byte.
The person above is wrong, a capital B is a common way of showing bytes (hence why ISPs always use Mb/s instead of MB/s to make it sound faster).
(oh, and we're up to 52 :( )
I assume the number you keep quoting is the people that like his post. Could it be they liking the PDF he shared? Which was helpful.
You sir, are the sorcerer supreme. 🧙♂️
Please create a playlists of Arduino tutorial. I love your tutorial. I have completed the basic electronics series. But unable to find Arduino tutorial playlist.
Thank you.
Inspiring me to go a little deeper into my arduino projects. Thanks!
Excellent video! Finally, I can understand the way to change pwm resolution. Thanks you so much!
lomin 456 😂
Really great video again!
I study Applied Informatics in Germany atm (thats why im already familiar with bitmanipulation etc.) and got my first Arduino when I was 14, but never actually thought increasing the performance through bitmanipulation.
Man lernt nie aus :)
I enjoyed your video :)
If you talk about PORTxn registers, why not explaining PINxn an DDRxn too?
Also, you can explain the T/C settings/functions/registers a little deeper. Like how to use Output Compare(s) and setup timer ISRs, etc...
Scott. Thanks for doing all this and helping us. It is a bit. Too fast for me though and some of the things you appear to edit out maybe useful after all? It is impossible to get the pace right for everyone, but if you go a bit slower, the bright folk can always increase the speed.
I click the "like" button before view. Because I always like GreatScott!'s videos.
wow! Nice tips, thanks! Now I have to read the 328p datasheet for complementary studying
Yes, we need more of this kind of stuff !!
thanks for sharing. Nice to this more geeged way to manipulate the ADC's and PWM output, in a more strait forward way. 👍
Well scott , you're great !
My project requires 16 or more leds, for a runway chaser sequence with a very small footprint. I'm trying to simulate runway lights on a small aircraft carrier. Maybe three or four leds, the first one at 100%, second at 75%, third @ 50%, and fourth @25% chasing from left to right in a repeating pattern. As soon as the four leds reach midpoint in the travel direction, another set of four leds follows from the start position, so you will have two sets chasing from left to right, and so on. When the first set reaches the end, it starts over again from the beginning, same with the second set. I have looked all over the web and have had nothing that fits all the criteria. Doing it on an UNO will not work as there just isn't enough room in the model for the large board. 555 timers with a shift register won't work as most don't have a way to make the fading effect. Can you help me with a solution? Thank you.
Thanks for explaining the different registers clearly. I can use this info to improve some of the projects I have done!
it sounds really cool it's a lot more complicated but you can do really cool stuff at a lower level.
Great guide, but as I study Embedded Systems I totally get that people never having used bit math or bit masking have no clue what the video is about. I'd definitely like to see if there is even more in depth stuff to learn!
Loving these videos, you have earned a Patreon subscriber!
Awesome! Thank you.
and if you incorporate the goto loop; at the end it will short the off phase as the rising and get faster frequency
finally one of his vídeos i do get it completly. just cause i did also read the entire datasheet for a school project 😂
Thanks I've learned a lot from your video, even after messing around with arduinos for years :)
I like to call you "King of Arduino".
That was a good lecture on bit math
ok thanks mr.GreatScott for arduino 103, now i learn much about arduinos ;-)
You're super duper smart man I'm going to be really studying your stuff thank you
You are great Scott!!
Cool! I finally understand the bitwise operations in Arduino code now. Thanks!
when i learned this things in my engineering class i only concentrate just because of my electronics teacher is hot , this time my mind start boiling but great video great Scott
most useful tutorial ever
Don't get discouraged! The information provided in the video is condensed into 9 minutes, there is a lot of information you need to know to understand this video. You'll need to know digital circuit theory/math for example.
So instead of processing 4 million check per second, it wait for a clear event and execute once. I can only assume it is much more power efficient and would help reduce 9v battery drain? Could you measure it?
It would be nice if you could give some insights on how to write efficient code (in particular interrupts, watchdog timer and low power handling)
Question on the last advance example, was all that bit math used to change the sampling rate? What was the need to keep the bits with X's? (Or was the first 6 bytes toggled for something else?)
Excellent tutorial as always
relentlessly waiting for ur reply!!!!!!!!
Thank you Scott! This was very valuable to me - you definitely earned my subscription.
thanks for the video. i am a beginner. i have a question; can we exactly choose the PWM signal frequency in arduino? I am trying to drive a MOSFET in a converter which is controlled by switching frequency not duty cycle so the frequncy of the PWM is important for me. I appreciate you help :)
Very Nice Explanation...
Great Scott, Great Job!
Btw: The 'B' in B11110000 stands for 'Binary ' not 'Byte'.
Like '0x' in Hexadecimal, eg: 0xF7
See:
www.arduino.cc/en/Reference.IntegerConstants
correct
WARNING: It's not in standard C, but GCC supports it as an extension, prefixed by 0b or 0B
( stackoverflow: Why doesn't C have binary literals? )
and did you notice IN YOUR WRITING you have no zero in front of B11110000
Yea, now you are using an Arduino library define constant:
arduino / binary.h #define B11110000 240
@GreatScott! Please let us know lots of your opinion. We want to know the reasons behind why you choose one way/thing over another.
Also, project suggestion : make a pc power supply into a bench power supply.
Very nicely done!
GREATSCOTT! YOU SHOULD DEFINITELY MAKE A VIDEO EXPLAINING HOW TO BUILD A CIRCUIT, CODE, APP AND ZERO CROSSING CIRCUIT WHICH CAN CONTROL AT LEAST 5 AC LIGHT BULBS AND BE ABLE TO NOT ONLY TURN THEM ON/OFF BUT DIM EACH ONE OF THEM SEPARATELY VIA BLUETOOTH HC-06 AND ANDROID APP. THAT WILL BE A CHALLENGE!!!
I love this series! I just hope you can make a dimmer for 220V lighting controlled by a pot or some code. :-P
Thank you so much Scott! I really need this info for my college assignment
awesome as always. Keep up the good content
One question:
Is there something that can be done to increase the refresh rate of the OLED display? Constraint: Needs to be at 9600 Bauds
And nice video 👍
i think you're advanced in arduino..nice info
From another topic. Will you do a video how to do my own 3d printer from old cd/dvd readers using any magic stuff (can be with 3d pen)? Actually Im bad at these things and ur the only ytber that explains so well everything :)
And again great job and thanks for the video!
@GreatScott! What do you mean by that " the Internal timer can be clocked by a prescaler"? This is a pretty complicated line for me to understand. Can you explain a bit?
5:22
The CS12 CS11 CS10 Clock Select bits tell the multiplexer which clock source line to connect the timer clock clk_T1 to, see:
Figure 16-2. Prescaler for Timer/Counter0 and Timer/Counter1
the prescaler is a hardware counter with parallel outputs used as clock divider
So e.g. using CK/64 from prescaler (CS12 set to 0, CS11 set to 1, CS10 set to 1 (in TCCR1B)) with 16MHz clk_IO will give 16000000/64=250000=250kHz counting clock speed to timer clk_T1
great series keep moving forward
i am fan of your videos, do you wanna know why ? because its GREAT. Scott.
Thank you very much for your all video always Learning from you helpful useful
Thanks
the data sheet is for the ATMEGA328/P, does that mean the data sheet is good for the ATMEGA328 and the ATMEGA328P?
Does this mean we can use arduino nano to read analog input faster?
Thank you very much ! I was using a similar code to that in my multi-level inverter controller
digitalWrite(outPin, HIGH);
delayMicroseconds(50);
but it didn't accept float values , nor variables . I think now i can manipulate your method to make it more accurate
Hey Scott Which one is better AVR or PIC?
Are you still planning on doing a mosfet driver tutorial?
This will be handy for setting unused pins on a mega2560 to non floating/input with pull up. without a whole bunch of digital write or pin mode commands
I wonder: What are the drawbacks of using high sampling rates on the ADC? Why is the ADC set up to initially run at such low sampling frequencies?
Hey Scott!! can you make a video Explaining more about the Fast PWM with registers please, what i want to do is to change the PWM frequencies of the pins 9, 10, 3, 11 all to 31khz. I need your help can you help me please, Greetings from México!
Is there a way to map a digital signal with arduino for instance I want to emulate a NZXT hue+ so what i have in mind is hook a adrino up inline with the hue+ read the digital output for the hue+ led controler and then use the recorded singnal to controle the led's.
I'm definitely going to have to rewatch this a few times over to take notes because all of this is a bit over my head. @~@
This one is very usefull video! Thanks a bunch
i always wanted to start converting my slow arduino code to fast code via registers
What a great video!
You are lazy? I didn't know that.
I also didn't see that.
Братан, ты можешь на своем канале запилить видео на эту же тему, но более доступно?
Александр Коргин ты мне?
да, перевод же ты делал?
Александр Коргин да, я. Я могу попробовать снять небольшую рубрику по ардуинкам, где на пальцах попробую объяснить, как работать с ардуинками через библиотеку Wiring и без неё. Спрос рождает предложение, постараюсь не подвести. :)
hey scott..i am a beginner please help me with how to interface arduino uno with wifi shield ...and how to choose wi fi shield in a simple way..and whats the difference b/w development board and arduino?
why dont you do anything arduino uno?
Hello, do you have a video on the basic usage of that oled display?
is there any book, documentation or notes is available for this way of coding ...please recommend me ..
show how to make a library for a simple component... looking at the datasheet, understanding the registers of the component and all of that stuff
Making a library is really simple, I don't think that needs a video, a guide on Google is plenty.
I don't understand what you need help with for looking at a data sheet, data sheets are supposed to be pretty simple to use.
Open the data sheet, find the data you need, read the data you need, close the data sheet.
If you are having a hard time finding things in data sheets I recommend googling "how to use a table of contents"
Amazing videos !!
HI people, Can this method be used to increase the speed of a stepper motor or am I missing the point.
Thanks
Really nice. :)
Really helpful video, thanks!