Raspberry Pi:Библиотеки/WiringPi/Расширения/Подключение светодиодного контроллера SN3218 (I2C): различия между версиями
Myagkij (обсуждение | вклад) (Новая страница: «{{Raspberry Pi панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} {{Черновик}} =Подключение с…») |
Нет описания правки |
||
Строка 13: | Строка 13: | ||
== Подключение == | == Подключение == | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
#include <wiringPi.h> | #include <wiringPi.h> | ||
#include <sn3218.h> | #include <sn3218.h> | ||
Строка 20: | Строка 20: | ||
== Инициализация == | == Инициализация == | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
sn3218Setup (int pinBase) ; | sn3218Setup (int pinBase) ; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 32: | Строка 32: | ||
В программе впишите: | В программе впишите: | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
analogWrite (ledPin, value) ; | analogWrite (ledPin, value) ; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 42: | Строка 42: | ||
* Перед использованием девайсов с шиной '''I2C''' вам нужно загрузить в ядро модули для шины '''I2C'''. Для этого впишите | * Перед использованием девайсов с шиной '''I2C''' вам нужно загрузить в ядро модули для шины '''I2C'''. Для этого впишите | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gpio load i2c | gpio load i2c | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 48: | Строка 48: | ||
* Если это единственный '''I2C'''-девайс, подключенный к '''Pi''', то работайте с ним на частоте '''400 КГц'''. Для этого впишите следующее: | * Если это единственный '''I2C'''-девайс, подключенный к '''Pi''', то работайте с ним на частоте '''400 КГц'''. Для этого впишите следующее: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gpio load i2c 400 | gpio load i2c 400 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 55: | Строка 55: | ||
* Если у вас '''Raspberry Pi''' версии '''1''', используйте команду | * Если у вас '''Raspberry Pi''' версии '''1''', используйте команду | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
i2cdetect -q -y 0 | i2cdetect -q -y 0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 61: | Строка 61: | ||
, а если версии '''2''', то | , а если версии '''2''', то | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
i2cdetect -q -y 1 | i2cdetect -q -y 1 | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия от 20:04, 23 мая 2023
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Черновик |
Подключение светодиодного контроллера SN3218 (I2C)[1]
Библиотека WiringPi поддерживает расширительный модуль для светодиодного контроллера SN3218, работающего через шину I2C. Этот маленький чип способен управлять 18 отдельными светодиодами (или 6 RGB-светодиодами, или любой промежуточной комбинацией) и оснащен генератором ШИМ, выдающий 256 уровней яркости на каждом светодиоде.
WiringPi видит SN3218 как девайс с 18 выходными аналоговыми контактами.
Подключение
#include <wiringPi.h>
#include <sn3218.h>
Инициализация
sn3218Setup (int pinBase) ;
В этой функции адрес для шины I2C не указывается – чип SN3218 оснащен фиксированным I2C-адресом «0x54». Обращение к этому параметру происходит лишь внутри драйвера, поэтому никакого дополнительного кода не нужно. Это также значит, что к Raspberry Pi можно подключить лишь один такой чип.
Значение в параметре pinBase может быть любым, но выше «64». Затем, исходя из указанного вами значения, инициализирующая функция зарезервирует идущие друг за другом 18 значений. К примеру, если вы укажете значение «100», то функция выделит для контактов номера «100», «101», «102» и так далее до «117».
Использование
В программе впишите:
analogWrite (ledPin, value) ;
Параметр ledPin – это номер контакта (от «0» до «17») плюс значение, которое вы указали в параметре pinBase в функции sn3218Setup(). Параметр value – это значение от «0» (полностью выключенный светодиод) до «255» (полная яркость).
Примечания
- Перед использованием девайсов с шиной I2C вам нужно загрузить в ядро модули для шины I2C. Для этого впишите
gpio load i2c
- Если это единственный I2C-девайс, подключенный к Pi, то работайте с ним на частоте 400 КГц. Для этого впишите следующее:
gpio load i2c 400
- Чтобы проверить, видит ли Pi чип SN3218, который должен быть виден с адресом «0x54», просканируйте шину I2C программой i2cdetect.
- Если у вас Raspberry Pi версии 1, используйте команду
i2cdetect -q -y 0
, а если версии 2, то
i2cdetect -q -y 1
- Команда gpio поддерживает команду i2cdetect и автоматически подстраивается под версию платы.
- Драйвер SN3218 библиотеки WiringPi знает, какую версию Pi вы используете, поэтому никакой предварительной настройки не требуется – ваш код будет работать на обеих версиях Pi.