Sterowniki LCD wbudowane w mikrokontrolery

Sterowniki LCD wbudowane w mikrokontrolery
Pobierz PDF Download icon

Wyświetlacze ciekłokrystaliczne cieszą się bardzo dużą popularnością dzięki licznym zaletom, w porównaniu do innych technologii wyświetlania. Sterowanie nimi jest łatwiejsze niż dawniej, a to za sprawą pojawienia się na rynku 8-bitowych mikrokontrolerów ze zintegrowanymi sterownikami LCD. Do istotnych cech takich sterowników należą: sterowanie kontrastem, sygnałami ustalającymi poszczególne piksele i wykorzystywanymi poziomami napięcia polaryzacji oraz samym zasilaniem. W artykule opisujemy zasady ich działania.

Mikrokontrolery 8-bitowe ze zintegrowanymi sterownikami wyświetlaczy LCD są w stanie bezpośrednio kontrolować pracę wyświetlaczy segmentowych z literami, cyframi, innymi znakami i ikonami oraz zostały opracowane tak, by spełniać wymagania projektów o bardzo niskim budżecie. Dobry przykład stanowią mikrokontrolery PIC firmy Microchip, dostępne w obudowach o 28, 40, 64, 80 i 100 wyprowadzeniach. Ich użycie pozwala wyeliminować z projektu szereg innych, zewnętrznych komponentów, ograniczając sumaryczny koszt podzespołów.

Konstrukcja linii sterujących LCD

Rysunek 1. Budowa typowego ekranu LCD z podziałem na warstwy i wskazaniem terminali zasilania elektrod

Technologia produkcji ani zasada działania wyświetlaczy LCD nie będą omawiane w niniejszym artykule. Przypomnimy tylko, że zapalenie piksela w wyświetlaczu LCD polega na takim przyłożeniu napięcia, które spowoduje przeorientowanie komórki ciekłokrystalicznej, zmieniając polaryzację światła przez tę komórkę przechodzącego. Warto też zwrócić uwagę na to, w jaki sposób doprowadzane jest napięcie do komórek wyświetlacza. Zostało to przedstawione na rysunku 1. Komórka zawierająca ciekłe kryształy umieszczona jest pomiędzy dwiema, najczęściej szklanymi warstwami, na których znajdują się elektrody. Elektrody na jednej z tych warstw określamy mianem segmentowych, a na drugiej wspólnych. Całość otaczają jeszcze polaryzatory, które dają pożądany efekt optyczny.

Wszystkie wyświetlacze LCD można podzielić na dwa typy: modele pasywne i aktywne (tabela 1). Modele pasywne cechują się generalnie wolniejszym działaniem, mniejszym kontrastem, gorszymi kątami obserwacji i słabszą rozdzielczością. Ale jednocześnie są tańsze i prostsze w wytworzeniu niż modele aktywne.

Modele pasywne korzystają z siatki przewodników, które dostarczają napięcie do poszczególnych pikseli. Na jednej z warstw szkła, otaczających komórki ciekłokrystaliczne, znajdują się pionowo ułożone metalizacje, a na drugiej, poziomo. Każde przecięcie tych linii tworzy piksel. Mówi się, że piksel jest włączony, jeśli napięcie dla niego jest podane i wyłączony, gdy zostanie ono zdjęte. Jasności pośrednie pomiędzy maksymalną a minimalną uzyskuje się poprzez podawanie napięć o mniejszych wartościach. Same potrzebne wartości napięć oraz to jak przekładają się na jasność piksela zależą od rodzaju kryształów i innych zabiegów zastosowanych w danym wyświetlaczu.

Wyświetlacze z matrycami aktywnymi w praktyce korzystają z tranzystorów i kondensatorów, ułożonych w macierz na szkle wyświetlacza. Stosowane są tranzystory cienkowarstwowe, stąd nazwa TFT (Thin Film Transistor). Aby zapalić dany piksel, należy podłączyć odpowiedni rząd, a następnie zacząć przesyłać prąd przez odpowiednią kolumnę. Przenoszony ładunek gromadzi się w odpowiednim kondensatorze, który utrzymuje określony stan piksela aż do następnego cyklu odświeżania. Tranzystory pozwalają na bardzo szybkie włączanie i wyświetlanie pikseli. Są to więc wyświetlacze stosowane w większości nowoczesnych telewizorów, laptopów, telefonów komórkowych i w innych aplikacjach, gdzie potrzebne są LCD wysokiej jakości.

