İçindekiler:
- 1. Adım: Kitaplık
- 2. Adım: Wemos Lolin ESP32 OLED
- Adım 3: Örnek
- Adım 4: Montaj
- Adım 5: Kod
- Adım 6: Diğer Bazı İlginç İşlevler
Video: Ekran Oled ile ESP32 - İlerleme Çubuğu: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bugün bahsedeceğimiz ESP32, halihazırda Display Oled yerleşik olarak gelen bir ESP32'dir. Bu fonksiyon hayatımızı çok kolaylaştırıyor çünkü görünen değişkenin değeri hakkında bir izlenime sahip olabiliyoruz. Hata ayıklama penceresine bakmanıza bile gerek yok. Ayrıca, diğer şeylerin yanı sıra temsilleri bir araya getirebilir ve performans çizelgeleri çizebilirsiniz. Bu faydaları nedeniyle bu modeli harika bir ürün olarak görüyorum ve bugün Arduino IDE kullanarak programlayacağız.
Bu videoda bir ilerleme çubuğu programlayacağız. ESP32'nizin ekranı oled değilse, ayrıca satın almanın da mümkün olduğunu unutmamak önemlidir. Ayrıca daha önce hiç ESP32 programlamadıysanız şu videoyu izlemenizi öneririm: Konuyu daha detaylı anlatan ESP32'YE GİRİŞ VİDEOSU.
1. Adım: Kitaplık
Oled ekranı kullanmak için Arduino IDE'deki kütüphaneyi yapılandırmamız gerekiyor. Bunu yapmak için kütüphaneyi bağlantıdan indirin.
Dosyayı açın ve Arduino IDE'nin kitaplıklar klasörüne yapıştırın.
C: /ProgramFiles(x86)/Arduino/kütüphaneler
2. Adım: Wemos Lolin ESP32 OLED
Wemos Lolin, bu ESP'nin adıdır. Resimde siyah kısım ekrandır ve cihazın yanında tüm pinout'u gösteriyoruz. Gösterildiği gibi, çeşitli öğeleri açmamıza ve kapatmamıza izin veren birkaç GÇ vardır. Ayrıca bu model, son nesil WiFi ve Bluetooth'a sahiptir.
Adım 3: Örnek
Videoda hazır projemizi ve bir potansiyometre ile kontrol edilen bir ilerleme çubuğunu görüntülemek için oled ekranın nasıl kullanılacağını görebilirsiniz.
Adım 4: Montaj
Montajımız için 10k potansiyometre kullandım ve imlecin GPIO25'ini açtım. Ayrıca aşağıdaki şekilde de görebileceğiniz gibi 3v3 ve GND var. Güç USB'nin kendisinden gelecek.
Adım 5: Kod
İlk olarak "SSD1306.h" kütüphanesini ekliyoruz. Bununla oled ekrana erişeceğiz. Ardından, oled ekranda gösterilen içeriği kontrol etmekten sorumlu olacak SSD1306 tipinde bir görüntüleme nesnesi oluşturuyoruz.
#include "SSD1306.h" // #include "SSD1306Wire.h" için takma ad // led ekranını kontrol etmek için /* 0x3c: pino 5 ve 4 iletişim bilgilerini görüntülemek için kullanılabilir (SDA, SDC)) */ SSD1306 ekran (0x3c, 5, 4); //pino que ligamos o potenciometro #define PINO_POTENCIOMETRO 25 //utilizado para fazer o contador de porcentagem int contador;
Kurmak
setup() fonksiyonunda, neyin görüntüleneceğini kontrol edebilmemiz için görüntüleme nesnemizi başlatacağız. Bu nesne aracılığıyla, görüntülenecek metinler için yazma kaynağını da yapılandıracağız. Ve son olarak, değeri okumak için pimi (özellikle potansiyometreyi çevirdiğimiz pim) GİRİŞ'e ayarladık.
geçersiz kurulum() { Serial.begin(115200); Seri.println(); Seri.println(); // Screen.init(); // 180º gösterim (deixa de ponta cabeça) // display.flipScreenVertical(); // bir yazı tipi yapılandırma "ArialMT_Plain_10" screen.setFont(ArialMT_Plain_10); //potenciômetro'yu yapılandırın. pinMode(PINO_POTENCIOMETRO, INPUT); }
Döngü
Loop() fonksiyonunda mevcut potansiyometre değerini okuyacağız. Değeri okuduktan hemen sonra "harita" işlevini kullandığımızı fark edebiliriz, çünkü okuma değeri bir ilerleme çubuğuna koymak için çok yüksek, bu nedenle değeri 0 ila 100 aralığında olacak şekilde eşleyeceğiz.
void loop() { //leitura do valor do potenciometro int valor = analogRead(PINO_POTENCIOMETRO); //Serial.println(değer); //potenciometro para o valor da barra de progresso //potenciometro faz a leitura do valor no intervalo 0 a 4095 //a barra de Progresso espera um valor giriş 0 e 100 kontador = map(valor, 0, 4095, 0, 100); //yapılacak işi görüntüle, ekrandan devam et.clear(); // ++sayaç; // sayaç > 100 ? sayaç = 0: sayaç = sayaç; //desenha bir ilerleme çubuğu drawProgressBar(); // en uygun şekilde yapılandırın. ekran görüntüsü(); gecikme(10); }
"drawProgress ()" fonksiyonunda, ilerleme çubuğunda ayarlamak için "percProgress" değişkenine kaydedilen potansiyometreden okunan değeri kullanacağız. Ayrıca, ilerleme çubuğunun hemen üstüne, mevcut yüzdeyi gösteren bir metin yerleştireceğiz.
// bir ilerleme çubuğuna göre işlev göstermez displayvoid drawProgressBar() { Serial.print(">> "); Serial.println(contador); // ilerleme çubuğu desenha /* * drawProgressBar(x, y, genişlik, yükseklik, değer); parametreler (p): p1: x koordineli X plano kartezyen yok p2: y koordineli Y plano karteziano yok p3: genişlik karşılaştırmalı ve ilerlemeli p4: yükseklik altura ve ilerlemeli p5: değer valor que a barra de progresso deve assumir */ screen.drawProgressBar(10, 32, 100, 10, contador); // texto que escrito yapmak için yapılandırma/alinhamento //nesse kaso alinharemos o texto ao centro screen.setTextAlignment(TEXT_ALIGN_CENTER); //escreve o texto de porcentagem /* * drawString(x, y, text); parametreler (p): p1: x koordinatları X plano kartezyen yok p2: y plano kartezyen yok p3: string metin sorgusu será exibido */ screen.drawString(64, 15, String(contador) + "%"); //se o contador está em zero, bir string "valor mínimo" if(contador == 0){ screen.drawString(64, 45, "Valor mínimo"); } // 100'ü değiştir, bir dizge "valor máximo" escreve başka if(contador == 100){ screen.drawString(64, 45, "Valor máximo"); } }
Adım 6: Diğer Bazı İlginç İşlevler
Görüntülemek
// ekranı ters çevirir
void flipScreenVertically ();
Resim çizme
// ekrandan tek bir piksel çizer
geçersiz setPixel (int16_t x, int16_t y);
// bir çizgi çiz
void drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1);
// bir dikdörtgen çiz
void drawRect (int16_t x, int16_t y, int16_t genişlik, int16_t yükseklik);
// bir daire çiz
void drawCircle (int16_t x, int16_t y, int16_t yarıçapı);
// bir daireyi doldur
void fillCircle (int16_t x, int16_t y, int16_t yarıçapı);
// yatay bir çizgi çiz
void drawHorizontalLine (int16_t x, int16_t y, int16_t uzunluk);
// dikey bir çizgi çiz
void drawVerticalLine (int16_t x, int16_t y, int16_t uzunluk);
Metin
// yazılacak metin hizalamasını ayarlar
// TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER_BOTH
geçersiz setTextAlignment (OLEDDISPLAY_TEXT_ALIGNMENT textAlignment);
Önerilen:
Micropython ile TTGO (renkli) Ekran (TTGO T-ekran): 6 Adım
Micropython'lu TTGO (renkli) Ekran (TTGO T-ekran): TTGO T-Display, 1,14 inç renkli ekran içeren ESP32 tabanlı bir karttır. Pano 7$'dan daha düşük bir ödülle satın alınabilir (nakliye dahil, banggood'da görülen ödül). Bu, ekran içeren bir ESP32 için inanılmaz bir ödül. T
MicroPython ile SSD1306 Oled ile ESP32 Arayüzü: 5 Adım
MicroPython ile SSD1306 Oled ile ESP32 Arayüzü: Micropython, python'un optimize edilmiş ve python'un küçük ayak izidir. Bu, bellek kısıtlamaları ve düşük güç tüketimi olan gömülü cihaz için inşa etmek anlamına geliyordu. Micropython, ESP8266, ESP32, Ardui'yi içeren birçok denetleyici ailesi için kullanılabilir
ESP32 ile PWM - Arduino IDE ile ESP 32'de PWM ile LED Karartma: 6 Adım
ESP32 ile PWM | Arduino IDE ile ESP 32'de PWM ile LED Karartma: Bu talimatta Arduino IDE & PWM temel olarak herhangi bir MCU'dan analog çıkış üretmek için kullanılır ve bu analog çıkış 0V ile 3.3V (esp32 durumunda) arasında herhangi bir şey olabilir & itibaren
Yükleme Çubuğu ile Basit Toplu Dosya Giriş Sistemi: 5 Adım
Yükleme Çubuğu ile Basit Toplu Dosya Giriş Sistemi: Burada yükleme çubuğu ile giriş sistemi için Batch dosyasını paylaşıyoruz. Size kodu göstereceğiz ve ayrıca nasıl kullanılacağını göstereceğiz. Daha fazla toplu dosya kodu için blogumuzu da ziyaret edebilirsiniz. FFLocker 1.0: http://errorcode401.blogspot.in/2013/06/FFlocker-1.0.html Rar
Bir Deodorant Çubuğu ile Hızlı Ucuz LED El Feneri Nasıl Yapılır!: 8 Adım
Bir Deodorant Çubuğuyla Hızlı ve Ucuz Bir LED El Feneri Nasıl Yapılır!: Bu Eğitilebilir Kitapta, size bir deodorant çubuğundan nasıl hızlı ve ucuz bir LED el feneri yapacağınızı göstereceğim! (ve birkaç parça daha)