Jak podłączyć wyświetlacz OLED I2C do ARDUINO
Wprowadzenie: Wprowadzenie do wyświetlacza OLED I2C 128*64/128*32.
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.
Podłączymy go do Arduino UNO/NANO, a także będziemy go programować poprzez 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.
Potrzebujemy tylko czterech rzeczy:
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.
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.
Wykorzystane piny:
Wyświetlacz OLED - SCL/SCK (zegar) i SDA (dane), moc „Plus” (VCC) i moc „Minus” (GND).
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:
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ć.
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.
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.
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.
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.
Otwórz plik Adafruit_SSD1306.h w edytorze tekstu i znajdź linie:
Odkomentuj linię:
To powinno wyglądać tak:
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.
Aby napisać własną wiadomość, najpierw utwórz nowy szkic w środowisku programistycznym ArduinoIDE.
W nagłówku umieszczamy 4 biblioteki:
Następnie piszemy protokół resetowania:
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:
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:
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.
Oto KOD Starting_with_Arduino_OLED.ino naszego programu:
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.
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.
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.
Wykorzystane piny:
Wyświetlacz OLED - SCL/SCK (zegar) i SDA (dane), moc „Plus” (VCC) i moc „Minus” (GND).
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
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.
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.
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.
Oto KOD Starting_with_Arduino_OLED.ino naszego programu:
kod pocztowy
[946 b] (pobrań: 4908)
Podobne klasy mistrzowskie
Szczególnie interesujące
Komentarze (10)