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>