Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-23 15:09
ESP32, o katerem bomo danes govorili, je tisti, ki že prihaja z vgrajenim zaslonom Oled. Ta funkcija nam olajša življenje, saj imamo lahko vtis glede vrednosti spremenljivke, ki se pojavi. Niti okna za odpravljanje napak vam ni treba pogledati. Med drugim lahko sestavite tudi predstavitve in narišete tabele uspešnosti. Zaradi teh prednosti se mi zdi ta model fantastičen izdelek, danes pa ga bomo programirali z uporabo Arduino IDE.
Tako bomo v tem videoposnetku programirali vrstico napredka. Pomembno si je zapomniti, da ga je mogoče kupiti ločeno, če vaš ESP32 nima oljenega zaslona. Če še nikoli niste programirali ESP32, predlagam, da si ogledate ta video: VIDEO UVOD V ESP32, ki podrobneje obravnava temo.
1. korak: Knjižnica
Za uporabo olednega zaslona moramo konfigurirati knjižnico v Arduino IDE. Če želite to narediti, prenesite knjižnico prek povezave.
Razpakirajte datoteko in jo prilepite v mapo knjižnice Arduino IDE.
C:/ProgramFiles (x86)/Arduino/knjižnice
2. korak: Wemos Lolin ESP32 OLED
Wemos Lolin je ime tega ESP. Na sliki je črni del zaslon in poleg naprave prikažemo celoten pinout. Kot je prikazano, obstaja več IO, ki nam omogočajo vklop in izklop različnih elementov. Poleg tega ima ta model najnovejšo generacijo WiFi in Bluetooth.
3. korak: Primer
V videoposnetku si lahko ogledate naš pripravljen projekt in kako z olednim zaslonom prikazati vrstico napredka, ki jo nadzira potenciometer.
4. korak: Montaža
Za našo montažo sem uporabil potenciometer 10k in vklopil kurzor GPIO25. Imamo tudi 3v3 in GND, kot lahko vidite na spodnji sliki. Napajanje bo prišlo iz samega USB -ja.
5. korak: Koda
Najprej dodamo knjižnico "SSD1306.h". S tem bomo dostopali do oled zaslona. Nato ustvarimo prikazovalni objekt tipa SSD1306, ki bo odgovoren za nadzor vsebine, prikazane na oljnem zaslonu.
#include "SSD1306.h" // vzdevek za #include "SSD1306Wire.h" // cilj kontrolnika za prikaz LED /* 0x3c: é um identifikator único para comunicação do display pino 5 e 4 são os de comunicação (SDA, SDC) */ Zaslon SSD1306 (0x3c, 5, 4); // pino que ligamos o potenciometro #define PINO_POTENCIOMETRO 25 // izkoristimo para fazer o contador de porcentagem int contador;
Nastaviti
V funkciji setup () bomo inicializirali naš prikazovalni objekt, da bomo lahko nadzirali, kaj bo prikazano. S tem predmetom bomo konfigurirali tudi vir pisanja za besedila, ki bodo prikazana. In na koncu nastavimo zatič (natančneje zatič, na katerem smo obrnili potenciometer) na INPUT, da prebere vrednost.
void setup () {Serial.begin (115200); Serial.println (); Serial.println (); // Inicializa o objeto que controlará o que será exibido na tela screen.init (); // prikaz 180º (deixa de ponta cabeça) // prikaz.flipScreenVertical (); // konfigurira zaslon fonte de escrita "ArialMT_Plain_10". setFont (ArialMT_Plain_10); // konfiguracija pino para fazer a leitura do potenciômetro. pinMode (PINO_POTENCIOMETRO, VHOD); }
Zanka
V funkciji loop () bomo prebrali trenutno vrednost potenciometra. Opazimo lahko, da funkcijo "map" uporabljamo kmalu po branju vrednosti, ker je odčitana vrednost previsoka, da bi jo vnesli v vrstico napredka, zato bomo vrednost preslikali v območje od 0 do 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 (); // ++ števec; // števec> 100? števec = 0: števec = števec; // desenha vrstica napredka drawProgressBar (); // exibe na tela o que foi configurado até então. screen.display (); zamuda (10); }
V funkciji "drawProgress ()" bomo za nastavitev v vrstici napredka uporabili vrednost, prebrano s potenciometra, ki je shranjena v spremenljivki "percProgress". Prav tako bomo postavili besedilo tik nad vrstico napredka in navedli trenutni odstotek.
// função para desenhar vrstica napredka brez displayvoid drawProgressBar () {Serial.print (">>"); Serial.println (kontador); // desenha bar napredka / * * drawProgressBar (x, y, širina, višina, vrednost); parametros (p): p1: x coordenada X no plano cartesiano p2: y coordenada Y no plano cartesiano p3: comprimento width 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, kontador); // konfiguracija 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, besedilo); parametros (p): p1: x coordenada X brez 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, escreve niz "valor mínimo" if (contador == 0) {screen.drawString (64, 45, "Valor mínimo"); } // se o contador está em 100, escreve niz "valor máximo" else if (contador == 100) {screen.drawString (64, 45, "Valor máximo"); }}
6. korak: Nekaj drugih zanimivih funkcij
Zaslon
// postavi zaslon na glavo
void flipScreenVertical ();
Risba
// nariše en sam piksel z zaslona
void setPixel (int16_t x, int16_t y);
// potegnemo črto
void drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1);
// narišemo pravokotnik
void drawRect (int16_t x, int16_t y, int16_t širina, int16_t višina);
// narišemo krog
void drawCircle (int16_t x, int16_t y, int16_t polmer);
// zapolni krog
void fillCircle (int16_t x, int16_t y, int16_t polmer);
// narišemo vodoravno črto
void drawHorizontalLine (int16_t x, int16_t y, int16_t dolžina);
// narišemo navpično črto
void drawVerticalLine (int16_t x, int16_t y, int16_t dolžina);
Besedilo
// nastavi poravnavo besedila
// TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER_BOTH
void setTextAlignment (OLEDDISPLAY_TEXT_ALIGNMENT textAlignment);
Priporočena:
Macintosh z zaslonom na dotik - Klasični Mac z zaslonom IPad Mini: 5 korakov (s slikami)
Macintosh z zaslonom na dotik | Klasični Mac z zaslonom IPad Mini: To je moja posodobljena in prenovljena zasnova, kako zamenjati zaslon starega Macintosha z iPad mini. To je že šesti od teh, ki sem jih naredil v preteklih letih in sem zelo zadovoljen z razvojem in oblikovanjem tega! Leta 2013, ko sem naredil
Enostaven zagon, hitrost in smer DC motorja s potenciometrom, zaslonom OLED in gumbi: 6 korakov
Enostaven zagon, hitrost in smer enosmernega motorja z uporabo potenciometra, zaslona OLED in gumbov: V tej vadnici se bomo naučili uporabljati gonilnik L298N DC MOTOR CONTROL in potenciometer za nadzor nemotenega zagona, hitrosti in smeri enosmernega motorja z dvema gumboma in Prikažite vrednost potenciometra na zaslonu OLED. Oglejte si predstavitveni video
GPS sledilnik ESP32 z zaslonom OLED: 7 korakov
ESP32 GPS sledilnik z zaslonom OLED: To je sledilnik GPS, ki prikazuje vse podatke o položaju na zaslonu OLED. Gumb pomaga uporabniku pri interakciji z uporabniškim vmesnikom na OLED -ju. Hej, kaj je, fantje? Akarsh tukaj iz CETech -a. Koda ponuja menijski program s pomočjo vgrajenega gumba,
Svetilka napredka pri vadbi polmaratona: 7 korakov
Svetilka napredka pri usposabljanju za polmaraton: Ta navodila vam bodo pokazala, kako nastaviti sprožilce in narediti svetilko, ki zasveti in prihrani denar, ko izpolnite merila v razporedu usposabljanja Hal Higdon za vmesni polmaraton. Če želite to narediti, boste najprej želeli zbrati naslednji material
Kako narediti uro v realnem času z zaslonom Arduino in TFT - Arduino Mega RTC s 3,5 -palčnim zaslonom TFT: 4 koraki
Kako narediti uro v realnem času z zaslonom Arduino in TFT | Arduino Mega RTC s 3,5-palčnim zaslonom TFT: Obiščite moj kanal Youtube. Uvod:- V tem prispevku bom naredil »uro v realnem času« s 3,5-palčnim TFT LCD na dotik, Arduino Mega 2560 in DS3231 modul RTC… .Preden začnete… preverite videoposnetek z mojega kanala YouTube .. Opomba:- Če uporabljate Arduin