I2C Communications Part 1-Arduino to Arduino

Bevezetés

I2C communications have become the de facto method of communications between microcontrollers, microcomputers and a variety of integrated circues and sensors. 1982 óta működik, eredetileg televíziós vevőkészülékekben való használatra fejlesztették ki.

bár sok I2C érzékelőt és kijelzőt használtunk a korábbi cikkekben, valójában nem vizsgáltuk meg, hogyan működik az I2C, és hogyan használható a mikrokontrollerek közötti kommunikációra.

ma fogjuk kijavítani, és többet megtudni I2C. azt is látni, hogyan lehet használni, hogy információt cserélnek két Arduinos és hogyan lehet használni, hogy lehetővé teszi az egyik Arduino, hogy ellenőrizzék egy másik.

I2C Part 1-Using 2 Arduinos

Ez lesz az első a négy cikk I2C. a jövőben cikkek látni fogjuk, hogyan lehet építeni a saját I2C eszközök, hogyan kell interface egy Raspberry Pi és egy Arduino segítségével I2C és hogyan kell csinálni néhány fejlett I2C konfigurációk, beleértve a több mesterek egy I2C busz.

kezdjük!

I2C Communications

I2C egy soros protokoll használt kis sebességű 2-vezetékes interfész. Eredetileg Phillips fejlesztette ki 1982-ben, hogy a televíziós vevőkészülékeken belüli integrált áramkörök kommunikálhassanak egymással.

Az idők megváltoztak, Phillips most NXP, az I2C pedig kommunikációs szabvány lett, amelyet gyakorlatilag minden nagy félvezető gyártó támogat.a

I2C az “Inter-Integrated Circuit”rövidítése. Azt is nevezik ” IIC “vagy” I négyzet C”.

felhasználások és korlátozások

az I2C-t olyan mikrokontrollerekkel használják, mint az Arduino, valamint olyan mikroszámítógépekkel, mint a Raspberry Pi. Sok kijelző és érzékelő interfész a fogadó vezérlő segítségével I2C.

I2C nem több korlátozás azonban. Nem különösebben gyors, bár a legtöbb tervezett felhasználáshoz elég gyors.

az I2C csak rövid távolságokon használható, végül is eredetileg az integrált áramkörök közötti kommunikációra szánták ugyanazon a nyomtatott áramköri lapon. A megbízható átvitel maximális távolsága a sebesség növekedésével csökken, a leglassabb sebességnél (100 Kbaud vagy 100 KHz órajel) a maximális távolság körülbelül egy méter.

I2C sebesség

az eredeti I2C busz maximális sebessége 100 KHz volt. A leggyakoribb alkalmazások még mindig ezt a sebességet használják, mivel ez elég ahhoz, hogy adatokat továbbítsanak az érzékelőkről az egyszerű kijelzőkre.

I2C és van néhány nagyobb sebesség mód. Nem minden I2C eszköz támogatja ezeket a módokat:

  • Gyors mód – ez maximális órajele 400 KHz.
  • Hi-Speed Mode – a maximális órafrekvencia fo 3.4 MHz
  • Ultra Fast Mode – maximális órafrekvencia 5 MHz

egy I2C buszon ez a mester határozza meg az órajel sebességét.

hogyan működik az I2C

egy I2C busznak két jele van, valamint egy hálózati és földi kapcsolat.

I2C busz kommunikáció

a két jelvonal a következő:

  • SDA – ez a kétirányú adatsor.
  • SCL – ez az órajel.

minden jelvezetékhez két húzóellenállás van csatlakoztatva,a buszt inaktív állapotban a tápfeszültségre húzza.

vegye figyelembe, hogy a tápfeszültség nem szabványos, lehet 3,3 vagy 5 volt. Ez is lehet egy alacsonyabb feszültség néhány nagy sebességű I2C megvalósítások.

Ez a tápfeszültség-különbség problémákat okozhat, ha különböző logikai szinteket használó I2C eszközöket csatlakoztat. Ezt egy jövőbeli cikkben fogjuk megvitatni, amikor megmutatom, hogyan kell a Raspberry Pi (3.3 voltos logika) egy Arduino Uno (5 voltos logika).

kétféle eszköz létezik, amelyek az I2C busz – mesterekhez és Rabszolgákhoz kapcsolódhatnak.