Jak uzyskać dobry kontrast

W kontekście sterowania wyświetlaczami LCD ważny jest też temat kontrastu. Zależy on przede wszystkim od amplitudy pomiędzy napięciami sterującymi oraz od oświetlenia otoczenia. Podawanie zbyt wysokiego napięcia może skutkować pojawianiem się cieni (zjawisko noszące angielskie miano „ghosting”), czyli piksele, które powinny być wyłączone, wyglądają jak włączone. Dzieje się to za sprawą pola elektrycznego, wytwarzanego przez zbyt wysokie napięcie, które wpływa na sąsiadujące komórki LCD. Cienie mogą pojawić się również podczas obserwacji ekranu ze zbyt dużych kątów, a nawet w wyniku zbyt wysokiej temperatury. Im jest ona wyższa, tym bardziej chaotyczne staje się ułożenie kryształów w komórce, a więc tym trudniej nad nim zapanować.

Problemem może być również zbyt słabe zapalenie pikseli. Zdarza się to, gdy napięcie sterujące jest zbyt niskie lub gdy temperatura komórek jest niska. Małe napięcie może nie być w stanie ułożyć kryształów w odpowiedni sposób, tak jak i niska temperatura obniża ich ruchliwość. Z powyższych względów konieczne jest dobranie napięć do specyfiki wyświetlacza, by go nie uszkodzić. Przykładowo, wyświetlacz z płytki Microchip PICDEM LCD 2 Demo Board ma parametry zebrane w tabeli 2.

Napięcia sterujące

Rysunek 2. Napięcia zasilania dla wyświetlaczy LCD

Najczęstszą przyczyną uszkodzeń wyświetlaczy LCD jest podanie im napięcia stałego. Powoduje ono uszkodzenie ciekłych kryształów w taki sposób, że nie daje się ich naładować. Dlatego podawane sygnały sterujące muszą być tak dobrane, by ich napięcie stałe (średnie) w krótkim okresie wynosiło 0 V dla wszystkich pikseli. W specyfikacjach wyświetlaczy często podawane są wartości skuteczne napięć VOFF i VON oraz VTH, przy czym ostatnia wartość to napięcie, przy którym kontrast osiągany jest na poziomie 10%. Bywa też, że wartość poziomu 10% jest podawana jako VOFF. Jako VON podaje się napięcie, które należy przyłożyć do tych samych elektrod, by piksel uzyskał 90% swojego kontrastu. Poziomy napięć zostały zaprezentowane na rysunku 2.

Czasy włączania i wyłączania

W specyfikacji podaje się również typowe czasy odpowiedzi, tj. włączenia i wyłączenia piksela. Bywa, że są określone czasem narastania i opadania. Zazwyczaj czas wyłączania jest większy niż narastania, gdyż jest to proces bardziej samoczynny i polega na powrocie do stanu naturalnego, podczas gdy skręcenie wymuszane jest siłą elektrostatyczną, wynikającą z przyłożonego napięcia.

Rysunek 3. Typowe czasy narastania dla komercyjnie dostępnego płynu ciekłokrystalicznego, w zależności od temperatury

Czasy narastania są też silnie zależne od aktualnej temperatury panelu. Zostało to pokazane na rysunku 3. Wiele wyświetlaczy jest wyposażonych w podgrzewacze, które zwiększają temperaturę w momencie, gdy otoczenie jest bardzo zimne, tj. jego temperatura spada np. poniżej 0°C. Niestety, modele wyposażone w podgrzewacze zużywają więcej mocy.

Odporność na temperatury

