Skip to content

Wire.h ​

Popis ​

Wire.h je knihovna pro práci s I2C komunikací v Arduino.

Umožňuje mikrokontroleru komunikovat s dalšími zařízeními přes I2C sběrnici, například:

  • senzory
  • displeje
  • RTC moduly
  • EEPROM

Komunikace probíhá pomocí dvou vodičů:

  • SDA – data
  • SCL – clock

Používá se pro implementaci I2C protokolu na Arduino.


Používané protokoly ​

  • I2C

Související dokumentace:


Syntaxe ​

cpp
#include <Wire.h>

Inicializace:

cpp
Wire.begin();

Důležité funkce ​

Inicializace ​

Wire.begin()

zahájí I2C komunikaci

cpp
Wire.begin();

Zahájení komunikace se zařízením ​

Wire.beginTransmission(address)

zahájí přenos na zařízení s danou adresou

cpp
Wire.beginTransmission(0x3C);

Odeslání dat ​

Wire.write(data)

odešle data do zařízení

cpp
Wire.write(0x00);

Ukončení přenosu ​

Wire.endTransmission()

ukončí přenos dat

cpp
Wire.endTransmission();

Požadavek na data ​

Wire.requestFrom(address, quantity)

požádá zařízení o určitý počet bajtů

cpp
Wire.requestFrom(0x3C, 1);

Čtení dat ​

Wire.read()

přečte přijatý bajt

cpp
int data = Wire.read();

Kontrola dostupných dat ​

Wire.available()

vrátí počet dostupných bajtů

cpp
Wire.available();

Příklady ​

Základní inicializace ​

cpp
#include <Wire.h>

void setup() {
  Wire.begin();
}

void loop() {

}

Odeslání dat zařízení ​

cpp
Wire.beginTransmission(0x3C);
Wire.write(0x00);
Wire.endTransmission();

Čtení dat ze zařízení ​

cpp
Wire.requestFrom(0x3C, 1);

while (Wire.available()) {
  int data = Wire.read();
}

Typické použití ​

  • OLED displeje
  • BMP280 / BME280 senzory
  • RTC moduly
  • EEPROM paměti
  • ADC převodníky

Poznámky ​

  • zařízení musí mít unikátní I2C adresu
  • na SDA a SCL bývají pull-up rezistory
  • více zařízení může být na stejné sběrnici

Odkazy / dokumentace ​

Arduino reference:

https://www.arduino.cc/reference/en/language/functions/communication/wire/