systemypomiarowe.pl

Projektowanie urządzeń KiCad Oprogramowanie CAD Wykonawstwo Systemy pomiarowe Aplikacje Programowanie Warszawa Płytki PCB Schematy ideowe
Strona główna Oferta

Raspberry Pi

I2C – sterowanie 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.

photo of KAmodRGB

Rys. Wygląd modułu KAmodRGB.

connections photo

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

connections to raspberry Pi

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.



Copyright ©2020 systemypomiarowe.pl.