Tak jak zostało to pokazane, temperatura ma bardzo duży wpływ na działanie panelu LCD. Dotyczy to nie tylko samego płynu ciekłokrystalicznego, ale też zastosowanych powłok, które ulegają degradacji z czasem. Wszystkie płyny ciekłokrystaliczne są oferowane wraz z opisem parametrycznym, w ramach którego podany jest zakres temperaturowy, w którym może on pracować. W wyższej temperaturze cząsteczki płynu będą przyjmować losowe ułożenie, co oznacza, że w przypadku wyświetlaczy pozytywowych będą stawały się ciemne, a w negatywowych - przezroczyste. Wyświetlacz powróci do normalnego sposobu działania, jeśli będzie narażony na takie warunki tylko przez krótki czas. Jeśli jednak temperatura przekroczy 110°C, zastosowane powłoki ulegną trwałej degradacji.

W bardzo niskich temperaturach ruchliwość kryształów spada, gdyż rośnie lepkość płynu. Około -60°C zaczynają przyjmować postać krystaliczną. Zazwyczaj jednak płyn powraca do swoich właściwości po przywróceniu normalnych temperatur pracy.

Pojemność

Rysunek 4. Układ zastępczy dla wyświetlacza z trzema liniami wspólnymi

W związku z ich budową, wyświetlacze LCD można zamodelować z punktu widzenia elektryki jako stratne, nieliniowe kondensatory. Wielkość pikseli, a przez to także i samego wyświetlacza LCD, ma bezpośredni wpływ na pojemność, jaką sterownik musi być w stanie naładować. Typowe pojemności wyświetlaczy LCD przyjmują wartość od 1000 pF/cm2 do 1500 pF/cm2. Na rysunku 4 pokazano przykładowy układ zastępczy dla wyświetlacza z multipleksowanymi wyprowadzeniami wspólnymi w stopniu 1/3. Trzeba przy tym mieć na uwadze, że linie sterujące wyprowadzeniami wspólnymi muszą być w stanie ładować znacznie większe pojemności niż linie odpowiadające za poszczególne segmenty, co również wynika z ilustracji 4. Podczas projektowania systemu sterowania wyświetlaczem trzeba dopilnować, by podawane napięcia i prądy nie przeładowywały żadnych komórek.

Wyświetlacze bezpośrednio sterowane a multipleksowane

Dostępne na rynku wyświetlacze różnią się nie tylko rodzajem zastosowanych powłok i kryształów, ale też konfiguracją wyprowadzeń. Można je podzielić na dwie kategorie: bezpośrednio sterowane i multipleksowane. W przypadku modeli sterowanych bezpośrednio każdy piksel ma niezależne wyprowadzenie sterujące - jest tylko jedna linia wspólna. W takiej sytuacji statyczne jest też napięcie polaryzacji, które definiuje się jako liczbę poziomów napięć używanych do prezentacji obrazu na ekranie. Wystarczy jedynie podłączanie linii do masy lub VDD. Wyświetlacze sterowane bezpośrednio pozwalają też uzyskać najlepszy kontrast w dużym zakresie temperatury.

Wyświetlacze z multipleksowanymi wyprowadzeniami pozwalają zmniejszyć liczbę połączeń pomiędzy panelem a sterownikiem. W uproszczeniu: mają więcej niż jedno wyprowadzenie wspólne. Sterowniki tego typu muszą jednak wytwarzać napięcie o różnych amplitudach, zsynchronizowane w czasie pomiędzy sygnałami na liniach wspólnych i liniach segmentowych. W ten sposób możliwe jest zaadresowanie konkretnego piksela na całej powierzchni ekranu. Niestety, taki układ sprawia, że sterownik staje się znacznie bardziej skomplikowany. Liczba linii wspólnych jest określana współczynnikiem multipleksowania i przykładowo wyświetlacz ze współczynnikiem 1/3 ma trzy linie wspólne. Natomiast liczba poziomów napięć potrzebnych do wysterowania multipleksowanych wyświetlaczy segmentowych wynosi zazwyczaj od 2 do 5 (plus masa), a w przypadku wyświetlaczy graficznych (matrycowych) od 8 do 33 (plus masa). W tabeli 3 pokazano, w jaki sposób zastosowanie multipleksowania pozwala zmniejszyć liczbę wyprowadzeń, potrzebnych do wysterowania wyświetlacza.

