Cov txheej txheem:
- Kauj ruam 1: Tsev qiv ntawv
- Kauj Ruam 2: Wemos Lolin ESP32 OLED
- Kauj Ruam 3: Piv txwv
- Kauj ruam 4: Sib dhos
- Kauj ruam 5: Code
- Kauj Ruam 6: Qee Lwm Cov Haujlwm Zoo Tshaj Plaws
Video: ESP32 Nrog Zaub Oled - Kev Txhim Kho Bar: 6 Cov Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:29
ESP32 peb tab tom tham txog hnub no yog ib qho uas twb tau los nrog Display Oled built-in. Txoj haujlwm no ua rau peb lub neej yooj yim dua, vim tias peb tuaj yeem muaj kev xav txog qhov txiaj ntsig ntawm qhov sib txawv uas tshwm sim. Koj tsis tas yuav tsum saib lub qhov rais debug. Tsis tas li, koj tuaj yeem sib sau ua sawv cev thiab kos kab kos ua haujlwm, ntawm lwm yam. Vim tias cov txiaj ntsig no, Kuv xav txog tus qauv no yog cov khoom lag luam zoo, thiab peb yuav ua haujlwm niaj hnub no siv Arduino IDE.
Yog li, hauv daim vis dis aus no peb yuav teeb tsa txoj haujlwm nce qib. Nws yog ib qho tseem ceeb kom nco ntsoov tias yog tias koj lub ESP32 tsis muaj cov zaub oled, nws muaj peev xwm yuav nws cais. Tsis tas li, yog tias koj tsis tau npaj ib qho ESP32, kuv xav kom koj saib cov vis dis aus no: VIDEO INTRODUCTION TO ESP32, uas cuam tshuam nrog cov ncauj lus kom ntxaws.
Kauj ruam 1: Tsev qiv ntawv
Txhawm rau siv oled zaub, peb yuav tsum teeb tsa lub tsev qiv ntawv hauv Arduino IDE. Txhawm rau ua qhov no, rub lub tsev qiv ntawv los ntawm qhov txuas.
Unzip cov ntawv thiab muab tso rau hauv cov ntawv qiv ntawm Arduino IDE.
C:/ProgramFiles (x86)/Arduino/qiv ntawv
Kauj Ruam 2: Wemos Lolin ESP32 OLED
Wemos Lolin yog lub npe ntawm ESP no. Hauv daim duab, ntu dub yog cov duab thiab, ib sab ntawm lub cuab yeej, peb tso saib tag nrho cov pinout. Raws li tau qhia, muaj ntau qhov IOs uas tso cai rau peb qhib thiab tawm ntau yam ntsiab lus. Ib qho ntxiv, tus qauv no muaj lub cim tshiab WiFi thiab Bluetooth.
Kauj Ruam 3: Piv txwv
Hauv cov vis dis aus, koj tuaj yeem pom peb qhov phiaj xwm npaj tau, thiab yuav siv lub oled zaub los tso saib qhov kev nce qib uas tswj los ntawm lub hwj chim.
Kauj ruam 4: Sib dhos
Rau peb qhov kev sib dhos kuv siv lub hwj chim ntawm 10k, thiab kuv tig tus cursor GPIO25. Peb kuj muaj 3v3 thiab GND, raws li koj tuaj yeem pom hauv daim duab hauv qab no. Lub zog yuav los ntawm USB nws tus kheej.
Kauj ruam 5: Code
Ua ntej, peb ntxiv lub tsev qiv ntawv "SSD1306.h". Nrog rau qhov no, peb yuav nkag mus rau oled zaub. Tom qab, peb tsim cov khoom pom ntawm hom SSD1306 uas yuav muaj lub luag haujlwm tswj hwm cov ntsiab lus pom hauv cov duab oled.
#include "SSD1306.h" // alias rau #include "SSD1306Wire.h" // objeto controlador do display de led /* 0x3c: é um identificador único para comunicação do display pino 5 e 4 são os de comunicação (SDA, SDC) */ SSD1306 npo (0x3c, 5, 4); // pino que ligamos o potenciometro #define PINO_POTENCIOMETRO 25 // utilizado para fazer o contador de porcentagem int contador;
Teeb
Hauv kev teeb tsa () muaj nuj nqi, peb yuav pib peb cov khoom tso tawm kom peb tuaj yeem tswj hwm yam uas yuav tshwm sim. Los ntawm qhov khoom no, peb tseem yuav teeb tsa cov ntawv sau rau cov ntawv uas yuav nthuav tawm. Thiab, thaum kawg, peb teeb tus pin (tshwj xeeb, tus pin uas peb tig lub potentiometer) rau INPUT los nyeem tus nqi.
teeb tsa tsis muaj dab tsi () {Serial.begin (115200); Serial.println (); Serial.println (); // Txheeb xyuas qhov xwm txheej ntawm ob qho kev tswj hwm kev tswj hwm o que será exibido na tela screen.init (); // gira o zaub 180º (deixa de ponta cabeça) // display.flipScreenVertically (); // configura a fonte de escrita "ArialMT_Plain_10" screen.setFont (ArialMT_Plain_10); // configura o pino para fazer leitura do potenciômetro. pinMode (PINO_POTENCIOMETRO, INPUT); }
Loop
Hauv lub voj () muaj nuj nqi, peb yuav nyeem tus nqi zog tam sim no. Peb tuaj yeem pom tias peb tab tom siv "daim ntawv qhia" ua haujlwm sai tom qab nyeem tus nqi, vim tias tus nqi nyeem tau siab dhau los tso rau hauv qhov kev nce qib, yog li peb yuav qhia daim ntawv qhia tus nqi kom nyob hauv thaj tsam 0 txog 100.
void loop () {// leitura do valor do potenciometro int valor = analogRead (PINO_POTENCIOMETRO); //Serial.println(qhov ntsuas); // 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 = daim ntawv qhia (valor, 0, 4095, 0, 100); // limpa todo o zaub, ua raws lossis txuas nrog lub xov tooj screen.clear (); // ++ txee; // suav> 100? counter = 0: counter = counter; // desenha qhov kev nce qib kos drawProgressBar (); // Exibe na tela o que foi configurado até então. screen.display (); ncua (10); }
Hauv txoj haujlwm "drawProgress ()", peb yuav siv tus nqi nyeem los ntawm lub zog uas tau txais kev cawmdim hauv qhov sib txawv "percProgress" los teeb tsa hauv qhov kev nce qib. Peb tseem yuav tso cov ntawv nyob saum toj ntawm qhov kev nce qib, qhia txog feem pua tam sim no.
// função para desenhar a bar တိုးတက်မှု tsis muaj displayvoid drawProgressBar () {Serial.print (">>"); Serial.println (tus neeg sib tw); // desenha qhov kev nce qib bar * * * drawProgressBar (x, y, dav, qhov siab, tus nqi); parametros (p): p1: x coordenada X tsis muaj plano cartesiano p2: y coordenada Y tsis muaj plano cartesiano p3: dav suav nrog da barra de progresso p4: qhov siab altura da barra de progresso p5: tus nqi valor que a barra de progresso deve assumir */ screen.drawProgressBar (10, 32, 100, 10, tus sib tw); // configura o alinhamento ua texto que será escrito // nesse caso alinharemos o texto ao centro screen.setTextAlignment (TEXT_ALIGN_CENTER); // escreve o texto de porcentagem / * * drawString (x, y, ntawv); parametros (p): p1: x coordenada X tsis muaj plano cartesiano p2: y coordenada Y tsis muaj plano cartesiano p3: string texto que será exibido */ screen.drawString (64, 15, String (contador) + "%"); // se o contador está em zero, escreve a string "valor mínimo" if (contador == 0) {screen.drawString (64, 45, "Valor mínimo"); } // se o contador está em 100, escreve a string "valor máximo" else if (contador == 100) {screen.drawString (64, 45, "Valor máximo"); }}
Kauj Ruam 6: Qee Lwm Cov Haujlwm Zoo Tshaj Plaws
Zaub
// tso cov zaub upside down
tsis muaj dab tsi flipScreenVertically ();
Teeb duab
// kos ib pixel nkaus xwb los ntawm qhov screen
void setPixel (int16_t x, int16_t y);
// kos kab
void drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1);
// kos ib lub duab plaub
void drawRect (int16_t x, int16_t y, int16_t dav, int16_t qhov siab);
// kos lub voj voog
void drawCircle (int16_t x, int16_t y, int16_t radius);
// sau rau hauv ib lub voj voog
void fillCircle (int16_t x, int16_t y, int16_t radius);
// kos kab kab rov tav
void drawHorizontalLine (int16_t x, int16_t y, int16_t ntev);
// kos kab ntsug
void drawVerticalLine (int16_t x, int16_t y, int16_t ntev);
Ntawv
// teev cov ntawv sib dhos kom raug sau
// TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER_BOTH
void setTextAlignment (OLEDDISPLAY_TEXT_ALIGNMENT textAlignment);
Pom zoo:
Txhim Kho Java Txhim Kho rau Raspberry Pi: 11 Kauj Ruam (nrog Duab)
Txhim Kho Java Txhim Kho rau Raspberry Pi: Cov Lus Qhia no piav qhia txog txoj hauv kev zoo rau kev txhim kho Java cov haujlwm rau Raspberry Pi. Kuv tau siv txoj hauv kev los txhim kho Java lub peev xwm xws li los ntawm kev txhawb nqa cov cuab yeej qis mus rau ntau txoj xov thiab cov phiaj xwm sib txuas hauv network. Qhov appr
Loj hlob Zaub Zaub Ntxiv Hauv Qhov Chaw Tsawg Los Yog Loj hlob Zaub Zaub Hauv Chaw, (Ntau lossis Tsawg): 10 Kauj Ruam
Loj Hlob Ntau Cov Zaub Zaub Hauv Tsawg Chaw lossis … Loj hlob Zaub Zaub Hauv Chaw, (Ntau lossis Tsawg).: Qhov no yog kev tshaj lij tshaj lij rau Kev Loj Hlob Tshaj Ntiaj Teb, Kev Tsim Khoom Sib Tw, xa los ntawm Cov Lus Qhia. Kuv tsis tuaj yeem muaj kev zoo siab dua los tsim rau thaj chaw cog qoob loo thiab tshaj tawm kuv thawj Cov Lus Qhia. Yuav pib, kev sib tw nug peb kom
Hloov Kho Yam Tsiaj Qus - Joystick Steering - Tshiab thiab Txhim Kho: 7 Cov Kauj Ruam (nrog Duab)
Hloov Kho Yam Tsiaj Qus - Joystick Steering - Tshiab thiab Txhim Kho: Hloov Kho 8/1/2019: Ob xyoos tom qab ua tiav txoj haujlwm no, Kuv tau tsim thiab tsim ntau lub rooj sib tham hauv Circuit kom yooj yim los hloov cov rooj zaum no. Thawj lub rooj tsav xwm hauv vaj huam sib luag yuav luag zoo ib yam li cov kev cai protoboard tau muag ntawm no, tab sis instea
Pib Nrog ESP32 - Txhim kho ESP32 Boards hauv Arduino IDE - ESP32 Blink Code: 3 Cov Kauj Ruam
Pib Nrog ESP32 | Txhim kho ESP32 Boards hauv Arduino IDE | ESP32 Blink Code: Hauv cov lus qhia no peb yuav pom yuav pib ua haujlwm nrog esp32 thiab yuav ua li cas rau nruab esp32 cov laug cam rau hauv Arduino IDE thiab peb yuav ua haujlwm esp 32 kom khiav ntsais muag code siv arduino ide
Txhim Kho-7 "Ntsiav Tshuaj Txhim Kho Hauv Kuv '14 Cruze: 6 Kauj Ruam
Txhim Kho-7 "Ntsiav Tshuaj Txhim Kho Hauv Kuv '14 Cruze: Qhov no yog kev qhia qhia lub tsev raws li cov lus qhia los ntawm tus neeg siv thorpee hauv cov xov no ntawm Cruze Tham forums site. qhov no yog phau ntawv qhia rau txhua tus neeg uas tab tom sim ua