Zrób to sam
Life hacki, kursy mistrzowskie, przydatne wskazówki, przepisy.
dom » Elektronika » Elektronika DIY » Jak podłączyć wyświetlacz OLED I2C do ARDUINO
Wprowadzenie: Wprowadzenie do wyświetlacza OLED I2C 128*64/128*32.
Jak podłączyć wyświetlacz OLED I2C do ARDUINO

Cześć! Będąc amatorem elektroniki mam pewność, że wszystko co robimy - zabawki elektroniczne, wyroby domowej roboty, czy duże projekty - robimy z ciekawości i lenistwa. Ciekawość stara się zrozumieć i pojąć to, co rozległe, nieznane, dowiedzieć się, jak tam działa, co robi, jak się porusza. A lenistwo wymyśla coś, żeby nie wstać, nie podejść, nie podnieść, nie ubrudzić się ani nic innego ważnego.

Ponieważ oglądanie informacji jest lepsze niż zastanawianie się, co ma się wydarzyć w naszym urządzeniu, co już się wydarzyło lub dzieje, z pewnością będziemy chcieli otrzymać te najbardziej przydatne informacje z naszych mikrokontrolerów, czujników lub innych urządzeń. W każdym razie chcę otrzymywać wszelkie wiadomości, takie jak pytania, ostrzeżenia, przypomnienia, emotikony, gwiazdki, serca i tym podobne.

Dla tych, którzy również mają podobne pragnienia, oto krótki przewodnik dotyczący podłączania i testowania małych i niedrogich wyświetlaczy OLED.
Następnie porozmawiamy o jednym z szeroko dostępnych dla radioamatorów modeli wyświetlaczy OLED, sterowanych chipem SSD1306, o przekątnej ekranu 0,96 cala i rozdzielczości 128*64 lub 128*32 pikseli. Wyświetlacze te idealnie nadają się do małych projektów radioamatorskich i projektów domowych.
Jak podłączyć wyświetlacz OLED I2C do ARDUINO

Krok 1: Podstawowe pojęcia


Podłączymy go do Arduino UNO/NANO, a także będziemy go programować poprzez Arduino.
  • OLED to organiczna dioda elektroluminescencyjna, czyli urządzenie półprzewodnikowe wykonane ze związków organicznych, które zaczyna emitować światło, gdy przepływa przez nie prąd elektryczny.
  • ARDUINO to platforma do szkoleń oraz systemów automatyki i robotyki budynków.
  • ArduinoIDE - środowisko programistyczne. Jest to darmowy program do programowania Arduino.
  • I2C – Inter-Integrated Circuits, linia komunikacyjna między chipami.
  • Szkic, czyli kod, czyli program – terminologia Arduino.

Postępuj zgodnie z instrukcjami, aby zrozumieć, jak prawidłowo podłączyć i skonfigurować wyświetlacz OLED do Arduino oraz jak wyświetlić niestandardowy komunikat na jego wyświetlaczu.
Wszystko robimy krok po kroku.

Krok 2: Akcesoria


Potrzebujemy tylko czterech rzeczy:
  • 1. Sam wyświetlacz OLED ma przekątną 0,96” (można go kupić na Aliexpress lub Ebay, jest długi, ale tani!).
  • 2. Arduino UNO/Nano (w tym samym miejscu co wyświetlacz).
  • 3. Podłączenie przewodów (tamże).
  • 4. Komputer lub laptop z zainstalowanym ArduinoIDE.

Jak podłączyć wyświetlacz OLED I2C do ARDUINO

Generalnie kupowanie części do różnych projektów na Aliexpress i Ebay to bardzo fajna sprawa, podczas gdy pracujesz nad jednym projektem, części do drugiego są już w drodze. Najważniejsze, aby nie zapomnieć złożyć zamówienia.

Krok 3: Podłączanie wyświetlacza


Wyświetlaczem steruje układ SSD1306, który obsługuje pięć protokołów komunikacyjnych, z których jeden to I2C. Dane przy pomocy tego protokołu przesyłane są tylko dwoma przewodami, a im mniej przewodów w obudowie, tym lepiej, więc nam to całkiem odpowiada.Ale! Istnieją moduły z protokołem SPI, a nawet z przełączaniem protokołów, dlatego należy zachować ostrożność przy zakupie tego modułu.
Jak podłączyć wyświetlacz OLED I2C do ARDUINO