Sterowniki LCD zintegrowane w mikrokontrolerach generują sygnały sterujące statycznymi lub multipleksowanymi wyświetlaczami LCD o maksymalnie 64 multipleksowanych segmentach i do 4 lub 8 wspólnych wyprowadzeniach. Na rysunku 5 pokazano diagram blokowy modułu sterującego LCD z 8-bitowych mikrokontrolerów PIC firmy Microchip. Liczba rejestrów przypisanych do obsługi LCD zależy od maksymalnej liczby wspólnych wyprowadzeń i segmentów, jakie mogą być sterowane za pomocą danego podzespołu.

Blok sterowania podstawą czasu

Rysunek 5. Diagram blokowy typowego modułu sterującego LCD

Tak jak zostało to pokazane na rysunku 5, blok sterujący podstawą czasu zawiera rejestr sterujący LCD (LCDCON), rejestr fazy LCD (LCDPS) i rejestry włączania segmentów LCD (LCDSEx). Rejestr LCDCON steruje ogólnym działaniem modułu. Po tym jak moduł zostanie skonfigurowany, bit LCDEn jest używany do włączania lub wyłączania modułu. Panel LCD może również pracować w trakcie trybu uśpienia - wystarczy w tym celu wyczyścić bit SLPEn. Bity konfiguracyjne określają też źródło sygnału zegarowego dla LCD, przy czym musi być ono dopasowane do wymogów stawianych przez dany wyświetlacz.

Rejestr LCDPS służy do konfiguracji preskalera źródła sygnału zegarowego dla LCD i ustalenia rodzaju stosowanego sygnału. Bity preskalera mają bezpośredni wpływ na częstotliwość odświeżania LCD, więc muszą być dopasowane do wyświetlacza, tak by nie powodować cieni ani migotania.

Rejestry LCDSEx konfigurują funkcje wyprowadzeń portu. Ustawienie bitu dla wybranego segmentu pozwala skonfigurować dane wyprowadzenie jako sterujące wyświetlaczem. Podobnie - wyczyszczenie danego bitu sprawia, że dany port zaczyna pracować jako uniwersalne wejście/wyjście.

Blok danych

Tak jak blok sterowania podstawą czasu, tak blok danych (pokazany na rysunku 5) jest również obecny we wszystkich mikrokontrolerach PIC, pozwalających na bezpośrednie sterowanie wyświetlaczami LCD. Składa się on z rejestrów LCDDATAx. Po tym, jak moduł zostanie zainicjalizowany dla danego panelu LCD, poszczególne bity rejestrów LCDDATAx są czyszczone lub ustawiane tak, by reprezentować jasny lub ciemny piksel, w zależności od potrzeb.

Określone zestawy rejestrów są używane dla określonych segmentów i sygnałów wspólnych. Każdy bit reprezentuje unikalną kombinację podłączonego segmentu i wyprowadzenia wspólnego.

Blok generowania poziomu polaryzacji

Istnieją dwie podstawowe metody generowania napięć polaryzacji: drabinka z dzielnikami rezystorowymi i pompa ładunku. Obie z nich mogą być zrealizowane na zewnątrz lub za pomocą wewnętrznych obwodów wspomnianych mikrokontrolerów. Rejestr LCDref określa, czy zostało użyte wewnętrzne, czy zewnętrzne źródło napięcia polaryzacji. Ustawienie bitu LCDIRE pozwala na skorzystanie z wewnętrznego polaryzowania.

W momencie, gdy wewnętrzne źródło napięcia jest włączone, kontrast może być programowo sterowany poprzez konfigurację bitów LCDCST, które w niektórych mikrokontrolerach znajdują się w oddzielnym rejestrze. Źródło zasilania dla obwodu sterującego kontrastem może zostać wybrane bitem LCDIRS. Rejestr LCDref także określa, które wyprowadzenia zostały użyte do wewnętrznego lub zewnętrznego sterowania napięciem polaryzacji.

Rejestr LCDRL pozwala na sterowanie różnymi trybami zasilania oraz odstępami czasowymi pomiędzy poszczególnymi z tych trybów.

Wykorzystanie metody generowania napięcia polaryzacji za pomocą pompy ładunku wymaga jedynie konfiguracji rejestru LCDreg. Po włączeniu pompy ładunku kontrast może być sterowany bitami polaryzacji. Regulator pozwala na włączenie albo trybu 1/3, albo statycznej polaryzacji poprzez ustawienie lub wyczyszczenie odpowiedniego bitu. Do układu regulacji trzeba również podać sygnał zegarowy, którego źródło określa się za pomocą bitów rejestru CLKSEL.

