Wyświetlacz OLED rozmawia przez magistralę dwuprzewodową (I2C): jeden przewód danych, jeden zegara. Na tej samej parze może wisieć kilkadziesiąt układów, każdy ma swój numer (adres). Dziś na płytce UNO, bo XIAO nie ma jeszcze szpilek. To dzień 1 planu w Warsztacie (17.10): dowód zgłaszasz tam, karta dnia prowadzi z powrotem do tego slajdu.
To jest pierwszy element z planu „jeden element dziennie”. Robisz go na płytce UNO, nie na XIAO, z prostego powodu: XIAO nie ma jeszcze przylutowanych szpilek, więc nie da się do niego wpiąć przewodów. W poniedziałek, przy nowej lampie, szpilki dolutujesz i od tego dnia każdy moduł będzie można przepinać między UNO (5 V) a XIAO (3,3 V).
Czym jest OLED. Malutki ekran 128 na 64 punkty. Każdy punkt to osobna dioda organiczna, która sama świeci; nie ma podświetlenia, dlatego czarne tło jest naprawdę czarne i ekran prawie nic nie bierze prądu, gdy pokazuje mało. Wyświetlacz z paczki IMZ jest jednokolorowy, niebieski.
Jak wyświetlacz rozmawia z płytką. Na module są cztery szpilki, widoczne na zdjęciu: GND (masa), VCC (zasilanie), SCL (zegar) i SDA (dane). Dwie ostatnie to cała magistrala, czyli wspólna „szyna”, po której płytka rozmawia z układami. Nazywa się I2C (czyta się „i kwadrat ce”) i spotkasz tę nazwę na każdym drugim module z Twoich paczek: czujnik ruchu z drona, czujnik ciśnienia, kompas, zegar, czujnik laserowy.
Dlaczego dwa przewody wystarczą dla wielu układów. Przewód zegara wybija takt: płytka na nim rytmicznie podnosi i opuszcza napięcie, a przy każdym takcie na przewodzie danych jest jeden bit. Płytka zaczyna każdą rozmowę od wysłania numeru układu, z którym chce mówić (adresu, liczby od 1 do 126). Wszystkie układy słuchają, ale odpowiada tylko ten, którego numer padł. Reszta milczy. Dokładnie jak w pokoju pełnym ludzi, gdy ktoś woła po imieniu.
Skąd układ ma numer. Jest wpisany w fabryce. Wyświetlacz ma zwykle 0x3C (zapis szesnastkowy, dziesiętnie 60). Czujnik ruchu 0x68, czujnik ciśnienia 0x76, kompas 0x1E. Dwa identyczne układy mają ten sam numer i wtedy odpowiedzą oba naraz, co dziś zobaczysz na własne oczy w ostatnim kroku.
Jedna rzecz, która zaskakuje. Na obu przewodach żaden układ nigdy nie „pcha” napięcia w górę; każdy umie tylko ściągać przewód do masy albo go puścić. W górę ciągną przewód dwa oporniki (podciągające), które są już na module wyświetlacza. Dzięki temu dwa układy mówiące naraz nie zwierają się ze sobą; wygrywa ten, który ściąga do masy. To jest też powód, dla którego długie przewody na tej magistrali nie działają: oporniki nie nadążają podnosić napięcia. 20 cm jest w porządku, metr już nie.
Napięcie. Moduł IMZ ma na pokładzie własny obniżacz i działa od 3,3 V do 5 V, więc na UNO podajesz 5 V, a po przeniesieniu na XIAO 3,3 V, bez żadnych przeróbek. Na przewodach danych wyświetlacz tylko ściąga do masy, więc nie wyśle do XIAO nic wyższego niż 3,3 V. Lekcja o napięciach z wczoraj w praktyce: ten moduł jest bezpieczny po obu stronach.