Wykorzystane piny:
Wyświetlacz OLED - SCL/SCK (zegar) i SDA (dane), moc „Plus” (VCC) i moc „Minus” (GND).
Jak podłączyć wyświetlacz OLED I2C do ARDUINO

Wykorzystane piny:
Arduino UNO - SCL/SCK na A5 i SSD na A4, zasilanie „Plus” (+5V) i zasilanie „Minus” (GND).
Podłączenie wyświetlacza do Arduino:
  • Vcc - 5 V
  • GND - GND
  • SDA-A4
  • SCL-A5

Jak podłączyć wyświetlacz OLED I2C do ARDUINO

Krok 4: Skaner I2C


Każde urządzenie na magistrali I2C ma adres szesnastkowy, nie można go zmienić, jest on podłączony na stałe, każdy odpowiedzialny producent musi to wskazać gdzieś na obudowie lub w instrukcji. Istnieją moduły z przełącznikami i zworkami, którymi można zmienić adres, ale… jeśli urządzenia są śmiesznie tanie, to producent może nie zaprzątać sobie głowy takim szczegółem, więc trzeba będzie to ustalić samemu.

Łącznie na magistrali można wykorzystać aż 127 adresów – 119 dla urządzeń i 8 adresów serwisowych. Pod tymi adresami prowadzona jest komunikacja. Jest główny, czyli Mistrz, i jest niewolnik, czyli Niewolnik – Mistrzowie pytają, niewolnicy odpowiadają, wszystko jest proste.
Ponieważ nasz wyświetlacz OLED korzysta z protokołu komunikacyjnego I2C, a adres może nie zostać określony, spróbujemy sami znaleźć ten adres.

Możesz to zrobić, przesyłając krótki szkic na płytkę Arduino z podłączonym wyświetlaczem OLED. ALE!
Nie spiesz się, aby od razu przesłać szkic do Arduino! Najpierw pobierzmy „sterowniki”, tj. połączmy biblioteki i w tym celu od razu przejdziemy do „Kroku nr 5”, a potem wrócimy i będziemy kontynuować.

Krok 4: Ciąg dalszy:


Pobierz CODE Finder_I2C_Hex_Address.ino, prześlij do Arduino.
Otwórz „Port Monitor”, ustaw prędkość na 9600 i jeśli wszystko zostanie poprawnie podłączone, program pokaże adres urządzenia, w moim przypadku OLED o adresie 0x3F.
Jak podłączyć wyświetlacz OLED I2C do ARDUINO

Krok 5: Pobierz i podłącz biblioteki


Aby wszystko działało poprawnie i nie trzeba było wymyślać koła na nowo, należy podłączyć do środowiska ArduinoIDE kilka bibliotek, a mianowicie: ADAFRUIT GFX i ADAFRUIT SSD1306, są one niezbędne, aby Arduino mogło samodzielnie się komunikować z wyświetlaczem OLED.
Biblioteki te można uwzględnić, wykonując poniższe kroki.
  • 1. W ArduinoIDE przejdź do menu Szkic.
  • 2. Wybierz „Dołącz biblioteki”.
  • 3. Wybierz opcję „Zarządzaj bibliotekami”.
  • 4. Znajdź ADAFRUIT GFX i zainstaluj je.
  • 5. Znajdź ADAFRUIT SSD1306 i zainstaluj je.

Przy najnowszych wersjach bibliotek mój wyświetlacz działał krzywo, może to być oczywiście spowodowane krzywizną moich dłoni, ale po zainstalowaniu pierwszych wersji tych bibliotek wszystko zaczęło wyglądać gładko i pięknie. Z jakiegoś powodu przychodzą mi na myśl słowa Puszkina:
...i doświadczenie, syn trudnych błędów,
i geniusz, przyjaciel paradoksów.

Innym sposobem instalowania bibliotek jest ich samodzielne znalezienie, pobranie i zainstalowanie.
Dla przykładu Githuba:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306

To te same biblioteki Adafruit, ale podobne biblioteki można łatwo przeszukać w wyszukiwarkach, na żądanie OLED I2C. Wielu entuzjastów pisze biblioteki „dla siebie”, a następnie umieszcza je w sieci. To, której biblioteki użyjesz, zależy od Ciebie.
Aby wyświetlacz wyświetlał rosyjskie litery, potrzebne są także specjalne biblioteki, ale to już osobny temat na osobny artykuł.
Po zainstalowaniu bibliotek możesz wrócić do kroku 4 i na koniec sprawdzić szesnastkowy adres swojego wyświetlacza.