A Master eszköz vezérli a buszt, és ellátja az órajelt. Adatokat kér a rabszolgáktól külön-külön. A buszon egynél több mestereszköz lehet, de csak egy lehet az aktív mester egy adott pillanatban.

a mestereszközöknek nincs hozzá címük.

a Slave eszközöknek van címük, ennek a címnek egyedinek kell lennie a buszon. 7 bites címzési sémát használnak, így akár 128 Rabszolga is lehet egy I2C buszon. A való életben ezt a nagy eszközgyűjteményt soha nem használják, ritka, hogy több mint egy tucat I2C eszközt lát egy buszon.

egy újabb, 10 bites címzési sémát hajtottak végre, visszafelé kompatibilis a meglévő 7 bites címzési módszerrel.

kereskedelmi I2C eszközök kiosztott I2C címet NXP, akik fenntartják a busz SPECIFIKÁCIÓK. Bár az I2C 2006 óta nyílt forráskódú, Az NXP slave címének megszerzéséért díjat számítanak fel. Nem szükséges díj a mester eszközök, vagy olyan eszközök esetében, amelyek nem kereskedelmi gyártásra szolgálnak.

egyes I2C eszközök több címet kapnak, általában az alsó címbitekben lévő eltérések. Ezek az eszközök manuálisan konfigurálhatók különböző címekhez, lehetővé téve több azonos típusú eszköz használatát egyetlen I2C buszon.

Egyéb I2C származékok

vannak más buszok is, amelyek az I2C buszból származtak, és amelyek sok szempontból kompatibilisek az I2C-vel.

  • TWI – a kétvezetékes interfész gyakorlatilag megegyezik az I2C busszal. Ez valójában az a busz, amelyet az Arduino használ, a TWI-t akkor fejlesztették ki, amikor az I2C busz nem volt nyílt forráskódú, az Atmel pedig nem akarta kockáztatni a kereskedelmi név megsértését. Az egyetlen nagy különbség a TWI és az I2C között az, hogy a TWI nem támogatja az “óra nyújtás”nevű fejlett technikát.
  • az SMBus egy másik I2C egyenértékű busz, amelyet az Intel fejlesztett ki. Mint TWI támogatja a legtöbb I2C funkciók.

egy jövőbeli cikkben elmagyarázom, hogyan épül fel az I2C busz adatai. De most van néhány alapvető I2C információ, elég ahhoz, hogy kísérletezni kezdjünk.

Arduino Wire Library

Az Arduino beépített könyvtárral rendelkezik az I2C-vel való munkavégzéshez, a Wire Library-nek. Nagyon könnyű kommunikálni az I2C buszon, így az Arduino-t úgy konfigurálhatja, hogy mester vagy rabszolga legyen.

a vezetékes könyvtárnak számos hasznos funkciója van az I2C használatához.

  • begin() – ez elindítja a könyvtárat, és az Arduino-t mesternek vagy rabszolgának állítja be.
  • requestFrom() – ezt a funkciót a mester használja a szolga adatainak kérésére.
  • beginTransmission() – ezt a funkciót a mester használja az adatok küldésére egy meghatározott rabszolgának.
  • endtranszmisszió() – ezt a funkciót a mester használja a startranszmissziós funkcióval elindított átvitel befejezéséhez.
  • write() – mind a master, mind a slave által használt adatok küldése az I2C buszon.
  • elérhető() – mind a mester, mind a slave használja a bájtok számának meghatározására a kapott adatokban.
  • read() – egy bájtnyi adatot olvas az I2C buszról.
  • SetClock() – a mester által egy adott órajel-frekvencia beállításához használt.
  • onReceive() – a slave által használt függvény megadására, amelyet akkor hívnak meg, amikor az adatok a mestertől érkeznek.
  • onRequest() – a slave által használt függvény megadására, amelyet akkor hívnak, amikor a mester adatokat kért.

ezeket a funkciókat vázlatainkban fogjuk használni.

Arduino I2C kapcsolatok

az I2C SDA és SCL kapcsolatai különböznek az Arduino modellek között. A kísérletek, amelyeket meg fogok mutatni, két Arduino Unos használatával készültek, de az Arduino más modelljeit is használhatja, feltéve, hogy ennek megfelelően megváltoztatja a csapokat.

