i2c — Шина I2C

Функції для роботи з пристроями на шині I2C через роз’єм розширення.

Приклад:

1// Сканування шини I2C
2i2c.begin(8, 9); // SDA = 8, SCL = 9
3let devices = i2c.scan();
4for (let i = 0; i < devices.length; i++) {
5    print("Знайдено пристрій: " + devices[i]);
6}

Функції

i2c.begin(sda, scl, freq)

Ініціалізує шину I2C.

Arguments:
  • sda (number()) – Номер піна SDA.

  • scl (number()) – Номер піна SCL.

  • freq (number()) – Частота шини в Гц (необов’язково, за замовчуванням 100000).

i2c.set_clock(freq)

Встановлює тактову частоту шини.

Arguments:
  • freq (number()) – Частота в Гц.

i2c.scan()

Сканує шину та повертає масив знайдених 7-бітних адрес.

Повертає:

Масив адрес.

Тип повернення:

number[]

i2c.write(addr, data)

Записує дані пристроєві.

Arguments:
  • addr (number()) – 7-бітна адреса пристрою.

  • data – Один байт (число) або масив байтів.

Повертає:

Статус (0 — успіх).

Тип повернення:

number

i2c.read(addr, count)

Читає count байтів з пристрою.

Arguments:
  • addr (number()) – 7-бітна адреса пристрою.

  • count (number()) – Кількість байтів.

Повертає:

Масив прочитаних байтів.

Тип повернення:

number[]

i2c.write_read(addr, wdata, count)

Записує дані, а потім виконує читання з повторним стартом (repeated start).

Arguments:
  • addr (number()) – 7-бітна адреса пристрою.

  • wdata – Один байт (число) або масив байтів для запису.

  • count (number()) – Кількість байтів для читання.

Повертає:

Масив прочитаних байтів.

Тип повернення:

number[]