Krok 6: Testowanie wyświetlacza


Aby sprawdzić, czy wszystko działa zgodnie z oczekiwaniami, uruchom przykładowy test z ArduinoIDE.
Dla tego:
Przejdź do PLIK > PRZYKŁADY > SSD 1306 > Wybierz 128x64 i2c
Jeśli pojawi się komunikat „Błąd”, spróbuj wybrać opcję SSD 1306 > 128x32 i2c.
Jeśli „Błąd” pojawi się ponownie, spróbuj zmienić adres I2C w linii 61 kodu demonstracyjnego i zastąp go adresem wyświetlacza, który ustaliłeś w kroku 4.
Jeśli błąd pojawi się ponownie, możesz spróbować edytować plik Adafruit_SSD1306.h, znajduje się on w folderze bibliotek Arduino.
Jak podłączyć wyświetlacz OLED I2C do ARDUINO

Otwórz plik Adafruit_SSD1306.h w edytorze tekstu i znajdź linie:
//#zdefiniuj dysk SSD1306_128_64
#zdefiniuj dysk SSD1306_128_32
// #zdefiniuj dysk SSD1306_96_16 

Odkomentuj linię:
#zdefiniuj dysk SSD1306_128_64. 

To powinno wyglądać tak:
#zdefiniuj dysk SSD1306_128_64
//#zdefiniuj dysk SSD1306_128_32
// #zdefiniuj dysk SSD1306_96_16

Jeżeli błąd wystąpi ponownie, należy sprawdzić poprawność połączeń.
Po zakończeniu pobierania na ekranie pojawi się animacja testowa, co oznacza, że ​​pomyślnie skonfigurowałeś wyświetlacz OLED.

Kiedy ta animacja całkowicie Ci się spodoba, możesz przejść do następnego kroku.

Krok 7: Napisz własną wiadomość


Aby napisać własną wiadomość, najpierw utwórz nowy szkic w środowisku programistycznym ArduinoIDE.
W nagłówku umieszczamy 4 biblioteki:
#include <SPI.h>
#include <Przewód.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Następnie piszemy protokół resetowania:
#zdefiniuj OLED_RESET 4
Wyświetlacz Adafruit_SSD1306 (OLED_RESET);

W VOID SETUP podajemy szesnastkowy adres naszego wyświetlacza 0x3C, którego nauczyliśmy się w „Kroku nr 4”.
Następnie inicjujemy wyświetlacz i czyścimy go:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
wyświetlacz.clearDisplay();

Następnie w VOID LOOP wpisujemy kod główny, czyli nasz komunikat, który chcemy wyświetlić na wyświetlaczu.
W tym celu opisujemy wielkość tekstu, kolor tekstu, położenie kursora, a na koniec wyświetlamy komunikat za pomocą polecenia println:
display.setTextSize(2);
display.setTextColor(BIAŁY);
display.setCursor(0,0);
display.println("Dobra robota!");
wyświetlacz.wyświetl();

Na koniec nie zapomnij napisać wyświetlacz.wyświetlacztak, aby obraz był wyświetlany na ekranie, w przeciwnym razie otrzymasz pustkę.
Jeśli wszystko zrobiłeś poprawnie, na wyświetlaczach pojawi się komunikat.
Jak podłączyć wyświetlacz OLED I2C do ARDUINO

Oto KOD Starting_with_Arduino_OLED.ino naszego programu:
kod pocztowy [946 b] (pobrań: 4908)
Wróć
Komentarz
  • muszkauśmiechśmiać sięrumieniecbuźkazrelaksowany zrelaksowanyuśmiech
    oczy_sercacałowanie_sercacałowanie_zamkniętych_oczyzarumienionyodciążonyzadowolonaszeroki uśmiech
    puścić oczkozatrzymany_out_tongue_winking_eyezatrzymany_out_tongue_closed_eyesuśmiechając sięcałowanieutknął_na_językuspanie
    zmartwionymarszcząc brwiudręczonyotwarte ustakrzywiąc sięzdezorientowanyuciszony
    bezwyrazowybez rozbawieniapot_uśmiechpotrozczarowany_ulgazmęczonybierny
    zawiedzionyzmieszanystraszliwyzimny potwytrwaćpłakaćszloch
    radośćzdziwionykrzykzmęczona_twarzzływściekłośćtriumf
    sennymniammaskaokulary słonecznezawroty głowychochlikuśmiechnięty_imp
    neutralna_twarzbez ustniewinny