összeállítottam egy diagramot, hogy segítsen kitalálni. Ez magában foglalja néhány közös Arduino táblák, valamint néhány diszkrét chipek. A chipek I listájához tartozó pinoutok (ATTiny és ATmega328P) a DIP csomaggal vannak ellátva, nem pedig a felületre szerelhető csomagokkal.

Arduino Board or Chip SDA SCL
Uno A4 A5
Mega2560 20 21
Nano A4 A5
Pro Mini A4 A5
Leonardo 2 3
Due (has two I2C) 20 + SDA1 20 + SCL1
ATTiny85 & ATTiny45 5 7
ATmega328P 27 28

egyes Arduino Uno klónok külön SDA és SCL csapokkal rendelkeznek, és a két analóg csap helyett használhatja őket. Belsőleg ugyanarra a helyre vannak csatlakoztatva.

vegye figyelembe, hogy az Arduino Due-nak valójában két I2C portja van.

is, vegye figyelembe, hogy van néhány helytelen összeköttetés diagramok az interneten a Pro Mini. Használja a két analóg csapot, az A4-et és az A5-öt, amint az a fenti táblázatban látható.

I2C között 2 Arduino a

Az első kísérlet fogunk hoo két Arduinos együtt, és az adatok cseréje közöttük. Az egyik Arduino lesz a mester, a másik pedig a rabszolga.

én használ két Arduino Unos, de lehet helyettesíteni más Arduino, ha nincs két Unos. Használja a kapcsolatok előző diagramját.

összejönni 2 Arduino a

itt van, hogyan csatlakoztattam a két Arduino Unos együtt:

I2C Arduino to Arduino

Ez egy nagyon egyszerű összeköttetés, lényegében csak összekapcsolja a talajt és a két I2C csapot.

egy dolog, amit tudnia kell, hogy a diagramom nem mutatja A felhúzó ellenállások használatát, azt tapasztaltam, hogy minden úgy tűnt, hogy nélkülük megfelelően működik. Azonban érdemes felvenni őket, különösen akkor, ha hibákat vagy szakaszos működést tapasztal.

egyes húzó ellenállások összekapcsolásához néhány 10k ellenállást kell csatlakoztatni az SDA és az SCL vonalakhoz. Csatlakoztassa a másik végét az Arduino egyik 5 voltos kimenetéhez.

Master Demo Sketch

itt van a vázlat, amelyet az Arduino-n használnak, amelyet mesternek jelölt.

I2C Mester Demo

mint az összes I2C vázlat esetében, a vezetékes könyvtár beillesztésével kezdjük.

ezután definiálunk néhány konstansot, amelyek a slave I2C címét, valamint az adatok bájtjainak számát reprezentálják,amelyeket elvárunk tőle.

a beállításban inicializáljuk az I2C kommunikációt mesterként. Tudjuk, hogy ez egy mester, mivel a begin funkcióban nincs címparaméter. Egy soros monitort is beállítunk, és egy sor szöveget nyomtatunk rá.

most a hurok.

egy apró késleltetéssel kezdjük, leginkább azért, hogy eléggé lelassítsuk a dolgokat, hogy el tudjuk olvasni a kijelzőt a Soros monitoron.

ezután a beginTransmission funkciót használjuk adatok küldésére a rabszolgának. Ebben az esetben az általunk küldött adatok csak egy nulla szám. Befejezzük a hívást a végéreátadás funkció.

ezután néhány adatot kérünk vissza a slave-től a requestFrom funkció használatával.

ezután egy válaszláncot fogalmazunk meg az adatok, egy bájt egy időben, a rabszolga olvasásával.

kinyomtatjuk, hogy mit csinálunk, és milyen adatokat kapunk a Soros monitorhoz. Aztán befejezzük a hurkot, és újra megcsináljuk.

Slave Demo Sketch

most a slave által használt vázlatra.

I2C Rabszolga Demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

/*
I2C Mester Demo
i2c-mester-demo.ino
Demonstrate use of I2C bus
Master sends character and gets reply from Slave
DroneBot Workshop 2019
https://dronebotworkshop.com
*/
// Include Arduino Wire library for I2C
#include <Wire.h>
// Define Slave I2C Address
#define SLAVE_ADDR 9
// Define Slave answer size
#define ANSWERSIZE 5
void setup() {
// Initialize I2C communications as Master
Wire.begin();
// Setup serial monitor
Serial.begin (9600);
Soros.println(“I2C Master Demonstration”);
}
void loop() {
delay(50);
Serial.println (“adatok írása slave-nek”);
// írjon charatre-t a Slave
vezetékhez.beginTransmission(SLAVE_ADDR);
Wire.írja (0);
vezeték.endtranszmisszió ();
Soros.println (“adatok fogadása”);
// Read response from Slave
// Read back 5 characters
Wire.request from(SLAVE_ADDR, ANSWERSIZE);
/ / add karakterek string
String response=””;
míg (drót.elérhető ()) {
char b = vezeték.olvassa el ();
válasz += b;
}
// Print to Serial Monitor
Soros Monitor.println (válasz);
}

