Processing:Библиотеки/Hardware I/O/Класс I2C: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 10: | Строка 10: | ||
==Обозначение== | ==Обозначение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
I2C | I2C | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 35: | Строка 35: | ||
==Конструктор== | ==Конструктор== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
I2C(dev) | I2C(dev) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 41: | Строка 41: | ||
==Параметры== | ==Параметры== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
dev – название интерфейса. Тип данных – String | dev – название интерфейса. Тип данных – String | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 47: | Строка 47: | ||
==Возвращаемое значение== | ==Возвращаемое значение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 53: | Строка 53: | ||
==Пример== | ==Пример== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
import processing.io.*; | import processing.io.*; | ||
I2C i2c; | I2C i2c; |
Текущая версия от 11:54, 20 мая 2023
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
Класс I2C[1]
Обозначение
I2C
Описание
Открывает интерфейс I2C и делает устройство, на котором он открыт, ведущим I2C-устройством.
I2C – это последовательная шина данных, часто используемая для подключения периферийных интегральных схем к процессорам и микроконтроллерам. Он использует 2 контакта: SDA (для данных) и SDL (для тактового сигнала). К одной управляющей шине может быть подключено несколько ведомых устройств, но они должны иметь разные адреса (см. ниже).
Ведущее I2C-устройство инициирует передачу данных, попутно отсылая адрес ведомого I2C-устройства, с которым нужно осуществить коммуникацию. I2C-адрес состоит из 7 бит плюс 1 бит, который задает, что должно произойти – считывание или запись данных на устройство. В «даташитах» некоторых устройств I2C-адреса имеют 8-битную форму (7-битный адрес + бит чтения/записи), тогда как в других I2C-адреса указаны 7-битными (в виде 7 младших бит).
Библиотека Hardware I/O работает с 7-битными адресами – как и Arduino-библиотека Wire и как их выдает Linux-программа i2cdetect. Если адрес в «даташите» выше 127 (в шестнадцатеричном выражении – «0x7f») или если у устройства отдельные адреса для считывания и записи (они отличаются друг от друга на единицу), то в таком случае этот адрес лучше сдвинуть на один бит вправо прежде чем передавать его в виде аргумента функции beginTransmission().
Методы
- beginTransmission() – начинает коммуникацию с подключенным устройством
- close() – закрывает интерфейс I2C
- endTransmission() – завершает текущие коммуникации
- list() – составляет список всех доступных интерфейсов I2C
- read() – считывает байты с подключенного устройства
- write() – задает байты, которые нужно записать на устройство
Конструктор
I2C(dev)
Параметры
dev – название интерфейса. Тип данных – String
Возвращаемое значение
Пример
import processing.io.*;
I2C i2c;
void setup() {
//printArray(I2C.list());
i2c = new I2C(I2C.list()[0]);
}
void draw() {
background(map(mouseX, 0, width, 0, 255));
// отправляем значение через интерфейс I2C
// на цифроаналоговый конвертер с адресом 96 (шестн. - 0x60):
int val = int(4095 * map(mouseX, 0, width, 0.0, 1.0));
i2c.beginTransmission(0x60);
i2c.write(val >> 8);
i2c.write(val & 255);
i2c.endTransmission();
}
См.также
Внешние ссылки
Примеры на Processing | |
---|---|
Основы |
|
Продвинутые графические эффекты |
|
Примеры из сторонних библиотек |