Mundarija:
- 1 -qadam: kutubxona
- 2 -qadam: Wemos Lolin ESP32 OLED
- 3 -qadam: Misol
- 4 -qadam: yig'ish
- 5 -qadam: kod
- 6 -qadam: Boshqa qiziqarli funktsiyalar
Video: OSP displeyli ESP32 - Progress Bar: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Bugun biz gaplashmoqchi bo'lgan ESP32-bu o'rnatilgan displeyli Oled bilan birga keladi. Bu funksiya bizning hayotimizni ancha osonlashtiradi, chunki biz paydo bo'ladigan o'zgaruvchining qiymati haqida taassurot qoldiramiz. Siz hatto disk raskadrovka oynasiga qarashingiz shart emas. Bundan tashqari, siz tasvirlarni yig'ishingiz va ishlash jadvallarini chizishingiz mumkin. Bu afzalliklar tufayli men ushbu modelni ajoyib mahsulot deb bilaman va biz bugun uni Arduino IDE yordamida dasturlashtiramiz.
Shunday qilib, bu videoda biz rivojlanish paneli dasturini tuzamiz. Shuni esda tutish kerakki, agar sizda ESP32 displeyi yo'q bo'lsa, uni alohida sotib olish mumkin. Bundan tashqari, agar siz hech qachon ESP32 -ni dasturlamagan bo'lsangiz, men sizga ushbu videoni ko'rishni taklif qilaman: VIDEO ESP32 ga KIRISH, bu mavzu bilan batafsilroq shug'ullanadi.
1 -qadam: kutubxona
Oled displeyidan foydalanish uchun biz kutubxonani Arduino IDE -da sozlashimiz kerak. Buning uchun havola orqali kutubxonani yuklab oling.
Faylni oching va Arduino IDE kutubxonalari papkasiga joylashtiring.
C:/ProgramFiles (x86)/Arduino/kutubxonalari
2 -qadam: Wemos Lolin ESP32 OLED
Wemos Lolin - bu ESPning nomi. Rasmda qora qism - bu displey va qurilmaning yonida biz butun pinoutni ko'rsatamiz. Ko'rsatilganidek, turli elementlarni yoqish va o'chirishga imkon beradigan bir nechta IO mavjud. Bundan tashqari, ushbu modelda eng yangi avlod WiFi va Bluetooth mavjud.
3 -qadam: Misol
Videoda siz bizning tayyor loyihamizni va potentsiometr tomonidan boshqariladigan harakat panelini ko'rsatish uchun oled displeydan qanday foydalanishni ko'rishingiz mumkin.
4 -qadam: yig'ish
O'rnatish uchun men 10k potentsiometrdan foydalandim va GPIO25 kursorini yoqdim. Bizda 3v3 va GND ham bor, buni quyidagi rasmda ko'rib turganingizdek. Quvvat USB -dan keladi.
5 -qadam: kod
Birinchidan, biz "SSD1306.h" kutubxonasini qo'shamiz. Bu bilan biz ekranli ekranga kiramiz. Shundan so'ng, biz SSD1306 turidagi displey ob'ektini yaratamiz, u displeyda ko'rsatilgan tarkibni boshqarish uchun javobgardir.
#"SSD1306.h" ni qo'shing // "SSD1306Wire.h" ni o'z ichiga olgan taxalluslar // LED /* 0x3c displeyini boshqaradi: ular 5 -dan 4 -gacha bo'lgan vaqtni ko'rsatadi (SDA, SDC)) */ SSD1306 ekrani (0x3c, 5, 4); // pino que ligamos yoki potenciometro #define PINO_POTENCIOMETRO 25 // utilizado para fazer o contador de porcentagem int contador;
Sozlash
Setup () funktsiyasida biz ko'rsatiladigan ob'ektni ishga tushiramiz, shunda biz nima ko'rsatilishini nazorat qila olamiz. Bu ob'ekt orqali biz ko'rsatiladigan matnlar uchun yozish manbasini ham sozlaymiz. Va nihoyat, biz qiymatni o'qish uchun pinni (aniqrog'i, potentsiometrni aylantirgan pinni) INPUT ga o'rnatdik.
void setup () {Serial.begin (115200); Serial.println (); Serial.println (); // Informatsiyalarni tekshirish yoki o'chirish, ekranni o'chirish (ekran).init (); // ekran 180º (deixa de ponta cabeça) // display.flipScreenVertically (); // "ArialMT_Plain_10" screen.setFont (ArialMT_Plain_10) shriftini sozlash; // konfiguratsiya yoki sozlash uchun. pinMod (PINO_POTENCIOMETRO, INPUT); }
Loop
Loop () funktsiyasida biz joriy potentsiometr qiymatini o'qiymiz. Biz "xarita" funktsiyasidan foydalanayotganimizni payqashimiz mumkin, chunki o'qish qiymati o'tish satriga qo'yish uchun juda yuqori, shuning uchun biz qiymatni 0 dan 100 gacha oralig'ida joylashtiramiz.
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 a 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 (); // ++ hisoblagich; // hisoblagich> 100? taymer = 0: hisoblagich = hisoblagich; // oldinga siljish chizig'i DrawProgressBar (); // bu erda siz konfiguratsiya qilishingiz mumkin. ekran.display (); kechikish (10); }
"DrawProgress ()" funktsiyasida biz "percProgress" o'zgaruvchisida saqlangan potentsiometrdan o'qilgan qiymatni harakat satriga o'rnatish uchun ishlatamiz. Bundan tashqari, biz joriy foizni ko'rsatgan holda, harakatlanish satrining yuqori qismiga matn joylashtiramiz.
// funcão para desenhar progress bar no displayvoid drawProgressBar () {Serial.print (">>"); Serial.println (kontador); // harakat paneli / * * drawProgressBar (x, y, kenglik, balandlik, qiymat); parametrlar (p): p1: x koordinatalar X yo'q plano kartesiano p2: y koordinatalar Y yo'q plano karteziano p3: kenglik tarkibi ham barra de progresso p4: balandligi altura da barra de progresso p5: qiymat bahosi qanchalik tez bo'lsa ham * screen.drawProgressBar (10, 32, 100, 10, kontador); // konfiguratsiya yoki matnni yozish uchun // matnni ekranga markazlashtirish.setTextAlignment (TEXT_ALIGN_CENTER); // escreve o texto de porcentagem / * * drawString (x, y, matn); parametrlar (p): p1: x koordinatalar X yo'q plano kartesiano p2: y koordinatalar Y yo'q plano kartesiano p3: string texto que será exibido */ screen.drawString (64, 15, String (contador) + "%"); // nolga teng bo'lsa, "valor mínimo" qatorini saqlang, agar (contador == 0) {screen.drawString (64, 45, "Valor mínimo"); } 100 -ni tanlang, agar "contor == 100" {screen.drawString (64, 45, "Valor máximo") qatorini "valor máximo" qatoriga o'tkazing; }}
6 -qadam: Boshqa qiziqarli funktsiyalar
Ko'rsatish
// displeyni teskari qilib qo'yadi
void flipScreenVertically ();
Chizma
// ekrandan bitta piksel chiqaradi
bo'sh setPixel (int16_t x, int16_t y);
// chiziq chizish
void drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1);
// to'rtburchak chizish
void drawRect (int16_t x, int16_t y, int16_t kengligi, int16_t balandligi);
// aylana chizish
void drawCircle (int16_t x, int16_t y, int16_t radiusi);
// aylanani to'ldiring
void fillCircle (int16_t x, int16_t y, int16_t radiusi);
// gorizontal chiziq chizish
void drawHorizontalLine (int16_t x, int16_t y, int16_t uzunligi);
// vertikal chiziq chizish
void drawVerticalLine (int16_t x, int16_t y, int16_t uzunligi);
Matn
// matnning hizalanishini yoziladi
// TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER_BOTH
void setTextAlignment (OLEDDISPLAY_TEXT_ALIGNMENT textAlignment);
Tavsiya:
8051 va LCD displeyli IQ sensori yordamida tashrif buyuruvchilar hisoblagichi: 3 qadam
LCD bilan 8051 va IQ sensori yordamida tashrif buyuruvchilar hisoblagichi: Aziz do'stlar, men 8051 va IQ sensori yordamida mehmonlar hisoblagichini yasashni tushuntirdim va uni LCD displeyda ko'rsatdim. 8051 - bu butun dunyo bo'ylab sevimli mashg'ulotlarini, tijorat dasturlarini ishlab chiqarishda ishlatiladigan eng mashhur mikrokontrolderlardan biri. Men vizitka qildim
Sensorli displeyli ESP32 asosidagi RFID o'quvchi: 7 qadam
Sensorli displeyli ESP32 asosidagi RFID o'quvchi: ESP32 DEV KIT C moduli, RC-522 asosidagi o'quvchi kompyuteri va AZ-Touch ESP to'plami yordamida devorga o'rnatish uchun TFT chiqishi bilan oddiy RFID o'quvchi qanday yaratilishini ko'rsataman. Siz ushbu o'quvchidan eshikka kirish yoki boshqa odamlarning kirishi uchun foydalanishingiz mumkin
ESP32 va xarakterli LCD displeyli harfli -raqamli klaviatura: 4 qadam
ESP32 va xarakterli LCD displeyli alifodali -raqamli klaviatura: Ushbu maqola ESP32 -ga ma'lumotlarni kiritish uchun raqamli raqamli klaviatura moduli va 16x2 I2C belgili LCD modulidan foydalanishni ko'rsatadi. Bu usuldan ESP32 ga Wi-Fi hisob ma'lumotlarini va boshqa ma'lumotlarni kiritish va olish uchun foydalanish mumkin
OLED displeyli ESP32 GPS kuzatuvchisi: 7 qadam
OLED displeyli ESP32 GPS kuzatuvchisi: Bu OLED displeyidagi barcha joylashuv ma'lumotlarini ko'rsatadigan GPS kuzatuvchisi. Tugma foydalanuvchilarga OLED -da foydalanuvchi interfeysi bilan ishlashga yordam beradi. Akarsh bu erda CETech -dan. Kod bortli tugma yordamida menyuga asoslangan dasturni taklif qiladi,
TSP LCD displeyli ESP8266/ESP32 ob -havo stantsiyasi: 8 qadam
TSP LCD displeyli ESP8266/ESP32 ob -havo stantsiyasi: Salom! Bu qisqa ko'rsatmali men ikkinchi Esp8266 WS loyihamni taqdim qilmoqchiman. Men birinchi ESP loyihasini joylashtirganimdan so'ng, men o'zimni ikkinchi loyihaga aylantirmoqchi edim. Shunday qilib, mening bo'sh vaqtlarim bor edi, men o'z ehtiyojlarimga javob beradigan eski manba kodini qayta ishlashim kerak edi