4 minus jeden =
Komentarze (10)
  1. Tatoszka
    #1 Tatoszka Goście 14 listopada 2018 21:18
    9
    Dziękuję przyjacielu! To jest mój pierwszy przesłany szkic i wprowadzenie do Arduino. Oprócz mrugania Blink))
  2. Aliszer
    #2 Aliszer Goście 28 lipca 2019 19:35
    8
    Gdzie mogę pobrać ten kod Finder_I2C_Hex_Address.ino?
    1. Glin
      #3 Glin Goście 14 sierpnia 2019 12:51
      11
      pod obrazkiem znajduje się link „Oto KOD Starting_with_Arduino_OLED.ino naszego programu:”
  3. Aleks
    #4 Aleks Goście 13 listopada 2019 20:01
    9
    Nie VOID SETUP lub VOID LOOP, ale void setup(); i pusta pętla(); Język C jest językiem, w którym rozróżniana jest wielkość liter.
  4. Gość Aleks
    #5 Gość Aleks Goście 14 stycznia 2020 03:00
    6
    >Krok 4: ...w moim przypadku OLED z adresem 0x3F.
    i wtedy
    >W VOID SETUP... adres naszego wyświetlacza 0x3C, o czym dowiedzieliśmy się w „Kroku #4”.
    W jaki sposób?
  5. Gość Aleks
    #6 Gość Aleks Goście 14 stycznia 2020 03:10
    9
    Dziękuję! Zrobiłem wszystko zgodnie z instrukcją na Atmega328 Pro Mini i sprawdziłem zakupiony 0,96". Obydwa okazały się działać. Arduino IDE 1.8.10
  6. Czytelnik
    #7 Czytelnik Goście 3 marca 2020 21:50
    4
    Dziękuję, pouczające, wszystko działa!
  7. Ildar Xafizow
    #8 Ildar Xafizow Goście 19 kwietnia 2020 19:15
    5
    Mam pytanie. Istnieją 2 wyświetlacze OLED identyczne jak Twoje na zdjęciu (drugie zdjęcie). Nie wiem, jakich zworek użyć do zmiany adresu?
  8. Gość Maksym
    #9 Gość Maksym Goście 31 października 2020 18:53
    11
    Dziękuję za artykuł.Mam jednak problem: piksele w literach świecą co drugi, a czcionka jest większa niż powinna. Najwyraźniej Arduino nie rozpoznaje rozdzielczości ekranu. Jeśli ktoś ma ten sam problem, oto jak go rozwiązać:
    #define SCREEN_WIDTH 128 // Szerokość wyświetlacza OLED w pikselach
    #define SCREEN_HEIGHT 64 // Wysokość wyświetlacza OLED w pikselach
    Wyświetlacz Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
  9. Dmitrij
    #10 Dmitrij Goście 9 maja 2021 19:35
    7
    Dziękuję! Nie wszystko od razu się udało. Rzeczywiście adres na wyświetlaczu wynosił 128*64, a nie 0x3D, ale 0x3C. I przeorganizowałem Biblioteki „od środka” wersji. Nie najnowszy, bo... pojawił się komunikat o krytycznej wartości pamięci (mam Arduino Uno).

Marynowana czerwona cebula (do kanapek, sałatek, burgerów i pilawów)

Rysowanie zachodu słońca nad morzem i dekorowanie starych drzwi | Zrób to sam

Księga życzeń DIY dla chłopca | Zrób to sam

Jak zdemontować i nasmarować uchwyt wiertarski

«Zrób to sam - własnymi rękami» - strona z ciekawymi domowymi wyrobami wykonanymi ze złomu oraz przedmiotami domowymi. Kursy mistrzowskie krok po kroku ze zdjęciami i opisami, technologiami, trikami życiowymi - wszystko, czego potrzebuje prawdziwy mistrz lub po prostu rzemieślnik do robótek ręcznych. Rzemiosło o dowolnej złożoności, duży wybór kierunków i pomysłów na kreatywność.

Polecamy przeczytać

Kody błędów pralki