Përmbajtje:
- Hapi 1: Biblioteka
- Hapi 2: Wemos Lolin ESP32 OLED
- Hapi 3: Shembull
- Hapi 4: Asambleja
- Hapi 5: Kodi
- Hapi 6: Disa funksione të tjera interesante
Video: ESP32 Me Ekran Oled - Shiriti i Progresit: 6 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
ESP32 për të cilin do të flasim sot është ai që tashmë vjen me Display Oled të integruar. Ky funksion e bën jetën tonë shumë më të lehtë, sepse mund të kemi një përshtypje në lidhje me vlerën e ndryshores që shfaqet. Ju as nuk duhet të shikoni një dritare të korrigjimit. Gjithashtu, mund të mblidhni përfaqësime dhe të vizatoni tabela të performancës, ndër të tjera. Për shkak të këtyre përfitimeve, unë e konsideroj këtë model një produkt fantastik, dhe ne do ta programojmë atë sot duke përdorur Arduino IDE.
Pra, në këtë video ne do të programojmë një shirit përparimi. Importantshtë e rëndësishme të mbani mend se nëse ekrani juaj nuk e ka ekranin të ndezur, është e mundur ta blini veçmas. Gjithashtu, nëse nuk keni programuar kurrë një ESP32, ju sugjeroj të shikoni këtë video: HYRJE VIDEO P ER ESP32, e cila trajton temën në më shumë detaje.
Hapi 1: Biblioteka
Për të përdorur ekranin me ngjyrë, duhet të konfigurojmë bibliotekën në Arduino IDE. Për ta bërë këtë, shkarkoni bibliotekën përmes lidhjes.
Zbërtheni skedarin dhe ngjiteni në dosjen e bibliotekave të Arduino IDE.
C:/ProgramFiles (x86)/Arduino/biblioteka
Hapi 2: Wemos Lolin ESP32 OLED
Wemos Lolin është emri i këtij ESP. Në imazh, pjesa e zezë është ekrani dhe, pranë pajisjes, ne shfaqim të gjithë pinout. Siç tregohet, ka disa IO që na lejojnë të ndezim dhe fikim elementë të ndryshëm. Përveç kësaj, ky model ka brezin e fundit WiFi dhe Bluetooth.
Hapi 3: Shembull
Në video, ju mund të shihni projektin tonë të gatshëm dhe si të përdorni ekranin e lyer për të shfaqur një shirit përparimi të kontrolluar nga një potenciometër.
Hapi 4: Asambleja
Për montimin tonë kam përdorur një potenciometër prej 10k, dhe kam ndezur GPIO25 të kursorit. Ne gjithashtu kemi 3v3 dhe GND, siç mund ta shihni në figurën më poshtë. Fuqia do të vijë nga vetë USB.
Hapi 5: Kodi
Së pari, ne shtojmë bibliotekën "SSD1306.h". Me këtë, ne do të hyjmë në ekranin e lyer. Pas kësaj, ne krijojmë një objekt shfaqjeje të llojit SSD1306 që do të jetë përgjegjës për kontrollin e përmbajtjes së treguar në ekranin e lyer.
#include "SSD1306.h" // alias for #include "SSD1306Wire.h" // objekto controlador do display in led /* 0x3c: um um identificador único para comunicação do display pino 5 e 4 são os de comunicação (SDA, SDC) */ Ekran SSD1306 (0x3c, 5, 4); // pino que ligamos o potenciometro #define PINO_POTENCIOMETRO 25 // përdorim për fazën e kontaminimit të porcentagem int contador;
Konfigurimi
Në funksionin setup (), ne do të inicializojmë objektin tonë të shfaqjes në mënyrë që të mund të kontrollojmë atë që do të shfaqet. Përmes këtij objekti, ne gjithashtu do të konfigurojmë burimin e shkrimit për tekstet që do të shfaqen. Dhe, së fundi, ne vendosëm kunjin (konkretisht, kunjin ku kemi kthyer potenciometrin) në INPUT për të lexuar vlerën.
void setup () {Serial.begin (115200); Serial.println (); Serial.println (); // Inicializa ose objeto que controlará o que será exibido na tela screen.init (); // gira o ekran 180º (deixa de ponta cabeça) // display.flipScreenVertical (); // konfiguroni një bazë të eskritës "ArialMT_Plain_10" screen.setFont (ArialMT_Plain_10); // konfigurimi i pino para fazer a leitura do potenciômetro. pinMode (PINO_POTENCIOMETRO, HYRJE); }
Lak
Në funksionin loop (), ne do të lexojmë vlerën aktuale të potenciometrit. Ne mund të vërejmë se ne po përdorim funksionin "hartë" menjëherë pas leximit të vlerës, sepse vlera e lexuar është shumë e lartë për t'u vendosur në një shirit përparimi, kështu që ne do ta hartojmë vlerën që të jetë brenda intervalit nga 0 në 100.
void loop () {// leitura do valor do potenciometro int valor = analogRead (PINO_POTENCIOMETRO); //Serial.println (vlera); // mapeando o valor do potenciometro para o valor da barra de progresso // potenciometro faz a leitura do valor no intervalo de 0 a 4095 // a barra de progresso espera um valor entre 0 e 100 contador = hartë (trimëri, 0, 4095, 0, 100); // limpa todo o display, apaga o contúdo da tela screen.clear (); // ++ sportel; // kundër> 100? counter = 0: counter = counter; // desenha një bar përparimi drawProgressBar (); // exibe na tela o que foi configurado até então. ekran.shfaq (); vonesa (10); }
Në funksionin "drawProgress ()", ne do të përdorim vlerën e lexuar nga potenciometri që ruhet në ndryshoren "percProgress" për ta vendosur në shiritin e përparimit. Ne gjithashtu do të vendosim një tekst pak mbi shiritin e progresit, duke treguar përqindjen aktuale.
// função para desenhar një progres bar pa shfaqje të shmangshme drawProgressBar () {Serial.print (">>"); Serial.println (contador); // desenha një shirit përparimi / * * drawProgressBar (x, y, gjerësia, lartësia, vlera); parametros (p): p1: x koordinatat X pa plan kartesiano p2: y koordinatat Y pa plan kartesiano p3: gjerësia e komplimentit të barra de progresso p4: lartësia altura da barra de progresso p5: vlera valor que a barra de progresso deve suppir */ screen.drawProgressBar (10, 32, 100, 10, contador); // konfigurimi i alinhamento -s për të bërë tekstin escrito // megjithatë mund të gjeni alinharemos ose tekst në qendër të ekranit.setTextAlignment (TEXT_ALIGN_CENTER); // escreve o texto de porcentagem / * * drawString (x, y, tekst); parametros (p): p1: x koordinata X pa plan kartesiano p2: y koordinatë Y pa plan kartesiano p3: tekst teksti që shërben për ekzibido */ screen.drawString (64, 15, String (contador) + "%"); // se o contador është zero, ruaj një varg "valor mínimo" nëse (contador == 0) {screen.drawString (64, 45, "Valor mínimo"); } // se o contador está em 100, ruaj një varg "valor máximo" tjetër nëse (contador == 100) {screen.drawString (64, 45, "Valor máximo"); }}
Hapi 6: Disa funksione të tjera interesante
Shfaq
// e vendos ekranin me kokë poshtë
void flipScreenVertical ();
Vizatim
// tërheq një piksel të vetëm nga ekrani
void setPixel (int16_t x, int16_t y);
// vizatoni një vijë
void drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1);
// vizatoni një drejtkëndësh
void drawRect (int16_t x, int16_t y, int16_t gjerësi, int16_t lartësi);
// vizatoni një rreth
void drawCircle (int16_t x, int16_t y, rreze int16_t);
// plotësoni një rreth
void fillCircle (int16_t x, int16_t y, rreze int16_t);
// vizatoni një vijë horizontale
void drawHorizontalLine (int16_t x, int16_t y, int16_t gjatësi);
// vizatoni një vijë vertikale
void drawVerticalLine (int16_t x, int16_t y, int16_t gjatësi);
Teksti
// vendos rreshtimin e tekstit për tu shkruar
// TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER_BOTH
void setTextAlignment (OLEDDISPLAY_TEXT_ALIGNMENT tekstAlignment);
Recommended:
Ekran me prekje Macintosh - Mac klasik me një mini iPad për ekran: 5 hapa (me fotografi)
Ekran me prekje Macintosh | Mac klasik me një IPad Mini për ekranin: Ky është përditësimi im dhe modeli i rishikuar se si të zëvendësoni ekranin e një Macintosh të cilësisë së mirë me një iPad mini. Kjo është e 6 -ta nga këto që kam bërë gjatë viteve dhe jam shumë e lumtur me evolucionin dhe modelin e këtij! Kthehu në vitin 2013 kur bëra
Gjurmuesi GPS ESP32 Me një ekran OLED: 7 hapa
Gjurmuesi GPS ESP32 Me një ekran OLED: Ky është një gjurmues GPS i cili shfaq të gjitha të dhënat e pozicionit në ekranin OLED. Një buton ndihmon përdoruesin të ndërveprojë me një UI në OLED. Hej, çfarë ka, djema? Akarsh këtu nga CETech. Kodi ofron një program të drejtuar nga menuja duke përdorur butonin në bord,
Ekran TTGO (me ngjyra) Me Mikropiton (T-ekran T-T): 6 hapa
Ekran TTGO (me ngjyra) Me Micropython (TTGO T-ekran): TTGO T-Display është një tabelë e bazuar në ESP32 që përfshin një ekran me ngjyra 1.14 inç. Bordi mund të blihet për një çmim prej më pak se 7 $ (përfshirë transportin, çmimi i parë në banggood). Ky është një çmim i jashtëzakonshëm për një ESP32 përfshirë një ekran.
Drejtimi pa një ekran / ekran (pa kokë) në Raspberry Pi ose Kompjuterë të tjerë të bazuar në Linux / unix: 6 hapa
Drejtimi pa një ekran / ekran (pa kokë) në Raspberry Pi ose Kompjuterë të tjerë të bazuar në Linux / unix: Kur shumica e njerëzve blejnë një PI Raspberry, ata mendojnë se kanë nevojë për një ekran kompjuteri. Mos i humbni paratë tuaja në monitorët dhe tastierat e panevojshme të kompjuterit. Mos e humbni kohën tuaj duke lëvizur tastierë dhe monitorë midis kompjuterëve. Mos e lidhni televizorin kur nuk është
Hyrje ESP32 Lora OLED Ekran: 8 hapa
Hyrje ESP32 Lora OLED Display: Kjo është një video tjetër në lidhje me Hyrjen në ESP32 LoRa. Këtë herë, ne do të flasim në mënyrë specifike për një ekran grafik (me 128x64 pixel). Ne do të përdorim bibliotekën SSD1306 për të shfaqur informacion në këtë ekran OLED dhe për të paraqitur një shembull të