ismét a vezetékes könyvtár beillesztésével kezdjük. Az előző vázlathoz hasonlóan meghatározzuk a rabszolga I2C címét, valamint a bájtok számát, amelyeket vissza akarunk küldeni a mesternek.

ezután meghatározzuk azt a karakterláncot, amelyet vissza fogunk küldeni a mesternek, ebben az esetben csak a “Hello”szót. Ha úgy dönt, hogy ezt megváltoztatja, győződjön meg róla, hogy a választ beállítjaméret állandó mindkét vázlatban, hogy helyes legyen.

a beállításban inicializáljuk az I2C buszhoz való kapcsolatot egy begin funkcióval. Vegye figyelembe a különböző módon ezt, mivel ez egy rabszolga, megadjuk az I2C címet, amelyet használni fogunk. Ezzel a vezetékes könyvtár tudja, hogy rabszolga módban akarunk működni.

most meg kell határoznunk azoknak a funkcióknak a nevét, amelyeket két esemény bekövetkezésekor hívunk – a mestertől kapott adatkérés, valamint a mestertől kapott adatok. Mi is beállít, majd nyomtassa ki a Soros monitor.

a receiveEvent függvény neve, amikor adatokat kapunk a mestertől. Ebben a funkcióban olvasunk adatokat, amíg az adatok rendelkezésre állnak, majd hozzárendeljük egy byte-hoz (ne feledje, az adatok egyszerre egy byte-ot kapnak).

a requestEvent függvény akkor hívódik meg, amikor adatkérést kapunk a mestertől. Vissza kell küldenünk a “Hello” karakterláncot a mesternek. Mivel az adatokat egyenként kell elküldenünk, a “Hello” karaktereket egy tömb egyes elemeire osztjuk, majd egyenként küldjük el őket.

mindkét funkcióban elért összes előrehaladásunkat bejelentjük a Soros monitornak.

a vázlat hurokja csak egy késleltetést ad hozzá, amely megegyezik a mester vázlatában használt hurokkal.

fut a Demo vázlatok

futtatni ezeket a vázlatokat akkor képesnek kell lennie arra, hogy megtekinthesse a Soros monitor minden Arduino. Ha két számítógép van telepítve az Arduino IDE-vel, akkor ez sokkal könnyebbé teszi.

I2C Experiment 1

Microsoft Windows rendszeren az Arduino IDE két példányát lehet megnyitni. Ha ez megtörtént, mindkét soros monitort egymás mellett jelenítheti meg ugyanazon a képernyőn.

felváltva, akkor használja az egyik számítógépet, majd kapcsolja be a második Arduino saját tápegység. A két Arduino között a számítógépet és az áramot is át kell kapcsolni, így mindkét képernyőt egyenként lehet megfigyelni.

Arduino Remote segítségével I2C

a következő bemutató fogunk horog egy potenciométer a mester Arduino és egy LED a rabszolga. A potenciométert használjuk a LED villogási sebességének szabályozására.

Ez egy másik egyszerű bemutató, rá lehet építeni, hogy valami praktikusabbat hozzon létre.

távoli Demo összeköttetés

itt van, hogy ez a kísérlet össze.

I2C Arduino Control

Ez lényegében ugyanaz összeköttetés, mint az előző kísérlet, azzal a kiegészítéssel, a potenciométer a mester, a LED a rabszolga.

vegye figyelembe, hogy a slave LED-je a 13-as pin-kódhoz lett csatolva. Mivel az Arduino Uno beépített LED-del rendelkezik a 13-as csapon, szükség esetén kiküszöbölheti a LED-et és a LED-es ellenállást.

a pull-up ellenállásokkal kapcsolatos megjegyzések is vonatkoznak erre a csatlakozásra.

Remote Demo Master Sketch

