systemypomiarowe.pl

Zbliżenie zmontowanej płytki drukowanej P161002 z układami Microchip w obudowach SMD Wizualizacja płytki z mikrokontrolerem STM32, gniazdem karty SD i modułem GPS Trójwymiarowa wizualizacja płytki z przekaźnikiem, buzzerem i złączami Fragment schematu ideowego ze wzmacniaczem pomiarowym INA326 i przetwornikiem A/C MCP3304 Trójwymiarowa wizualizacja gęsto zmontowanej płytki modułu komunikacyjnego Płyta czołowa urządzenia z opisanymi przyciskami, pokrętłami głośności i głośnikiem Rysunek techniczny płyty czołowej z rozmieszczeniem przycisków i pokręteł Zmontowana płytka z mikrokontrolerem PIC18F2550, złączem USB i potencjometrami montażowymi Kod źródłowy interfejsu TouchGFX dla STM32 w edytorze Visual Studio Code Projekt płytki drukowanej – widok warstw i rozmieszczenia elementów
Strona główna Oferta

Raspberry Pi – I2C i sterowanie diodą RGB

Do sterowania diodą LED RGB wykorzystałem płytkę testową KAmodRGB. Na płytce znajduje się dioda RGB i dioda czerwona. Do sterowania został tam zastosowany układ PCA9633 który sterujemy poprzez interfejs I2C. Układ ten został również wykorzystany w zaprojektowanej przeze mnie karcie rozszerzeń dla komputerka Raspberry Pi a nazwanej Frontpanelem. Do sterowania tym i innymi modułami została napisana prosta aplikacja opisana w dokumencie „Aplikacja php„.

UWAGA!! W przypadku dołączenia modułu KAmodRGB należy zwrócić uwagę na wartość napięcia zasilania. Moduł ten prawidłowo pracuje również przy napięciu 3,3V a dołączenie go do napięcia 5V jak sugeruje to napis na płytce drukowanej może spowodować uszkodzenie linii GPIO komputera Raspberry PI.

Moduł KAmodRGB z diodą RGB sterowaną przez magistralę I2C

Rys. Wygląd modułu KAmodRGB.

Moduł KAmodRGB podłączony do Raspberry Pi

Rys. Widok podłączonego modułu KAmodRGB.

Schemat połączenia modułu KAmodRGB z Raspberry Pi przez I2C

Rys. Schemat połączeń modułu KAmodRGB z komputerkiem Raspberry Pi.

Po wykonaniu przedstawionych powyżej połączeń należy zainstalować oprogramowanie wiringPi oraz libi2c-dev opisane na stronie dotyczącej GPIO. Przydatne może być oprogramowanie diagnostyczne i2ctools. Aby je zainstalować wydajemy komendę:

sudo apt-get install i2ctools

Musimy dokonać modyfikacji dwóch plików: /etc/modprobe.d/raspi-blacklist.conf i /etc/modules. W pierwszym z wymienionych komentujemy linie aby uzyskać efekt przedstawiony jak poniżej (dodajemy znak komentarza #):

# blacklist spi-bcm2708
# blacklist i2c-bcm2708

W drugim z plików dodajemy linię:

i2c-dev

Zainstalowanie pakietu i2ctools daje nam dostęp do ciekawej aplikacji o nazwie i2cdetect. Użycie tej aplikacji:

sudo i2cdetect -y 1

spowoduje wyświetlenie informacji o wszystkich układach dołączonych do magistrali I2C. Szerzej zostało ta funkcja opisana w artykule o Frontpanelu dla RPi. Cyfra 1 w poleceniu oznacza, że polecenie wyświetli informacje dotyczące magistrali nr 1 a taka jest dostępna w płytce raspberry wersja 2. Wersja 1 udostępniała magistralę nr 0.

Po zainstalowaniu wymienionych pakietów możemy zapisywać w układach danych z wykorzystaniem opisywanej magistrali. Do zapisu mamy do dyspozycji komendę i2cset. Przykład użycia:

sudo i2cset -y 1 0x07 0x08 0xff

W powyższym przykładzie cyfra 1 oznacza numer magistrali, 0x07 to adres urządzenia, 0x08 to adres rejestru do którego chcemy zapisać dane a 0xff to wartość którą chcemy zapisać pod wcześniej wskazany adres. W celu prawidłowego skonfigurowania układu PCA9633 wpisujemy kolejno wartości zgodnie z poniższym listingiem:

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

Aby dokonać odczytu wartości spod wskazanego adresy wydajemy komendę:

sudo i2cget -y 1 0x07 0x4

Składnia powyższej komendy jest analogiczna do opisanej wcześniej komendy i2cset.


Sterowanie oświetleniem RGB doprowadziliśmy też do postaci gotowego urządzenia – zobacz sterownik LED RGBW. Jeśli potrzebujesz własnej wersji takiego układu, zapoznaj się z naszą ofertą.



Copyright ©2026 systemypomiarowe.pl.