This is one of the only videos I've found that explains how pull up resistors can affect the speed at which data can travel on the SDA line. Fantastic video that explains how I2C works. Great job.
@rahulfromkerala5 жыл бұрын
2 hours of reading and then here comes this video where everything is well explained in under 10 minutes... You tube is spoiling me...
@vijaykumar-hc6jz4 жыл бұрын
The bit sequence was so well explained that I had to print the screenshot of it for future reference.
@simplynilsw7 жыл бұрын
You said 124 devices instead of 1024 devices (0:52 min), but great video it helped me alot, thanks :))
@BatsAwesomeIn20304 жыл бұрын
To the point, simple and clear, well done! which most people struggle to explain. ~This is coming from a Professional Embedded engineer.
@HowToMechatronics4 жыл бұрын
Glad to hear it, thanks!
@kiranbs50574 жыл бұрын
Watched many videos on this protocol I was never able to grab the concept clearly and I found your tutorial and it made my life simple . Thanks man u have explained and visualised the concept neatly .
@GetElectronics6 жыл бұрын
I always like tutorials that show how to use sensores without relying on 3rd party libraries other than the wire one. Very useful for learning.
@elonmuskmtmt8866 жыл бұрын
This is by far the most thorough and yet still concise explanation I have found! Awesome video!
@HowToMechatronics6 жыл бұрын
Thank you!
@mark8798 жыл бұрын
Awesome video! I especially appreciated the protocol/packet breakdown. Thanks very much!
@roidroid9 жыл бұрын
6:00 just a headsup: You have the Arduino connected to two GNDs, with no 5V line.
@AdityakrishnaMr6 жыл бұрын
Yes, that bothered me too.
@AngryRamboShow5 жыл бұрын
@Blondie SL the white race needs you to make blond haired blue eyed babies. Stop being a degenerate and man up.
@taimooramin12725 жыл бұрын
Bro thats not a big deal he is also a human and if he has done any mistake that does not matter because if you have used arduino or any other types of microcontroller in past u can correct the connections easily
@ksawery65685 жыл бұрын
@Blondie SL Well that escalated quickly.
@cinibar5 жыл бұрын
@Blondie SL Dark matter....hmmmm I once cut open a dead flashlight battery and found it to be very dark, black as coal in fact. I just figure it got full of the dark that it was displacing with light, and died when it got full. :)
@nobodyspecial3139 жыл бұрын
Sweet tutorial! Really like the illustrations that went along with your explanation. After looking at a few cool project videos where people are using Arduinos and other microcontrollers, it makes me wish my college had a class on these!
@iancorcoran75607 жыл бұрын
Dejan Nedelkovski
@Gupatik10 ай бұрын
it's been 8 years now or so, are you still alive bud, and did you learn this arduino and microcontrollers stuff. Anyways, hope you are doing good
@LaurinusPonpon3 жыл бұрын
I watched a few videos and this is the BEST explanation for I2C. Thanks
@HowToMechatronics3 жыл бұрын
Glad it was helpful!
@sorenium7 жыл бұрын
This is so beginner friendly! Thank you so much. I used the same illustrations to make few students understand the same. :)
@michaelvogt77878 жыл бұрын
Dejan, I was looking through youtube for a decent tutorial about the I2C bus as implemented on the Arduino. I have a class of high school students who could use a good demo. I didnt expect to find your EXCELLENT tutorial, one that would be useful even to professional electronics engineers. I wanted to let you know you did a nice job, and it was appreciated. Dr. Michael Vogt - North American Robotics
@Patrick-ky7ez4 жыл бұрын
Amazing video. SOO many hours of reading pdfs with unnecessary tech jargon. You explained it perfectly.
@suzesiviter60836 жыл бұрын
To clarify; the I2C lines are either high impedance or 0, you never drive the bus line high directly; that is achieved by de-asserting the '0' and letting the internal pull up resistors tie it to Vcc. The high impedance or low state on the bus prevents bus contention; that is a ground connecting to Vcc directly causing a short between any masters or slaves.
@maxpolaris994 жыл бұрын
Your examples are very helpful for us slow pokes with little to no insight. Good Job.
@kamuizero7 жыл бұрын
What a great video! Very clear explanation and simple demonstration on how to use it. Thank you very much.
@AliHSyed7 жыл бұрын
OMG thank you so much, I've been so lost with i2c until I watched this video!
@nalorin3 жыл бұрын
SUPER helpful tutorial! Thank you so much! I have an ALS31313, and all the code examples I could find online (including the manufacturer's website) don't work. Your tutorial makes things SO much clearer and I managed to get my magnetometer working within 15 minutes of watching your video! THANK YOU!!!
@HowToMechatronics3 жыл бұрын
Glad to hear it, cheers!
@alexpelagaggi7 жыл бұрын
Dejan Nedelkovski, you are the best. Thank you very much for making this video.
@markconger80494 жыл бұрын
Thank you for this tutorial! I knew the overview of how i2c works but not the specifics. It looks similar to packets in TCP/IP.
@erniea58435 ай бұрын
this video is still providing value after all these years!
@HowToMechatronics5 ай бұрын
Happy to hear it!
@aubreydebliquy80514 жыл бұрын
Thank you for a clear explanation. I used only SPI to date but now I know how to use I2C ... thanks...
@michaelliles67558 жыл бұрын
Finally someone who knows what he's talking about ! Thank you! Not one person on the Arduino site or any other place online have suggested hooking up scl to scl and sda to sda . Everyone says hook it up to A4 and A5 . I bought two units so far thinking that either I broke it or it was doa. well turns out that both work fine. why is this info missing from the arduino site?? anyway thank you very much!
@alterguy43273 жыл бұрын
This channel never gets old
8 жыл бұрын
Very useful for beginner like me, thank you! :)
@ngkhai59353 жыл бұрын
There is an error at the circuit diagram. Instead of 5V you're connected to a GND. However, thank you so much, I learnt a lot from your wonderful video. Merry Christmas
@mohanmanoharan13878 жыл бұрын
super, really appreciate for the tutorial. Request similar other Serial protocols SPI explanation. CAN, UART. thanks
@omaralharran2 жыл бұрын
You are the best. Thank you for taking the time to explain I2C on such indepth level.
@cmulder0072 жыл бұрын
In the breadboard diagram at 5:56 both the + and - are connected to ground on the Arduino
@danielrufenacht37229 жыл бұрын
Hello Dejan Many thanks for your time to spend in order to explain us these very clear tutorials. Daniel from Switzerland
@ipadize2 жыл бұрын
i know its an old video and you probably already know that but you can shorten the Serial.print commands to one like this: Serial.print(String("X0= ") + (X0) + ("X1= ") + (X1)); then when the numbers are bigger or shorter it will automatically fit them together
@chinhcd8 жыл бұрын
It saved me so much time and hassle. Good job!
@alextrujillo88612 жыл бұрын
In the circuit diagram at 6:00, I notice GND is connected to the red and blue rail. Is this accurate or am I missing something? I thought I2C was active low? Was this a mistake in the wiring diagram?
@BigyanChap7 жыл бұрын
I2C Communication -- Demystified! Thumbs up.
@danielmarques7279 Жыл бұрын
Great video, really appreciate it! But I really think that explaining every line of the code would've been great!
@erichertsens9 жыл бұрын
thanks, appreciated from the Dominican Republic
@dorianmccarthy76028 жыл бұрын
Intro RIP headphones users. But great info :)
@matthewmorrison20714 жыл бұрын
yep I almost died I swear
@JohnnyFaber4 жыл бұрын
Same.
@skeeveskeeve3 жыл бұрын
Best video I have seen on the subject.
@SathishKumarbalu8 жыл бұрын
Nice ! Now i got a clear idea what is I2C.
@schlo9358Ай бұрын
Thanks for your example with the wire libary
@MrJeppeholt6 жыл бұрын
OMG dude that was perfect. I have been struggeling with i2c for a while now but this made it click. THANKS! :D
@naboulsikhalid77635 жыл бұрын
Hi, Mentor. What to say, thank you won't be enough. great, detailed video.
@excite2368 жыл бұрын
saved me so much time working gy-80 thanks man
@tarunrjain97482 жыл бұрын
Macha, I am a big fan of your channel. Macha I think u did a mistake .......in the tinkercad sample which u have shown in the video .....both the power supply are connected to ground.......Shouldn't the VCC one connect to 5v power supply? btw lots of luv from India ❣
@mitkopetrovik2598 жыл бұрын
Nice, it is desirable in the following tutorials to explain the I2S protocol and what is exactly the difference with I2C
@philippedrolet48535 жыл бұрын
May I take a screenshot of the diagram at 3:30 for my undergraduate research paper if I cite its origin?
@Syria..3 жыл бұрын
amazingggggg you did save me after reading datasheet for days
@EmciGad2 жыл бұрын
Very good and clear explanations! well done!
@icarossavvides26414 жыл бұрын
There are a lot of Tubes about I2C but none of them make note of the fact that I2C is an abbreviation of Inter IC Communication, it was invented by Philips to help reduce the amount of communication tracking between IC's on a PCB, consequently it is a reliable communication system when used over short distances in a controlled environment, a PCB, but it was never intended to be sent overlong pieces of wiring (>200mm?). If you use this to connect to devices over long lengths of wire, especially if there are noisy items around like motors etc, be prepared for random communication problems.
@adamsvette3 жыл бұрын
It's incredible that you can communicate with so many different devices using only 2 wires. also, the 2 SAME wires.
@ExtantFrodo29 жыл бұрын
I now understand what I could not understand previously. Thank you.
@ElectroMentor4 жыл бұрын
Utterly informative video much appreciation 👍
@morgard2116 жыл бұрын
Thanks! I didn't want to memorize it, but to understand it and it worked! :)
@fleshTH7 жыл бұрын
This was extremely well done! Good job! It was very clear and now i'm off to do some new projects.
@stevetobias48904 жыл бұрын
Excellent explanation. Also helps me in a project where I will be using breakout boards for the first time. Thank you
@miguelluisrodrigues37044 жыл бұрын
Thank you brother, you help me a lot in my projects
@soniyachandran6293 жыл бұрын
Thank you for that simplified explanation :)
@HowToMechatronics3 жыл бұрын
Glad it was helpful!
@jackm4165 жыл бұрын
Great job of explanation ! Good graphics and clear explanation of the timing !
@HowToMechatronics5 жыл бұрын
Thank you!
@laurentmenten46443 жыл бұрын
At 5:47, I noticed a small mistake in the wiring, both the VCC and GND on the breadboard are connected to a GND pin on the Arduino ... Anyway, great explanation ;)
@templocal3 жыл бұрын
You explain things very accurately! Thank you!
@krozareq Жыл бұрын
Good to know how all this works. I've used the Linux i2c and SMbus userspace tools, but never really knew the hardware functionality behind it. GPU lighting is generally i2c and motherboard controllers use SMbus (both very similar though). Knew just enough to be dangerous and change RGB colors or monitor temps with a very light shell script and even shell functions. The OpenRGB project has the addresses for most hardware, including USB (mouse, keyboards, and some mobos use USB for communication to controllers).
@reydus66514 жыл бұрын
superb video mate. Explained it very easily.
@drcl74295 жыл бұрын
Excellent. I thought i2c was going to be complicated
@henearkrip5 жыл бұрын
Nice Work! Very clear and simple explanation!!
@adolforosado4 жыл бұрын
Very clear and concise. Thank you. Seems books are written so you don't understand the stuff and you're made to pay more for tuition.
@MkmeOrg9 жыл бұрын
This is fantastic! Sharing on Mondays live show. Great vid. Cheers!
@riccardoz29535 жыл бұрын
at the end u need 4 wires, ground, power, SCL and data. bewatre of voltages, couse recent sensors and some different arduino version need 3.7 and not 5v as powersupply. nice video|
@степаалександров-с5р7 жыл бұрын
your English is perfect!
@ЮжныйКот-м2э4 жыл бұрын
Что то мне мерещится русский акцент у автора.
@BBRR4424 жыл бұрын
best tutorial on youtube thanks
@HowToMechatronics4 жыл бұрын
Thanks!
@Gereon_5 жыл бұрын
Very good explanation! Thank you very much.
@nikoslykouresis22755 жыл бұрын
Man I don't know if it's the weed, but your explanation made me understand most of this very clearly
@collenfisher3635 Жыл бұрын
Brilliant, and exceptional narration.
@pietrotosoratti7994 жыл бұрын
Thank you for this useful video !! You explained the topic in such a clear way !!
@totalnewbie86195 жыл бұрын
This was an informative and helpful video. I also liked how you explained with graphics. It made things easier to understand.Thank you and please keep doing more videos like this for beginners like me. Best regards.
@HowToMechatronics5 жыл бұрын
Thanks, I'm glad to hear that!
@jesseliverless981123 күн бұрын
At 6:00, you show both black and red coming from GND pins. Shouldn't the red come from 5V, and black at GND?
@ArtedaSerenidadeEstoica8 жыл бұрын
Nice explanation... the protocol I2c is very usefull, fast and need... Thank's for your time and information.
@Engineer97366 жыл бұрын
9:11 You have a bug in your code. You check if Wire.available() is equal to or less than 2. This would also result in true if Wire.available() returns 1. Then you read 2 bytes in any case. In the case 1 byte was received, you are reading one other random unknown byte.
@expectropetronus8 жыл бұрын
Simple and lucid explanation... Thank you
@xealit Жыл бұрын
6:05 the power and ground wires (red and black) are both connected to ground on the mega?
@victorchan86858 жыл бұрын
Appreciate for your excellent video, you speak very clear and explain in detail! You are wonderful! Help a lot!
@J-K-AG8 жыл бұрын
Great tutorial mate. Just wondering is there any tutorial on how to change address on unique slave devices.
@J-K-AG8 жыл бұрын
No problem. Thanks for the video anyway really helpful.
@astudyspace72723 жыл бұрын
Thank you very much for this detailed explanation. You made this topic easy to absorb. 🐣
@TheSateef5 жыл бұрын
thanks, can you tell me in the program you test for Wire.available=2?
@spbains19666 жыл бұрын
Excellent tutorial bringing out the details very clearly
@lan50535 жыл бұрын
So easy to understand. Thank you!
@BlagojceKolicoski8 жыл бұрын
You have both VCC and GND connected to the GND on the Arduino @ 05:56. Is this a mistake?
@121yahya8 жыл бұрын
very nice video, clear explanation and easy to understand
@PiCoVienna6 жыл бұрын
Excellent, easy to understand, very precise!
@chasenjohnson7975 жыл бұрын
Great description of I2C. Thanks:)
@leuc2475 Жыл бұрын
Thank you. It's simple to comprehend
@youseebruce54266 жыл бұрын
A very clean and neat explanation... I understood clearly... Thank you very much.
@ronimine8 жыл бұрын
Very clear and instructive. Well done. Thank you !
@rajsudhirsaran3125 жыл бұрын
Very clear explanation
@HowToMechatronics4 жыл бұрын
I hope you enjoyed this video and learned something new! If you'd like to support me making more content like this, please consider supporting me on Patreon: www.patreon.com/howtomechatronics
@Scudmaster113 жыл бұрын
I know you can get composite video out of it or something
@jokopribadi64624 жыл бұрын
easier to understand in this video. Thanks
@PhDFernandoCoach7 жыл бұрын
Thank you very much for this video, Dejan! The information is clear, well organized and dynamically illustrated!
@narendravasu66077 жыл бұрын
Thank you sir Your explanation very simple and clearly. Very useful to me . onces again thank you sir