Częstotliwość ramek

Częstotliwość ramek wyświetlacza LCD to tempo, z jakim zmieniane są sygnały na wyjściach sterownika. Źródło sygnału zegarowego zależy od odpowiednich bitów danego mikrokontrolera. Układy PIC pozwalają zazwyczaj wybrać jeden z trzech sygnałów zegarowych do sterowania LCD.

Zakres dostępnych częstotliwości wynosi od 25 Hz do 250 Hz, przy czym najczęściej dostępne i wskazywane są wartości od 50 Hz do 150 Hz. Wyższe częstotliwości skutkują zwiększeniem pobieranej mocy i pojawianiem się cieni, podczas gdy niższe mogą powodować migotanie.

Źródła zegara

Rysunek 6. Generowanie sygnału zegarowego dla LCD

W mikrokontrolerach PIC istnieją trzy dostępne źródła sygnału zegarowego. Zazwyczaj są to: szybki, wewnętrzny oscylator RC, dodatkowy oscylator (SOSC) i wewnętrzny oscylator LPRC. Jednakże niektóre z podzespołów pozwalają na wybranie spośród zegara systemowego, pierwszego timera i wewnętrznego oscylatora RC. Na rysunku 6 pokazano, jak zazwyczaj generowany jest sygnał zegarowy na potrzeby sterowania wyświetlaczem LCD.

Dla tych trzech źródeł sygnału zegarowego dzielnik częstotliwości pozwala uzyskać na wyjściu sygnał o częstotliwości około 1 kHz. Przykładowo, jeśli źródłem sygnału zegarowego jest 8-megahercowy oscylator FRC, trzeba ten sygnał podzielić przez 8192, by uzyskać wartość około 1 kHz na wyjściu. Dzielnik ten nie jest programowalny. Zamiast tego bity rejestru preskalera LCD (LCDPS) są używane do ustawiania częstotliwości ramek. Bity te określają sposób przypisania preskalera i jego współczynnik.

Zazwyczaj dwa z trzech źródeł sygnału zegarowego mogą być wykorzystane oddzielnie do ciągłej pracy wyświetlacza, podczas gdy trzeciego można użyć w trybie uśpienia.

Generowane sygnały

Rysunek 7. Sygnały sterujące typu A i typu B

Wyświetlacz LCD można opisać za pomocą stopnia multipleksacji i napięcia polaryzacji, ale potrzeba jeszcze jednej informacji - rodzaju fali sterującej pikselami. Sygnały te są generowane w taki sposób, by napięcie przemienne na wygaszonych pikselach było maksymalnie duże, a na wyczyszczonych jak najmniejsze. Natomiast napięcie DC na każdym pikselu powinno być zerowe. Wyświetlacze mogą być sterowane sygnałami typu A lub B (rysunek 7).

W przypadku sygnałów typu A zmiana fazy następuje podczas sterowania każdym ze wspólnych wyprowadzeń, natomiast w przypadku typu B faza zmienia się na końcu każdej ramki. Dlatego w sygnałach typu A zerowe napięcie średnie jest zachowane w trakcie każdej jednej ramki, podczas gdy w sygnałach typu B średnia jest zerowa dopiero dla dwóch ramek. Na rysunku 7 pokazano sygnały sterujące dla współczynników 1/3, zarówno dla multipleksera, jak i polaryzacji, dla obu typów sygnałów.

Napięcie przyłożone do konkretnego piksela to różnica pomiędzy napięciem na wyprowadzeniu COM a napięciem na wyprowadzeniu SEG. Jeśli powstałe napięcie jest na granicy Von lub powyżej, wtedy dany piksel jest widoczny. Jeśli jest poniżej granicy Voff, wtedy piksel przestaje być widoczny.

Kontrast wyświetlacza można natomiast określić poprzez obliczenie stosunku pomiędzy napięciem RMS piksela zapalonegonapięciem RMS piksela wygaszonego. Mapowanie segmentów pozwala na łatwe i szybkie określenie, które piksele powinny być zapalone, a które wygaszone.