a kísérlet mesteroldalának vázlata nagyon egyszerű, bizonyos szempontból az I2C oldal még egyszerűbb, mint az első bemutatóban használt. Ez azért van, mert csak adatokat küldünk a rabszolgának, és nem számítunk arra, hogy visszatérünk.

I2C Mester Potenciométerrel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70

/*
I2C Slave Demo
i2c-slave-demo.ino
Demonstrate use of I2C bus
Slave receives character from Master and responds
DroneBot Workshop 2019
https://dronebotworkshop.com
*/
// Include Arduino Wire library for I2C
#include <Wire.h>
// Define Rabszolga I2C Cím
#define SLAVE_ADDR 9
// Define Rabszolga válasz mérete
#define ANSWERSIZE 5
// Define string válasz Mester
String válasz = “Hello”;
void setup() {
// Inicializálni I2C kommunikációt, mint Rabszolga
Drót.begin(SLAVE_ADDR);
// függvény futtatásához, ha adatokat kért mester
vezeték.onRequest (requestEvent);
// függvény futtatásához, ha az adatokat a master
vezeték.onReceive(receiveEvent);
// Setup Serial Monitor
Serial.begin (9600);
Soros.println(“I2C Slave Demonstration”);
}
void receiveEvent () {
/ / /Read míg a kapott adatok
míg (0< vezeték.elérhető ()) {
byte x = vezeték.olvassa el();
}
// nyomtatás Soros monitorra
Soros.println(“Esemény fogadása”);
}
void requestEvent () {
/ / setup byte változó a megfelelő méretben
byte válasz;
// formázza a választ array
for (byte i=0; i<ANSWERSIZE;i++) {
válasz = (byte)válaszként.charAt(i);
}
// válasz küldése vissza a mesternek
vezeték.írja (válasz, sizeof (válasz));
/ / nyomtatás Soros monitorra
Soros.println(“Request event”);
}
void loop () {
/ / Time delay in loop
delay(50);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

/*
I2C Master Control Demo
i2c-mester-demo-ellenőrzés.ino
Demonstrate use of I2C bus
Master sends potentimeter position data
DroneBot Workshop 2019
https://dronebotworkshop.com
*/
// Include Arduino Wire library for I2C
#include <Wire.h>
// Define Slave I2C Address
#define SLAVE_ADDR 9
// Analog pin for potentiometer
int analogPin = 0;
// Integer to hold potentiometer value
int val = 0;
void setup () {
/ / inicializálja az I2C kommunikációt Master
vezetékként.kezdés ();
}
void loop () {
delay(50);
/ / olvassa pot érték
// Térkép tartomány 1-255 a flash ráta
val = map(analogRead(analogPin), 0, 1023, 255, 1);
// írjon egy charatre-t a Slave
vezetékhez.beginTransmission(SLAVE_ADDR);
Wire.írja (val);
vezeték.endtranszmisszió();
}

mint mindig, a vázlat elején fel kell vennünk a vezetékes könyvtárat. Meghatározunk egy állandót is, hogy megtartsuk a rabszolga címet.

mivel potenciométert használunk, meg kell határoznunk mind a csatlakoztatott pin-kódot, mind a változót, hogy megtartsuk az értékét.

mindössze annyit teszünk a beállításban, hogy inicializáljuk az I2C kapcsolatot mesterként.

a hurokban elolvastuk a potenciométer értékét, és 01-255 tartományra térképeztük fel. Ezt meg kell tennünk, mivel egy bájtnyi információt küldünk, és ezt a sok értéket csak egyetlen byte-ban tudjuk tartani.

vegye figyelembe, hogy megfordítjuk a számozási sorrendet az Arduino Térképfunkcióban, ez úgy történik, hogy a rendszer úgy viselkedik, ahogy elvárjuk – a potenciométer jobbra forgatása növeli a vaku sebességét. Mivel a” flash rate ” által meghatározott időeltolódás egy nagyobb számot küldött egyenlő lesz a hosszabb flash rate.

azt is vegye figyelembe, hogy nem küldjük el a 0 értéket, amely csak egy állapotban tartja a LED-et. Ehelyett a tartományunkat 1-re állítjuk.

most már csak az a kérdés, hogy elküldjük a bájtot a rabszolgának, és megismételjük a hurkot.

Remote Demo Receive Sketch

a slave oldalnak adatokat kell fogadnia a mestertől, és a LED villogásához használni.

I2C Rabszolga LED

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

/*
I2C Rabszolga Ellenőrzési Demo
i2c-rabszolga-demo-ellenőrzés.ino
Demonstrate use of I2C bus
Receives potentimeter position data
Controls LED blink rate
DroneBot Workshop 2019
https://dronebotworkshop.com
*/
// Include Arduino Wire library for I2C
#include <Wire.h>
// Define Slave I2C Address
#define SLAVE_ADDR 9
// Define LED Pin
int LED = 13;
// Variable for received data
int rd;
// Variable for blink rate
int br;
void setup () {
pinMode (LED, kimenet);
/ inicializálja az I2C kommunikációt Slave
vezetékként.begin(SLAVE_ADDR);
// függvény futtatásához, ha kapott adatokat mester
vezeték.onReceive (receiveEvent);
/ Setup Serial Monitor
Serial.begin (9600);
Soros.println(“I2C Slave Demonstration”);
}
void receiveEvent () {
/ / /read one character from the I2C
rd = Wire.olvassa el();
// a bejövő adatok nyomtatási értéke
Soros.println (rd);
}
void loop() {
késleltetés(50);
// Kiszámításához pislogott érték
br = térkép(rd, 1, 255, 100, 2000);
digitalWrite(LED-es, NAGY);
késleltetés(br);
digitalWrite(LED, ALACSONY);
késleltetés(br);
}

kezdjük a szokásos felvétele a Vezeték könyvtár, valamint a meghatározó a slave cím. Meghatározunk egy pin-kódot a LED-hez is.

néhány további változó definiálva van, az egyik a fogadott adatokat tartja, míg a másik a villogási sebesség késleltetési értékét hordozza.

a beállításban a LED I / O pin-kódját állítjuk be kimenetként, majd inicializáljuk az I2C buszt. Ahogy használjuk a szolga címet a begin funkció a vezetékes könyvtár tudja, mi jár, mint egy rabszolga.

csak egy onrece függvényt kell definiálnunk, ellentétben az utolsó demóval, nem várunk semmilyen kérést a mestertől. A Soros monitorra is beállítunk és nyomtatunk, a monitor segítségével tekinthetjük meg a beérkező adatokat.

a receiveEvent függvény beolvassa a beérkező adatokat, majd hozzárendeli az I változóhoz. Az értéket a Soros monitorra is kinyomtatja.

végül a hurokban a bejövő adatokat a LED villogásához használjuk. Ehhez ismét a térkép funkciót használjuk, az 1-255 bejövő értékeit szélesebb tartományra változtatva. Kísérletezhet ennek a tartománynak a megváltoztatásával, hogy a LED gyorsabban vagy lassabban villogjon, ha akarja.

az utolsó néhány állítás lényegében az Arduino Blink vázlat álruhában! Az utolsó lépésben meghatározott ideig bekapcsoljuk és kikapcsoljuk a LED-et.

majd megismételjük a hurkot.

fut a távoli Demo

töltse be a kódot és a teljesítmény mind Arduino. használhatja a Soros monitor a slave Arduino, hogy megtekinthesse a bejövő adatokat.

I2C Experiment 2

a potenciométer elforgatásának most meg kell változtatnia a LED villogási sebességét a slave-en.

következtetés

Ez befejezi az I2C első részletes áttekintését.a következő részletben többet fogunk megtudni a kicserélt adatok szerkezetéről. Egy normál érzékelőt is veszünk, majd I2C érzékelővé alakítjuk.

Boldog kommunikáció!

források

vázlatok-Az ebben a cikkben használt összes I2C vázlat.

I2C információt, Tájékoztatást az I2C protokoll

I2C Kommunikáció 1. Rész – Arduino, hogy Arduino
Összefoglalás
I2C Kommunikáció 1. Rész - Arduino, hogy Arduino
a Cikk Neve
I2C Kommunikáció 1. Rész – Arduino, hogy Arduino
Leírás
ebben az első részben egy cikksorozatot arról, I2C, hogy megtanulják, mi az I2C. Azt is látni fogja, hogy az Arduino Wire library nagyon egyszerűvé teszi az I2C-n keresztüli kommunikációt.
Szerző
DroneBot Műhely
Kiadó Neve
DroneBot Műhely
Kiadó Logó
DroneBot Műhely

megjelölve: Arduino Bemutató