Boj s displejem
Dnešní boj s ESP8266 a displejem OLED 1306 128x32 (nebo 64 ?) jsem dovedl k vítěznému konci. Návody jsou perfektní, pokud neděláte normální chyby. Takže, ačkoliv deska funguje na universálním nastavení Generic ESP8266 Module (bliká atd.), tak při připojení k displeji, program neběhá a odmítá komunikovat i s COM portem. Tedy komunikuje, ale na sériovém monitoru se při běhu programu zobrazují nesmysly a OLED displej ani nenastartuje. Tedy kudy cestička? Tak kontrola připojení displeje - dobře, nic mi nevyhořelo. Kontrola desky - program Blik se nahrává a deska bliká. Druhý displej. To samé. Na jakém portu I2C je displej připojen? Nahrávám skenink sběrnice a na sériovém monitoru opět nesmysly. To už začíná být podezřelé - zrada mezi klávesnicí a židlí? Nastavuji ve skenovacím programu poctivě GPIO piny - SDA GPIO 4, SCL - GPIO 5. Zase nesmysly. Aha, tak změna desky v nastavení Arduino IDE - měním na desku NODEMCU 1.0 (ESP - 12E module) - nějak jsem si vzpomněl, že jsem to už kdysi musel udělat. A ejhle, sériový monitor funguje, displej se objeví na 0x3C (to asi má být displej 138x32, divné), tak uvidím. Nahrávám program z knihovny Příkladů - Adafruit - SSD1306_128x64_I2C. A hele, ono to konečně běží. Prohlížím si ještě Demo program - vše se nejdříve kreslí do bufferu a ten se pak zobrazí příkazem display.display();. Buffer a OLED displej vymažeme display.clearDisplay();
|
![]() |
Podprogram pro vykreslení textu void testdrawchar(void) { display.setTextSize(1); // Normal 1:1 pixel scale // Not all the characters will fit on the display. This is normal. display.display();
|
|