OLED arduino e adafruit librery

Buon giorno, sto usando un display OLED SSD 1306 con arduino MEGA, 128X64 con libreria Adafruit_SSD1306 e Adafruit_GFX.
Tutto bene, collegamenti fatti ed ho iniziato a scrivere ecc..
Però ora mi imbatto in un problema, praticamente vorrei sovrascrivere dei numeri senza dover cancellare tutto il resto che avevo stampato.
Il progetto è un lettore MP3 e praticamente vorrei che mi visualizzasse il numero della traccia ogni volta che cambia senza dover riscrivere tutto lo schermo.
E' possibile cancellare solo la parte interessata??oppure devo per forza cancellare tutto con "clearDisplay" e riscrivere tutto quello che c'era??
Grazie.

Ciao! Puoi disegnare un rettangolo dello stesso colore dello sfondo sopra alla parte da cancellare

Sovrascrivi con le coordinate X e Y solo la parte interessata dalla modifica.
Ad esempio:

        display.setRotation(3);  //180 grados -posición inicial-
        display.setTextSize(1);
        display.setCursor(4,10);
        display.println("eCO2");
        display.setCursor(4,120);
        display.println("PPM.");
       display.display(); 

Saluti.

mah... visto che il refresh dello schermo di solito è un a schifezza inguardabile, non si dovrebbe fare MAI , devi programmare in modo "differente" spedisci sempre e comunque sul display una cifra alla volta.
La spedisci solo se è diversa da quella di prima, e prima di spedirla rispedisci quella precedente col colore dello sfondo
in questo modo aggiorni solo il/i numero/i che cambiano

La sovrascrittura è una schifezza, non cancella mai quello sotto, devi prima cancellare e poi scrivere altrimenti non ti elimina i pixel non voluti...
Credo che adotterò la soluzione di elrospo, scrivendo solo quando i valori cambiano anche perchè ho problemi ti timing, nel senso che ora che ho introdotto il display Oled con la sua libreria mi trovo un loop di 200mS e alcune cose che dovevo fare con i millis sotto i 200mS li perdo....
Grazie

SE, e solo SE non ti serve fare "grafica", ma SOLO testo, allora invece di usare i mattoni di Adafruit puoi usare una libreria molto più snella, veloce e leggera e ben documentata ... SSD1306Ascii (... la installi dal Library Manager dell'IDE dato che è tra quelle riconosciute).

Io ho un problema simile at tuo e, ad ogni aggiornamento, faccio il "clear(x1, y1, x2, y2)" della SOLA regione dove sono i valori e poi li riscrivo nella loro posizione.

Guglielmo

P.S.: ha a corredo una bella collezione di font e, se NON usi lo "scolling" del display, puoi disabilitare nel .h la parte che lo gestisce con risparmio di memoria. Io la uso su ATtiny85 :wink:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.