Для керування світлодіодом RGB я використав тестову плату KAmodRGB. На платі є світлодіод RGB і червоний світлодіод. Для керування застосовано мікросхему PCA9633, якою керуємо через інтерфейс I2C. Цю саму мікросхему використано також у спроєктованій мною карті розширень для Raspberry Pi, названій Frontpanel. Для керування цим та іншими модулями написано простий застосунок, описаний у документі "Застосунок PHP".
УВАГА! Під'єднуючи модуль KAmodRGB, зверніть увагу на напругу живлення. Цей модуль правильно працює також при 3,3 В, а під'єднання його до 5 В, як підказує напис на друкованій платі, може пошкодити лінії GPIO комп'ютера Raspberry Pi.
Рис. Вигляд модуля KAmodRGB.
Рис. Вигляд під'єднаного модуля KAmodRGB.
Рис. Схема з'єднань модуля KAmodRGB з комп'ютером Raspberry Pi.
Після виконання показаних вище з'єднань слід встановити програмне забезпечення wiringPi та libi2c-dev, описане на сторінці про GPIO. Може стати в пригоді діагностичний пакет i2ctools. Щоб його встановити, виконуємо команду:
sudo apt-get install i2ctools
Треба змінити два файли: /etc/modprobe.d/raspi-blacklist.conf та /etc/modules. У першому з них закоментовуємо рядки, щоб отримати наведений нижче результат (додаємо символ коментаря #):
#
blacklist spi-bcm2708
# blacklist i2c-bcm2708
У другому файлі додаємо рядок:
i2c-dev
Встановлення пакета i2ctools дає нам доступ до цікавого застосунку під назвою i2cdetect. Його виклик:
sudo i2cdetect -y 1
виводить інформацію про всі мікросхеми, під'єднані до шини I2C. Докладніше цю функцію описано у статті про Frontpanel для RPi. Цифра 1 у команді означає, що вона покаже інформацію про шину номер 1, а саме така доступна на платі Raspberry версії 2. Версія 1 надавала шину номер 0.
Після встановлення згаданих пакетів можемо записувати дані до мікросхем через описану шину. Для запису маємо команду i2cset. Приклад використання:
sudo i2cset -y 1 0x07 0x08 0xff
У наведеному прикладі цифра 1 означає номер шини, 0x07 – адресу пристрою, 0x08 – адресу регістра, до якого хочемо записати дані, а 0xff – значення, яке хочемо записати за вказаною адресою. Щоб правильно налаштувати мікросхему PCA9633, записуємо по черзі значення згідно з наведеним нижче лістингом:
sudo
i2cset -y 1 0x07 0x00 0x00
sudo i2cset -y 1 0x07 0x01 0x00
sudo i2cset -y 1 0x07 0x08 0xff
sudo i2cset -y 1 0x07 0x02 0xff
sudo i2cset -y 1 0x07 0x03 0xff
sudo i2cset -y 1 0x07 0x04 0xff
sudo i2cset -y 1 0x07 0x05 0xff
Щоб зчитати значення за вказаною адресою, виконуємо команду:
sudo i2cget -y 1 0x07 0x4
Синтаксис цієї команди аналогічний до описаної раніше команди i2cset.
Керування освітленням RGB ми довели також до вигляду готового пристрою – перегляньте контролер світлодіодів RGBW. Якщо потрібна власна версія такої схеми, ознайомтеся з нашою пропозицією.