Podłączymy SSD1306 do I2C tak, aby działał razem z czujnikiem ciśnienia BMP180 na tych samych pinach.
Przewody
Jedną z zalet I2C jest duża liczba urządzeń, które można podłączyć do tych samych pinów. Łączymy tak:
-Oba czujniki trzeba podłączyć do zasilania (3,3V) i uziemienia.
-Teraz łączymy linię Clock wszystkich urządzeń razem szeregowo (Clock-Clock-Clock, Data-Data-Data).
Adresy urządzeń I2C
Każde urządzenie dostaje swój adres, jeśli nie ma konfliktu mogą działać na jednym I2C.
Adres sprawdzamy:
1 | sudo i2cdetect -y 1 |
Wyświetli nam się mapa połączeń I2C dla magistrali. W moim przypadku BMP180 zajął port 77 (0x77), a wyświetlacz port 3c (0x3c).
Biblioteka SSD1306
Sprawdzi się bibilioteka i2c dla SSD1306. Pobieramy
1 2 3 4 5 | git clone https://github.com/iliapenev/ssd1306_i2c gcc demo.c ssd1306_i2c.c -lwiringPi -o demo ./demo |
Działają teraz oba czujniki na jednej linii I2C.