Skocz do zawartości

Problem z wyświetlaczem OLED na arduino


Pomocna odpowiedź

Napisano

Witam,
Niedawno kupiłem na allegro wyświetlacz OLED 0,96" w celu podłączenia do płytki arduino. Wyświetlacz posiada możliwość komunikacji przez I2C, SPI trój- i cztero- przewodowe. Aby "wybrać" odpowiedni rodzaj wyjścia należy przelutować zworkę z tyłu płytki PCB.

Po zmienieniu owej zworki na I2C, po podłączeniu do arduino i wgraniu przykładu z biblioteki adafruit SSD1306 wyświetlacz działa tylko w rozdzielczości 128x32px wyświetlając co drugą linię punktów. Przesyłam link do strony producenta 0,96inch OLED

Wyświetlacz jest podzielony i powinien wyświetlać szesnaście linii żółtych i 48 niebieskich, wyświetla jednak o połowę mniej. Proszę o pomoc 😉

A którego przykładu spróbowałeś? Tego dla wyświetlaczy 128x32?

[ Dodano: 09-03-2016, 22:27 ]

Cytując z pliku .h:

/*=========================================================================
   SSD1306 Displays
   -----------------------------------------------------------------------
   The driver is used in multiple displays (128x64, 128x32, etc.).
   Select the appropriate display below to create an appropriately
   sized framebuffer, etc.
   SSD1306_128_64  128x64 pixel display
   SSD1306_128_32  128x32 pixel display
   SSD1306_96_16
   -----------------------------------------------------------------------*/
//   #define SSD1306_128_64
  #define SSD1306_128_32
//   #define SSD1306_96_16
/*=========================================================================*/

Dobrze, tylko co ja z Twoim kodem zrobić, bo średnio wiem 😕

Szkoda, że nie wiem jak zrobić to, co wysłałeś 🙁

Znalazłem plik z rozszerzeniem .h i zmieniłem na 128_64, teraz błędu nie ma, ale na wyświetlaczu... ni ma nic

Przykład 128x64 zwraca błąd, bo dowiedział się od biblioteki, że ta jest ustawiona (domyślnie) na 128x32. Zajrzyj do pliku Adafruit_SSD1306.h i zmień te trzy wskazane przez deshipu linie tak, by aktywna była definicja trybu 128x64. Przecież to jest napisane wielkimi literami na czerwonym polu z wielkim wykrzyknikiem na pierwszej stronie opisującej tę bibliotekę:

https://learn.adafruit.com/monochrome-oled-breakouts/arduino-library-and-examples

EDIT: Dobra, nie zauważyłem, że dopisałeś do swojego wcześniejszego postu wykonanie zmiany. A skompilowało się poprawnie? Załadowało do procka bez błędów? Nic więcej nie zmieniałeś? Nigdy nie miałem problemów z tą biblioteką.

Hmm Niby proste, ale ja się potrafię zgubić.

/*=========================================================================
   SSD1306 Displays
   -----------------------------------------------------------------------
   The driver is used in multiple displays (128x64, 128x32, etc.).
   Select the appropriate display below to create an appropriately
   sized framebuffer, etc.

   SSD1306_128_64  128x64 pixel display

   SSD1306_128_32  128x32 pixel display

   SSD1306_96_16

   -----------------------------------------------------------------------*/
  	#define SSD1306_128_64
//	#define SSD1306_128_32
//   #define SSD1306_96_16

Zrobiłem to dobrze?

Użyłem przykładu I2C 64, nie wiem co tu się dzieje! Mam do resetu podłączony, ale on musi być na stanie wysokim czyli równie dobrze w zasilaniu +5V bo zmieniłem to dobrze, prawda? A komunikatów teraz nie ma, tylko że normalnie załadowane, diody od komuniacji na arduino migają, a wyświetlacz milczy...

Poprawka. Chyba coś robiłem źle, ale wyświetlacz działa już prawidłowo! Dzięki wielkie za zainteresowanie i pomoc! 😃😃

  • Pomogłeś! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...