Turinys:
- 1 žingsnis: biblioteka
- 2 žingsnis: „Wemos Lolin ESP32 OLED“
- 3 žingsnis: pavyzdys
- 4 žingsnis: Surinkimas
- 5 žingsnis: kodas
- 6 žingsnis: kai kurios kitos įdomios funkcijos
Video: ESP32 su ekranu „Oled“- pažangos juosta: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
ESP32, apie kurį šiandien kalbėsime, jau yra su integruotu „Display Oled“. Ši funkcija labai palengvina mūsų gyvenimą, nes galime susidaryti įspūdį apie rodomo kintamojo vertę. Jums net nereikia žiūrėti į derinimo langą. Be to, be kitų dalykų, galite surinkti vaizdus ir piešti našumo diagramas. Dėl šių privalumų aš laikau šį modelį fantastišku produktu ir šiandien jį programuosime naudodami „Arduino IDE“.
Taigi, šiame vaizdo įraše užprogramuosime progreso juostą. Svarbu prisiminti, kad jei jūsų ESP32 neturi ekrano, galite jį nusipirkti atskirai. Be to, jei niekada neužprogramavote ESP32, siūlau pažiūrėti šį vaizdo įrašą: VIDEO ĮVADAS Į ESP32, kuriame išsamiau aptariama ši tema.
1 žingsnis: biblioteka
Norėdami naudoti „OLED“ekraną, turime sukonfigūruoti biblioteką „Arduino IDE“. Norėdami tai padaryti, atsisiųskite biblioteką per nuorodą.
Išpakuokite failą ir įklijuokite jį į „Arduino IDE“bibliotekų aplanką.
C:/ProgramFiles (x86)/Arduino/bibliotekos
2 žingsnis: „Wemos Lolin ESP32 OLED“
Wemos Lolin yra šios ESP pavadinimas. Paveikslėlyje juoda dalis yra ekranas, o šalia įrenginio - visa pinout. Kaip parodyta, yra keletas IO, leidžiančių įjungti ir išjungti įvairius elementus. Be to, šis modelis turi naujausios kartos „WiFi“ir „Bluetooth“.
3 žingsnis: pavyzdys
Vaizdo įraše galite pamatyti mūsų paruoštą projektą ir tai, kaip naudojant „OLED“ekraną rodyti progreso juostą, valdomą potenciometru.
4 žingsnis: Surinkimas
Mūsų surinkimui naudojau 10 k potenciometrą ir įjungiau žymeklio GPIO25. Mes taip pat turime 3v3 ir GND, kaip matote paveikslėlyje žemiau. Maitinimas ateis iš paties USB.
5 žingsnis: kodas
Pirmiausia pridedame biblioteką „SSD1306.h“. Tokiu būdu mes pateksime į esamą ekraną. Po to sukuriame SSD1306 tipo rodymo objektą, kuris bus atsakingas už „OLED“ekrane rodomo turinio valdymą.
#include "SSD1306.h" // slapyvardis #include "SSD1306Wire.h" // objeto controlador do display de led /* 0x3c: é um identifador único para comunicação do display pino 5 e 4 são os de comunicação (SDA, SDC) */ SSD1306 ekranas (0x3c, 5, 4); // pino que ligamos o potenometro #define PINO_POTENCIOMETRO 25 // utilizado para fazer o contador de porcentagem int contador;
Sąranka
Funkcijoje setup () inicijuosime rodymo objektą, kad galėtume valdyti, kas bus rodoma. Per šį objektą taip pat sukonfigūruosime teksto, kuris bus rodomas, rašymo šaltinį. Ir galiausiai nustatome kaištį (konkrečiai, kaištį, kuriame pasukome potenciometrą) į ĮVESTI, kad nuskaitytumėte vertę.
void setup () {Serial.begin (115200); Serial.println (); Serial.println (); // Inicializa o objeto que controlará o que será exibido na tela screen.init (); // gira o display 180º (deixa de ponta cabeça) // display.flipScreenVertically (); // konfigūruoti „ArialMT_Plain_10“ekraną. setFont (ArialMT_Plain_10); // configura o pino para fazer a leitura do potenciômetro. pinMode (PINO_POTENCIOMETRO, INPUT); }
Kilpa
Funkcijoje loop () mes perskaitysime esamą potenciometro reikšmę. Galime pastebėti, kad netrukus perskaitę vertę naudojame „žemėlapio“funkciją, nes skaitymo vertė yra per didelė, kad būtų galima įrašyti eigos juostą, todėl susiejame vertę, kuri yra nuo 0 iki 100.
void loop () {// leitura do valor do potenometro int valor = analogRead (PINO_POTENCIOMETRO); //Serial.println(valor); // mapeando o valor do potenciometro para o valor da barra de progressso // potenometro faz a leitura do valor no intervalo de 0 a 4095 // a barra de progresso espera um valor entre 0 e 100 contador = žemėlapis (valor, 0, 4095), 0, 100); // limpa todo o display, apaga o contúdo da tela screen.clear (); // ++ skaitiklis; // skaitiklis> 100? skaitiklis = 0: skaitiklis = skaitiklis; // desenha a progress bar drawProgressBar (); // exibe na tela o que foi configurado até então. ekranas.display (); vėlavimas (10); }
Funkcijoje „drawProgress ()“naudosime iš potenciometro nuskaitytą reikšmę, kuri išsaugoma kintamajame „percProgress“, kad nustatytume eigos juostą. Mes taip pat įdėsime tekstą tiesiai virš pažangos juostos, nurodydami dabartinį procentą.
// função para desenhar a progress bar no displayvoid drawProgressBar () {Serial.print (">>"); Serial.println (kontadorė); // desenha progreso juosta / * * drawProgressBar (x, y, plotis, aukštis, vertė); parametrai (p): p1: x coordenada X no plano cartesiano p2: y coordenada Y no plano cartesiano p3: pločio apskaičiavimas plius p4: aukštis al bar da de progresso p5: vertė valor que a barra de progressso deve assumir */ screen.drawProgressBar (10, 32, 100, 10, kontador); // configura o alinhamento do texto que será escrito // nesse caso alinharemos o texto ao centro screen.setTextAlignment (TEXT_ALIGN_CENTER); // escreve o texto de porcentagem / * * drawString (x, y, text); parametrai (p): p1: x coordenada X no plano cartesiano p2: y coordenada Y no plano cartesiano p3: string texto que será exibido */ screen.drawString (64, 15, String (contador) + "%"); // se o contador está em zero, suveskite eilutę "valor mínimo", jei (contador == 0) {screen.drawString (64, 45, "Valor mínimo"); } // se o contador está em 100, ištraukite eilutę "valor máximo" else if (contador == 100) {screen.drawString (64, 45, "Valor máximo"); }}
6 žingsnis: kai kurios kitos įdomios funkcijos
Ekranas
// uždeda ekraną aukštyn kojom
void flipScreenVertically ();
Piešimas
// piešia vieną pikselį iš ekrano
void setPixel (int16_t x, int16_t y);
// nubrėžti liniją
void drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1);
// piešti stačiakampį
void drawRect (int16_t x, int16_t y, int16_t plotis, int16_t aukštis);
// nupiešk apskritimą
void drawCircle (int16_t x, int16_t y, int16_t spindulys);
// užpildyti ratą
void fillCircle (int16_t x, int16_t y, int16_t spindulys);
// nubrėžkite horizontalią liniją
void drawHorizontalLine (int16_t x, int16_t y, int16_t ilgis);
// nubrėžkite vertikalią liniją
void drawVerticalLine (int16_t x, int16_t y, int16_t ilgis);
Tekstas
// nustato teksto lygiavimą, kuris turi būti parašytas
// TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER_BOTH
void setTextAlignment (OLEDDISPLAY_TEXT_ALIGNMENT textAlignment);
Rekomenduojamas:
Kaip padaryti analoginį laikrodį ir skaitmeninį laikrodį su LED juosta naudojant „Arduino“: 3 žingsniai
Kaip pasigaminti analoginį laikrodį ir skaitmeninį laikrodį su LED juosta naudojant „Arduino“: šiandien mes pagaminsime analoginį laikrodį & Skaitmeninis laikrodis su „Led Strip“ir „MAX7219 Dot“modulis su „Arduino“. Jis ištaisys laiką pagal vietinę laiko juostą. Analoginis laikrodis gali naudoti ilgesnę LED juostą, todėl jį galima pakabinti ant sienos, kad jis taptų meno kūriniu
ESP32 GPS sekimo priemonė su OLED ekranu: 7 žingsniai
ESP32 GPS sekimo įrenginys su OLED ekranu: Tai GPS sekiklis, rodantis visus padėties duomenis OLED ekrane. Mygtukas padeda vartotojui sąveikauti su vartotojo sąsaja OLED. Ei, kas vyksta, vaikinai? Akarsh čia iš „CETech“. Kodas siūlo meniu valdomą programą, naudojančią borto mygtuką
LED garsumo juosta: 9 žingsniai (su paveikslėliais)
Šviesos diodų garsumo juosta: mano dirbtuvės yra per daug švelnios. Nepaisant lakuotų, 80-ųjų metų medžio lentų, dengiančių mano sienas, joms trūksta ir spalvų, ir, žinoma: šviesos diodų. Lygiai taip pat dažnai groju muziką, kai lituoju elektroniką. Tai privertė mane susimąstyti, ar galėčiau derinti muziką ir šviesos diodus
Sukurkite mini konvejerio juostą kaip slinkusią mašiną: 7 žingsniai (su nuotraukomis)
Sukurkite mini konvejerio juostą kaip slankią mašiną: Šiame mažame projekte naudojamas geltonos pavaros variklis, skirtas 1 pėdų ilgio konvejerio, pagaminto iš PVC vamzdžio, 1 x 4 pušies medienos, ir menininko drobės (diržui) maitinti. Prieš pradėdamas veikti, perėjau keletą versijų, padariau paprastą ir akivaizdžią klaidą
Kaip pasidaryti LED juostą (vario juosta): 4 žingsniai (su nuotraukomis)
Kaip padaryti „Led Strip“(vario juostelę): šioje trumpoje pamokoje aš jums, vaikinai, parodysiu, kaip padaryti paprastą LED juostą naudojant vario juostą ir kai kuriuos smd ledus su šiek tiek litavimo darbų. Šis projektas yra greitas ir gali būti naudingas. Kadangi ši šviesos diodų juostelė veikia su labai dažnai naudojamu 3,7 V maitinimo šaltiniu