Indholdsfortegnelse:
- Trin 1: Bibliotek
- Trin 2: Wemos Lolin ESP32 OLED
- Trin 3: Eksempel
- Trin 4: Montering
- Trin 5: Kode
- Trin 6: Nogle andre interessante funktioner
Video: ESP32 With Display Oled - Statuslinje: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Den ESP32, vi skal tale om i dag, er en, der allerede leveres med Display Oled indbygget. Denne funktion gør vores liv meget lettere, fordi vi kan have et indtryk af værdien af den variabel, der vises. Du behøver ikke engang se på et fejlfindingsvindue. Du kan også sammensætte repræsentationer og tegne præstationsdiagrammer, blandt andet. På grund af disse fordele betragter jeg denne model som et fantastisk produkt, og vi programmerer den i dag ved hjælp af Arduino IDE.
Så i denne video programmerer vi en statuslinje. Det er vigtigt at huske, at hvis din ESP32 ikke har displayet oled, er det muligt at købe det separat. Hvis du aldrig har programmeret en ESP32, foreslår jeg også, at du ser denne video: VIDEO INTRODUCTION TO ESP32, der omhandler emnet mere detaljeret.
Trin 1: Bibliotek
For at bruge oled -displayet skal vi konfigurere biblioteket i Arduino IDE. For at gøre dette skal du downloade biblioteket via linket.
Pak filen ud, og indsæt den i biblioteksmappen i Arduino IDE.
C:/ProgramFiles (x86)/Arduino/biblioteker
Trin 2: Wemos Lolin ESP32 OLED
Wemos Lolin er navnet på denne ESP. På billedet er den sorte del displayet, og ved siden af enheden viser vi hele pinout. Som vist er der flere IO'er, der giver os mulighed for at tænde og slukke forskellige elementer. Derudover har denne model den nyeste generation af WiFi og Bluetooth.
Trin 3: Eksempel
I videoen kan du se vores klare projekt, og hvordan du bruger det oled -display til at vise en statuslinje, der styres af et potentiometer.
Trin 4: Montering
Til vores samling brugte jeg et potentiometer på 10k, og jeg tændte markørens GPIO25. Vi har også 3v3 og GND, som du kan se i figuren herunder. Strømmen kommer fra selve USB'en.
Trin 5: Kode
Først tilføjer vi biblioteket "SSD1306.h". Med dette får vi adgang til oled -displayet. Derefter opretter vi et visningsobjekt af typen SSD1306, der vil være ansvarlig for at kontrollere indholdet, der vises på det oled -display.
#include "SSD1306.h" // alias for #include "SSD1306Wire.h" // objeto controlador do display de led /* 0x3c: é um identifierador único para comunicação do display pino 5 and 4 são os de comunicação (SDA, SDC) */ SSD1306 skærm (0x3c, 5, 4); // pino que ligamos o potenciometro #define PINO_POTENCIOMETRO 25 // utilizado para fazer o contador de porcentagem int contador;
Opsætning
I funktionen setup () vil vi initialisere vores displayobjekt, så vi kan styre, hvad der skal vises. Gennem dette objekt vil vi også konfigurere skrivekilden til de tekster, der skal vises. Og endelig satte vi stiften (specifikt stiften, hvor vi drejede potentiometeret) til INPUT for at aflæse værdien.
ugyldig opsætning () {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 (); // konfigurer en fonte de escrita "ArialMT_Plain_10" screen.setFont (ArialMT_Plain_10); // konfiguration o pino para fazer a leitura do potenciômetro. pinMode (PINO_POTENCIOMETRO, INPUT); }
Sløjfe
I loop () -funktionen læser vi den aktuelle potentiometerværdi. Vi kan bemærke, at vi bruger "kort" -funktionen kort efter aflæsning af værdien, fordi læseværdien er for høj til at indsætte en statuslinje, så vi kortlægger værdien til at være inden for området 0 til 100.
void loop () {// leitura do valor do potenciometro int valor = analogRead (PINO_POTENCIOMETRO); //Serial.println(valor); // 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 = map (valor, 0, 4095, 0, 100); // limpa todo o display, apaga o contúdo da tela screen.clear (); // ++ tæller; // tæller> 100? tæller = 0: tæller = tæller; // desenha en statuslinje drawProgressBar (); // exibe na tela o que foi configurado até então. skærm. display (); forsinkelse (10); }
I funktionen "drawProgress ()" vil vi bruge værdien læst fra potentiometeret, der er gemt i variablen "percProgress" til at indstille i statuslinjen. Vi vil også placere en tekst lige over statuslinjen, der angiver den aktuelle procentdel.
// função para desenhar a progress bar no displayvoid drawProgressBar () {Serial.print (">>"); Serial.println (contador); // desenha en statuslinje / * * drawProgressBar (x, y, bredde, højde, værdi); parametros (p): p1: x coordenada X no plano cartesiano p2: y coordenada Y no plano cartesiano p3: width comprimento da barra de progresso p4: height altura da barra de progresso p5: value valor que a barra de progresso deve assumir */ screen.drawProgressBar (10, 32, 100, 10, contador); // konfiguration 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, tekst); parametros (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, opret en streng "valor mínimo" if (contador == 0) {screen.drawString (64, 45, "Valor mínimo"); } // se o contador está em 100, opret en streng "valor máximo" ellers hvis (contador == 100) {screen.drawString (64, 45, "Valor máximo"); }}
Trin 6: Nogle andre interessante funktioner
Skærm
// sætter displayet på hovedet
void flipScreenVertically ();
Tegning
// tegner en enkelt pixel fra skærmen
void setPixel (int16_t x, int16_t y);
// tegne en streg
void drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1);
// tegne et rektangel
void drawRect (int16_t x, int16_t y, int16_t bredde, int16_t højde);
// tegne en cirkel
void drawCircle (int16_t x, int16_t y, int16_t radius);
// udfyld en cirkel
void fillCircle (int16_t x, int16_t y, int16_t radius);
// tegne en vandret linje
void drawHorizontalLine (int16_t x, int16_t y, int16_t length);
// tegne en lodret streg
void drawVerticalLine (int16_t x, int16_t y, int16_t længde);
Tekst
// indstiller den tekstjustering, der skal skrives
// TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER_BOTH
void setTextAlignment (OLEDDISPLAY_TEXT_ALIGNMENT textAlignment);
Anbefalede:
ESP32 GPS -tracker med et OLED -display: 7 trin
ESP32 GPS -tracker med et OLED -display: Dette er en GPS -tracker, der viser alle positionsdata på OLED -displayet. En knap hjælper brugeren til at interagere med et brugergrænseflade på OLED. Hey, hvad sker der, fyre? Akarsh her fra CETech.Koden tilbyder et menudrevet program ved hjælp af knappen ombord
Usare Un Display Grande a 4 Cifre 8886 Display Con Wemos ESP8266 Arduino NodeMCU: 6 trin
Usare Un Display Grande a 4 Cifre 8886 Display Con Wemos ESP8266 Arduino NodeMCU: Questo progetto is one semplice esempio che mostra come collegare and display del tipo 8886 -Display e, per comodità nostra, and Wemos D1 - ma potrebbe essere un Arduino o un NodeMCU o qualsiasi altro microcontrollore che state usando per un progetto.Esi
TTGO (farve) Display Med Micropython (TTGO T-display): 6 trin
TTGO (farve) Display Med Micropython (TTGO T-display): TTGO T-Display er et bord baseret på ESP32, der indeholder et 1,14 tommer farvedisplay. Brættet kan købes for en præmie på mindre end 7 $ (inklusive forsendelse, præmie set på banggood). Det er en utrolig præmie for en ESP32 inklusive et display. T
Sådan bruges trinmotor som roterende encoder og OLED -display til trin: 6 trin
Sådan bruges trinmotor som roterende encoder og OLED -skærm til trin: I denne vejledning lærer vi, hvordan du sporer trinmotortrinene på OLED -skærmen. Se en demonstrationsvideo. Kredit for den originale vejledning går til youtube -bruger " sky4fly "
Introduktion ESP32 Lora OLED Display: 8 trin
Introduktion ESP32 Lora OLED Display: Dette er endnu en video om introduktionen til ESP32 LoRa. Denne gang taler vi specifikt om et grafisk display (på 128x64 pixels). Vi vil bruge SSD1306 -biblioteket til at vise oplysninger om denne OLED -skærm og præsentere et eksempel på