Ustalanie napięcia polaryzacji za pomocą zewnętrznych rezystorów

Rysunek 8. Ustalanie poziomów polaryzacji za pomocą zewnętrznych rezystorów

Rysunek 9. Ustalanie poziomów polaryzacji za pomocą zewnętrznych rezystorów, ale w połączeniu z dodatkowymi kondensatorami redukującymi zniekształcenia

Rysunek 10. Ustalanie poziomów polaryzacji za pomocą wewnętrznej drabinki rezystorowej - diagram połączeń

Drabinka rezystorowa jest najczęściej stosowanym układem do ustalania większych wartości napięć VDD (rysunek 8). Jest to niedrogi sposób, ze względu na niskie ceny rezystorów, a pozwala przygotować wiele poziomów napięć.

Wartości rezystancji, jakie będą potrzebne, zależą od jakości wyświetlanego obrazu i mocy, której wymaga wyświetlacz. Jakość obrazu zależy od kształtu sygnału sterującego pikselami. Ponieważ panel LCD stanowi obciążenie pojemnościowe, kształt tego sygnału ulega zniekształceniom ze względu na prądy ładowania i rozładowywania. Zniekształcenia da się zredukować, ale wymaga to zmniejszenia oporności użytych rezystorów. Niestety, taka zmiana powoduje również wzrost zużycia mocy ze względu na większy prąd, płynący przez rezystory. I im większy wyświetlacz LCD, tym wartość tych rezystancji i tak musi być zmniejszana, by utrzymać zadowalającą jakość obrazu.

Czasem dodanie kondensatorów równolegle do rezystancji pozwala zredukować zniekształcenia spowodowane prądami ładowania i rozładowywania (rysunek 9). Efekt ten jest jednak ograniczony, gdyż w pewnym momencie duży rezystor i duży kondensator powodują przesunięcia poziomu napięć, które negatywnie wpływają na jakość obrazu. Natomiast dodanie potencjometru pozwala na zewnętrzne sterowanie kontrastem.

Wewnętrzne ustalanie poziomów polaryzacji

Aby uniknąć konieczności stosowania dodatkowych, zewnętrznych komponentów oraz by zaoszczędzić nawet trzy wyprowadzenia układu, które w przypadku zewnętrznej drabinki służą generowaniu poziomów napięć, w mikrokontrolerach PIC znajdują się wbudowane rezystory i wewnętrzny obwód sterujący kontrastem (rysunek 10).

Wbudowany w MCU dzielnik napięciowy składa się z trzech rezystorów i jest w stanie dzielić napięcie na dwa lub trzy, równo oddalone od siebie poziomy, które następnie są podawane na wyprowadzenia segmentów wyświetlacza LCD. W trybie podziału na dwa poziomy (tryb 1/2) środkowy rezystor drabinki jest zwarty. Pozwala to też jednocześnie zmniejszyć sumaryczną rezystancję drabinki, a więc i zwiększa pobór prądu.

Podsumowanie

Różne mikrokontrolery, zawierające wbudowane sterowniki LCD pozwalają swobodniej tworzyć projekty i w łatwiejszy sposób, bez dodatkowych, zewnętrznych scalaków, sterować tym, co będzie wyświetlane. Wbudowane generatory napięć polaryzujących, sterowanie kontrastem i funkcje oszczędzania energii tym bardziej upraszczają schemat płytki drukowanej i zmniejszają koszty całego urządzenia. Pozwalają projektantowi na realizację nawet zaawansowanych funkcji związanych z wyświetlaniem, przy zachowaniu wysokiej jakości obrazu.

Marcin Karbowniczek

 

W artykule wykorzystano fragmenty noty aplikacyjnej „LCD Fundamentals and the LCD Driver Module of 8-bit PIC Microcontrollers”, opracowanej przez Mary Tamar Tan i Rodgera Richeya z firmy Microchip Technology

Artykuł ukazał się w
Elektronika Praktyczna
sierpień 2019
DO POBRANIA
Pobierz PDF Download icon

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik wrzesień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio wrzesień - październik 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje wrzesień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna październik 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich październik 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów