Sari la conținut
ELFORUM - Forumul electronistilor

ESP8266 cu OLED1,3" - SH1106


Vizitator

Postări Recomandate

  • Răspunsuri 24
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Top autori în acest subiect

Imagini postate

Salut,

 

Frumos. Pentru stergerea doar a unei anumite zone am folosit o metoda pe care a zis-o si thunderer2018:

 -afisam valoarea de interes cu o anumita culoare, e.g. verde, pe un fundal de culoare neagra (poate fi oricare), iar pentru stergere o mai afisam odata la finalul buclei dupa un mic delay doar ca ii schimbam culoarea in cea a fundalului. si astfel se relua bucla din nou cu o noua valoare. 

 

Sper ca s-a inteles ce am vrut sa spun.

 

Bafta,

Vlad

Link spre comentariu

Iata codul pentru grafica prezentata in filmulet

void Graphic(void) {
  display.clear();
  display.setColor(WHITE);
  display.drawXbm(0, 0, 128, 42, img_esp8266);
  display.display();
  delay(5000);

  display.clear();
  display.setColor(WHITE);
  display.drawXbm(0, 0, 128, 64, menu_01);
  display.drawXbm(4, 18, 24, 42, h2o_0);
  display.drawXbm(50, 23, 15, 14, pump_1);
  display.drawXbm(98, 23, 15, 14, pump_2);
  display.drawXbm(47, 43, 21, 17, pump_off);
  display.drawXbm(94, 43, 21, 17, pump_off);
  display.display();
  delay(3000);
  display.setColor(BLACK);
  display.drawXbm(4, 18, 24, 42, h2o_0);
  display.setColor(WHITE);
  display.drawXbm(4, 18, 24, 42, h2o_ok);
  display.display();
  delay(1500);

  //=================================================================
  for ( int i = 0; i < 5; i++) {
    display.setColor(BLACK);
    display.drawXbm(50, 23, 15, 14, pump_1);
    display.display();
    delay(200);
    display.setColor(WHITE);
    display.drawXbm(50, 23, 15, 14, pump_1);
    display.display();
    delay(200);
  }

  display.setColor(BLACK);
  display.drawXbm(47, 43, 15, 14, pump_off);
  display.display();

  for (int i = 0; i < 10; i++) {
    display.setColor(BLACK);
    display.drawXbm(47, 43, 21, 17, pump_04);
    display.setColor(WHITE);
    display.drawXbm(47, 43, 21, 17, pump_01);
    display.display();
    delay(120);
    display.setColor(BLACK);
    display.drawXbm(47, 43, 21, 17, pump_01);
    display.setColor(WHITE);
    display.drawXbm(47, 43, 21, 17, pump_02);
    display.display();
    delay(120);
    display.setColor(BLACK);
    display.drawXbm(47, 43, 21, 17, pump_02);
    display.setColor(WHITE);
    display.drawXbm(47, 43, 21, 17, pump_03);
    display.display();
    delay(120);
    display.setColor(BLACK);
    display.drawXbm(47, 43, 21, 17, pump_03);
    display.setColor(WHITE);
    display.drawXbm(47, 43, 21, 17, pump_04);
    display.display();
    delay(120);
  }

  display.setColor(BLACK);
  display.drawXbm(47, 43, 21, 17, pump_04);
  display.setColor(WHITE);
  display.drawXbm(47, 43, 21, 17, pump_off);
  display.display();
  delay(2000);

  //=================================================================
  for ( int i = 0; i < 5; i++) {
    display.setColor(BLACK);
    display.drawXbm(98, 23, 15, 14, pump_2);
    display.display();
    delay(200);
    display.setColor(WHITE);
    display.drawXbm(98, 23, 15, 14, pump_2);
    display.display();
    delay(200);
  }
  display.setColor(BLACK);
  display.drawXbm(94, 43, 21, 17, pump_off);
  display.display();

  for (int i = 0; i < 10; i++) {
    display.setColor(BLACK);
    display.drawXbm(94, 43, 21, 17, pump_04);
    display.setColor(WHITE);
    display.drawXbm(94, 43, 21, 17, pump_01);
    display.display();
    delay(120);
    display.setColor(BLACK);
    display.drawXbm(94, 43, 21, 17, pump_01);
    display.setColor(WHITE);
    display.drawXbm(94, 43, 21, 17, pump_02);
    display.display();
    delay(120);
    display.setColor(BLACK);
    display.drawXbm(94, 43, 21, 17, pump_02);
    display.setColor(WHITE);
    display.drawXbm(94, 43, 21, 17, pump_03);
    display.display();
    delay(120);
    display.setColor(BLACK);
    display.drawXbm(94, 43, 21, 17, pump_03);
    display.setColor(WHITE);
    display.drawXbm(94, 43, 21, 17, pump_04);
    display.display();
    delay(120);
  }

  display.setColor(BLACK);
  display.drawXbm(94, 43, 21, 17, pump_04);
  display.setColor(WHITE);
  display.drawXbm(94, 43, 21, 17, pump_off);
  display.display();
  //=================================================================
  delay(2000);

  display.clear();
  display.drawXbm(31,  0, 67, 64, ok_01);// LOGO
  display.display();
  delay(3000);
}

display.display();  este un update la informatiile pe care trebuie sa le afiseze display-ul. Fara aceasta functie, nu se afiseaza nimic. Ca sa introduc o imagine noua peste o alta imagine ca in acest exemplu

for (int i = 0; i < 10; i++) {
    display.setColor(BLACK);
    display.drawXbm(94, 43, 21, 17, pump_04);
    display.setColor(WHITE);
    display.drawXbm(94, 43, 21, 17, pump_01);
    display.display();
    delay(120);
    display.setColor(BLACK);
    display.drawXbm(94, 43, 21, 17, pump_01);
    display.setColor(WHITE);
    display.drawXbm(94, 43, 21, 17, pump_02);
    display.display();
    delay(120);
    display.setColor(BLACK);
    display.drawXbm(94, 43, 21, 17, pump_02);
    display.setColor(WHITE);
    display.drawXbm(94, 43, 21, 17, pump_03);
    display.display();
    delay(120);
    display.setColor(BLACK);
    display.drawXbm(94, 43, 21, 17, pump_03);
    display.setColor(WHITE);
    display.drawXbm(94, 43, 21, 17, pump_04);
    display.display();
    delay(120);
  }

am folosit "culoarea " display.setColor(BLACK);  "inchide" o pictograma, iar  display.setColor(WHITE);  "deschide" urmatoarea pictograma. Pentru ca se se intample aceasta, adica sa se si vada pe display, trebuie adaugata linia display.display();

 

P.S. Nu ma criticati daca se putea si altfel, folosind aritmetici complexe,... Nu sunt programator. Am invatat de pe google si de la unii dintre voi cate ceva, :) .

Link spre comentariu
  • 3 săptămâni mai târziu...

Alătură-te conversației

Poți posta acum și să te înregistrezi mai târziu. Dacă ai un cont, autentifică-te acum pentru a posta cu contul tău.
Notă: Postarea ta va necesita aprobare moderator înainte de a fi vizibilă.

Vizitator
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Răspunde la acest subiect...

×   Alipit ca text avansat.   Restituie formatare

  Doar 75 emoji sunt permise.

×   Linkul tău a fost încorporat automat.   Afișează ca link în schimb

×   Conținutul tău precedent a fost resetat.   Curăță editor

×   Nu poți lipi imagini direct. Încarcă sau inserează imagini din URL.




×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări