i2c - Шина I2C
Функції для роботи з пристроями на шині I2C через роз’єм розширення.
Приклад:
-- Сканування шини I2C та вивід знайдених адрес
i2c.begin(8, 9) -- SDA = 8, SCL = 9
local devices = i2c.scan()
for _, addr in ipairs(devices) do
print(string.format("Знайдено пристрій за адресою 0x%02X", addr))
end
- class i2c
- static begin(sda, scl, freq)
Ініціалізує шину I2C. Якщо піни не вказані, використовуються типові піни плати.
- Parameters:
sda (
integer) – ? номер піна SDAscl (
integer) – ? номер піна SCLfreq (
integer) – ? частота шини в Гц (за замовчуванням100000)
- static set_clock(freq)
Встановлює тактову частоту шини I2C.
- Parameters:
freq (
integer) – частота шини в Гц
- static scan()
Сканує шину та повертає таблицю знайдених 7-бітних адрес пристроїв.
- Return type:
list[integer]
- static write(addr, data)
Записує дані пристроєві за адресою
addr.- Parameters:
addr (
integer) – 7-бітна адреса пристроюdata (
integer or list[integer]) – один байт або таблиця байтів
- Returns:
статус (
0- успіх)- Return type:
integer
- static read(addr, count)
Читає
countбайтів з пристрою за адресоюaddr.- Parameters:
addr (
integer) – 7-бітна адреса пристроюcount (
integer) – кількість байтів для читання
- Return type:
list[integer]
- static write_read(addr, wdata, count)
Записує дані, а потім виконує читання
countбайтів з повторним стартом (repeated start).- Parameters:
addr (
integer) – 7-бітна адреса пристроюwdata (
integer or list[integer]) – один байт або таблиця байтів для записуcount (
integer) – кількість байтів для читання
- Return type:
list[integer]