Fórum témák
» Több friss téma |
Fórum » SSD1306 OLED I2C
Nincs logikai analizátorom, de muszáj lesz beszereznem.
Ez az OLED hátoldala: Én simán írnék egy annyi programot Sajnos ennyire nem értek a dologhoz, de majd a neten utána nézek. OFF Még egy dolog: Az mért van, hogy az Arduino példatárban lévő blink program "HIGH"-ra kikapcsol, "LOW"-ra bekapcsol. Erről van szó: void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } Mit bénáztam el? ON
I2C szkenner. Ezt próbáld ki! Ha jól dugtad össze a kijelzőt az arduinoval, akkor valamelyik címen meg fog szólalni.
Összedugtam és a 0x3C címet találta meg. Ez elvileg passzol a hátoldalán lévő 0x78 címmel.
Kezdők kérdése: akkor melyiket is kell beállítani a programban? (szerintem a 0x3C-t) Beállítottam, a pullup ellenállásokat kicseréltem 2k-oskra, semmi eredmény
Szerintem nézd át a fejléc fájlt, mert ott volt még kis kavarás, hogy mit kell beállítgatni (talán egy sort kikommentelni egy másikról kivenni a kommentet), de én a libet csak alapul vettem, mert más platformra írtam át, így ebben többet nem nagyon fogok tudni segíteni.
Hibás volt az előző OLED, azért szívtam vele.
Hozattam újat, mindenféle pull-up ellenállás és egyéb nyalánkság nélkül működik. Köszönöm a segítséget.
Helo.
Mennyire hajlamosak ezek a modulok a pixelhibára? Mehet maximum kontraszton vagy inkább maradjon a gyári 0x7F érték?
Inkább beégésre hajlamosak. Én úgy szoktam, ha nem nyúlnak hozzá, csökkentem a fényerőt, ha állandó kijelzés kell, akkor 5-10-percenként inverzbe kapcsolom. Ha már döglik, dögöljön kb. egyformán De azért elég jól bírják.
(Ez nem válasz, hanem új kérdés, mert csak így tudtam mellékletet beszúrni!)
Vettem 2db 2,3"-os I2C-s OLED kijelzőt 128x64-es típus. [GME12864-81] Most egy arduino nano-val hajtom. Netről letöltött programokkal teszteltem, de nem működik jól! A következő szerinti beállításban majdnem jó. Az első karakter fele hiányzik, a sor végén viszont egy függőleges vonal látható. (alap.jpg)
A következő beállításban a képernyő fölső részén csak egy csíkban jelenik meg valamilyen tartalom. Azért tettem be erről több képet mert a csíkban rohangál valami tartalom... (csik1-3.jpg)
Ezen annyit kellett változtatnom, hogy a "#define SCREEN_ADDRESS 0x3D" sorba 0x3D helyett 0x3C-nek kell lennie - csak így megy. I2C szkenner progival is ellenőriztem. (Arra gondoltam, hogy a "SSD1306AsciiWire.h"-ban kellene változtatnom valamit, de MIT??)
Mindkét kijelző ugyanúgy működik, tehát nem hibás példány. (esetleg széria hiba? - HESTORE-ban vettem.)
Ez a teljes kódod, amivel megszólítod a kijelzőt? Csak mert ha nem követed a bekapcsolási rutint, akkor akármi is mehet rá...
Nézd meg a korábbi hozzászólásom, ahol ott van a teljes szekvencia, ami után a 128*64-es kijelző jól működik (az ne zavarjon, hogy pic-re írtam, a kiküldendő utasítások ugyan azok).
Természetesen ez csak a kijelző inicializálása volt. Megpróbáltam néhány "SSD1306...h"-val is, és teljesen más volt az OLED képe, ezért memória címzési problémára gyanakodok.
Megkeresem azt a PIC-es "szekvenciádat".
Bővebben: Link
A pic kezdőknek topikban pedig itt a komplett projektem, ami jól ír ki a kijelzőre: Bővebben: Link A hozzászólás módosítva: Dec 3, 2023
Ez lett a megoldás: (hátha valakinek segít!)
SSD1306init.h -ban:
Annyi szépséghibája még van, hogy így kell a sor elejére írni:
A hozzászólás módosítva: Dec 4, 2023
|
Bejelentkezés
Hirdetés |