Wire

[Kommunikáció]

Leírás

Ez a könyvtár lehetővé teszi az I2C/TWI eszközökkel való kommunikációt. Az R3 elrendezésű (1.0 kivezetésű) Arduino kártyákon az SDA (adatvonal) és az SCL (óravonal) a kivezetés fejeken, az AREF kivezetés közelében található. Az Arduino Due két I2C/TWI interfésszel rendelkezik, az SDA1 és az SCL1 az AREF érintkezők közelében, a további pedig a 20-as és 21-es érintkezőkön található./p>

Referenciaként az alábbi táblázat megmutatja, hol helyezkednek el a TWI érintkezők a különböző Arduino kártyákon.

Kártya

I2C/TWI kivezetések

UNO, Ethernet

A4 (SDA), A5 (SCL)

Mega2560

20 (SDA), 21 (SCL)

Leonardo

20 (SDA), 21 (SCL), SDA1, SCL1

Az Arduino 1.0-tól kezdve a könyvtár a Stream funkciókat örökli, így konzisztenssé válik más olvasási/írási könyvtárakkal. Emiatt a send() és a receive() helyére read() és write() került.

A Wire könyvtár legújabb verziói használhatnak időtúllépéseket, hogy megakadályozzák a leállást a buszon fellépő bizonyos problémák esetén, de ez alapértelmezés szerint (még) nincs engedélyezve a jelenlegi verziókban. Javasoljuk, hogy ezeket az időtúllépéseket mindig engedélyezze a Wire könyvtár használatakor. További részletekért lásd a Wire.setWireTimeout funkciót.

Megjegyzés: Az I2C-címeknek 7 és 8 bites változata is létezik. 7. bit azonosítja az eszközt, a nyolcadik bit pedig meghatározza, hogy írják-e vagy olvassák. A Wire könyvtár mindvégig 7 bites címeket használ. Ha van egy adatlapja vagy mintakódja, amely 8 bites címet használ, akkor el kell hagynia az alacsony bitet (azaz az értéket egy bittel jobbra tolni), így 0 és 127 közötti címet kap. A 7. nem használatos, mert le van foglalva, így az első használható cím a 8. Kérjük, vegye figyelembe, hogy az SDA/SCL kivezetések csatlakoztatásához felhúzó ellenállásra van szükség. További információért tekintse meg a példákat. A MEGA 2560 kártyán felhúzó ellenállások vannak a 20-as és 21-es kivezetéseken.

A Wire könyvtár megvalósítása 32 bájtos puffert használ, ezért minden kommunikációnak ezen a határon belül kell lennie. Az egyetlen átvitel bájtjainak túllépését a rendszer eldobja.

A könyvtár használata:

#include <Wire.h>