I2C Part 1 - Using 2 Arduinos

preview_player
Показать описание
I2C communications is a very important topic, so important that I’ve decided to do several videos about it. In this first video, I will explain what I2C is and how to use it to communicate between two Arduino's.

Today we will discuss I2C, or “Inter-Integrated Circuit” communications.

I2C is a two-wire, low-speed serial communications format that was originally developed by Phillips (now NXP) in 1982. Although its original use was to allow integrated circuits in televisions to communicate with one another it has evolved into a standard communications method used by a myriad of devices.

I2C works with the concept of “Master” and “Slave” devices. The master device provides the clock signal and initiates communications with the slaves. An I2C bus can have multiple masters and slaves, but only one master can be active at any given time.

We have used I2C devices in lots of projects and tutorials before. Today we will use I2C to communicate between two Arduinos.

In future videos I will show you more about using I2C:

Creating your own I2C devices out of common sensors and small Arduino's.
Communicating between Raspberry Pi and Arduino with I2C.
Using multiple masters on an I2C bus.

Today we will just cover the basics. We will first exchange information between two Arduinos and then we will use a potentiometer on one Arduino to control an LED on a second one via I2C.

Here is what is in today's video:

00:00 - Introduction
04:28 - Understanding I2C
07:40 - Exchanging data between two Arduino's
15:25 - Controlling one Arduino with another one

As always you can get the sketches on the article that accompanies this video. While you're on the website feel free to check out the other articles I have, and be sure to sign up for my newsletter .

As always I appreciate your support, thanks for watching!
Рекомендации по теме
Комментарии
Автор

If my shop was this clean, I'd never get any work done... I'd just sit there and stare at how beautiful it is! Nice video too...

TalkingGIJoe
Автор

Very professional, perfect pace, top quality presentation.

whitefields
Автор

I've been playing with circuits and microcontrollers for a couple decades at this point... but thanks to your videos, a lot of things which I had previously learned to do 'by rote' I now have a better fundamental understanding of. You importantly explain not only the 'how' but also the 'why' when you do something, and that 'why' is what really allows ME to engage my own creativity!

devikwolf
Автор

Excellent video as always. The quality of your production is unsurpassed. I am really looking forward the follow up videos. Bob

rm
Автор

Just started with Arduino recently and this channel is a godsend! Clear, concise and really well produced. Thank you for making these!

AgeingBoyPsychic
Автор

I have no idea who you are, but I would like you to know that you have saved my life

erinasimpson
Автор

Thank you. It’s evident you have put a lot of effort to document your presentation and present it very well. Bravo sir!

dwsantx
Автор

Top class video as usual. Thanks very much. I've just taken my box of Arduino bits'n'bobs out of retirement and following your vids from the start trying all the experiments that I have the modules for.

MrBanzoid
Автор

That was the best description & explanation of I2C I've found. Excellent work, and thanks for the video!

andrewparker
Автор

Thanks a billion, I have been using and loving the I2C for years now, but never really understood how it worked, I just knew it did and loved the way it did. Now I have a much better understanding of the history and actions capable using the bus, it all makes much more sense now.

JerryEricsson
Автор

People like you make the world a better place

michaellove
Автор

I2C helps keep your code simplified as well. I use several arduinos to run a watering program for each of 8 garden boxes and a separate arduino to display whats going on. That way, 1 arduino only controls the display and each of the other controllers control 2 garden boxes each. The display controller just sends a status request and gets what it needs from each of the controllers. I could do all of this with 1 arduino and no I2C but the coding would be much more complicated. Also, I use a push button on the display controller (master) to toggle through the status requests. That way it only sends a request when I require it. Thank you for your video(s). I've learned alot.

xy-plgg
Автор

It is one of the best videos I have seen when it comes to explaining anything related to electronics. EXCELLENT WORK!!

estar
Автор

Very excellent video, calm voice and pace, as it's easy to follow  - keep up the god work.

espenbgh
Автор

Good example, good editing and a clean and organized lab!

irgski
Автор

Wonderful video. Thank you so much!

I've never heard the clock line referred to as "SDC", only "SCL".

RastaJediX
Автор

This is the best video I found on the web! Thank you very much, exactly what I was looking for, because I am running out of pins on my arduino, with this master-slave via I2C I could "expand" my pins via another arduino! GREAT!

amnesie
Автор

a very great video, i learned a lot of this, but i still wonder, how i can let the master send commands to make some ports of the slave high or low

hedalen
Автор

You are the best teacher I have ever seen. Fantastic job. Love it

renaldsurpris
Автор

You make learning about i2c simple. Love it.

grayfox_yt