Bu eğitim şunun parçasıdır: ESP32-S3 RGB LED Matrisi
ESP32-S3 RGB Matris modülü kullanılarak hem eğlence hem de pratik uygulamalar için oluşturulabilecek harika bir proje. Diğer videolara ait bağlantılar bu yazının altında yer almaktadır.
ESP32-S3 RGB LED Matris Projesi 1- Temel Nokta
Proje 1 – ESP32-S3 RGB LED Matriste Hareket Eden Nokta ve Kalp Animasyonu
Bu projede, ESP32-S3 RGB LED Matriste mümkün olan en basit animasyonla başlıyoruz: 8×8 RGB ekranda hareket eden tek bir nokta. Bunun üzerine, kartı açıldığında küçük bir dekoratif ekrana dönüştürebilmeniz için küçük bir kalp animasyonu ekliyoruz. Bu, matriste tek tek pikselleri, renkleri ve animasyon hızını kontrol etmeye alışmak için harika bir ilk adımdır.
Bu serideki altı projenin tamamı tek bir videoda gösterilmiş ve açıklanmıştır. Aynı video bu sayfaya gömülüdür, böylece hareket eden nokta ve kalp animasyonlarının adım adım açıklamasını ve canlı gösterimini izleyebilirsiniz. Bu projenin tam kodu makalenin altında otomatik olarak yüklenir ve ESP32-S3 RGB LED Matrix modülünü kod bölümünün altında listelenen bağlı kuruluş mağazalarından satın alabilirsiniz.
Bu kartla yeni başlıyorsanız, bu proje şunlar için mükemmel bir yoldur:
- ESP32-S3 kartınızın ve USB bağlantınızın çalıştığını doğrulamak.
- 8×8 RGB matrisin doğru pine bağlandığını onaylamak.
- Temel animasyon zamanlaması, renk ve parlaklık ile denemeler yapmak.

ESP32-S3 RGB LED Matrix Modülüne Genel Bakış
Bu projede kullanılan kart, ESP32-S3 mikrodenetleyicisine dayanır ve 8×8 RGB LED matris (64 ayrı ayrı adreslenebilir RGB LED), arkada bir QMI8658C hareket sensörü ve güç ile programlama için bir USB bağlantı noktası ile birleştirilmiştir.:contentReference[oaicite:0]{index=0}
Bu modülün temel özellikleri:

- ESP32-S3 Wi-Fi ve Bluetooth desteğine sahip çift çekirdekli mikrodenetleyici.
- 8×8 RGB LED matris (64 RGB LED) kartın önünde, simgeler, metinler ve küçük oyunlar için idealdir.
- QMI8658C ivmeölçer / hareket sensörü arka tarafta, böylece etkileşimli projeler için eğimi, hareketi ve yönelimi algılayabilirsiniz.
- USB bağlantı noktası hem programlama hem de güç için.
- Erişilebilir pinler kenarlarda, böylece kart diğer IO projeleri için normal bir ESP32 gibi de kullanılabilir.
- Boot ve reset düğmeleri programlama moduna girmek ve taslağınızı yeniden başlatmak için.
Bu ilk projede yalnızca kartın LED matris kısmını kullanıyoruz, ancak aynı donanım metin ekranları, web kontrollü mesajlar, hareket kontrollü oyunlar ve daha fazlasını çalıştıracak kadar güçlüdür — bunlar bu serinin diğer projelerinde ele alınmaktadır.
Videoda Ele Alınan Projeler (Zaman Damgaları)
Altı projenin tümü aynı YouTube videosunu paylaşır. Yaklaşık zaman damgaları şunlardır:
- 00:00 – Giriş
- 02:01 – ESP32 kartlarını kurma
- 03:32 – Kütüphaneleri kurma
- 05:32 – Proje 1: Hareket Eden Nokta (ve temel renk / hız ayarları)
- 11:11 – Proje 2: Metin Kaydırma
- 12:59 – Proje 3: HTTP Metni
- 16:41 – Proje 4: Eğim Noktası
- 18:55 – Proje 5: Yukarı Ok
- 20:02 – Proje 6: Hedef Oyunu
En iyi anlayış için, bu makaleyi takip ederken videoyu izlemeniz şiddetle önerilir. Video, matristeki noktanın ve kalbin canlı davranışını ve Arduino IDE içindeki tüm adımları gösterir.
Arduino IDE'de ESP32 Kartlarını Kurma
ESP32-S3'e herhangi bir kod yüklemeden önce, Arduino IDE'de ESP32 kart destek paketini kurmanız gerekir. Videoda bu, “kartları kurma” bölümünde gösterilmiştir.
Genel adımlar:
- Arduino IDE'yi açın ve
Dosya > Tercihlerbölümüne gidin. - “Ek Kart Yöneticisi URL'leri” alanına resmi ESP32 kartları URL'sini ekleyin.
Araçlar > Kart > Kart Yöneticisi…bölümünü açın,ESP32arayın ve ESP32 kartları paketini kurun.- Kurulumdan sonra
Araçlar > Kartbölümüne gidin ve ESP32-S3 RGB Matrix modülünüz için doğru kart girişini seçin. - Kartı USB ile bağlayın ve
Araçlar > Portaltında seri bağlantı noktasını seçin.
Doğru kart ve bağlantı noktası seçilmezse, kodunuz doğru olsa bile taslağınız yüklenmez.
NeoMatrix ve Gerekli Kütüphaneleri Kurma
LED matris dahili olarak Adafruit NeoPixel sürücüsünü kullanır ve daha kolay 2D çizim için Adafruit NeoMatrix kütüphanesini kullanırız. NeoMatrix'i kurmak bağımlılıkları otomatik olarak getirir.
NeoMatrix ve Bağımlılıkları
Kütüphane Yöneticisinden aşağıdakileri kurun:
Adafruit NeoMatrixAdafruit NeoPixelAdafruit GFX Library
Kütüphane Yöneticisinde:
Eskiz > Kütüphane Ekle > Kütüphaneleri Yönet…bölümünü açın.Adafruit NeoMatrixarayın ve Kur düğmesine tıklayın.- IDE'nin önerilen tüm bağımlılıkları (Adafruit GFX ve Adafruit NeoPixel) kurmasına izin verin.
QMI8658C Hareket Sensörü Kütüphanesi (Sonraki Projeler İçin)
Proje 1 ivmeölçeri doğrudan kullanmaz, ancak hareket sensörü kütüphanesini şimdi kurmak iyi bir fikirdir çünkü Proje 4, 5 ve 6 için gerekli olacaktır.
Kütüphane Yöneticisinden:
- QMI8658 kütüphanesini yazar adına göre arayın.
- Hızlı test için
Dosya > Örnekleraltında görünecek şekilde kütüphaneyi kurun.
Proje 1 – Kod Ayarları (Hareket Eden Nokta ve Kalp)
Proje 1'i çalıştıran tam taslak, bu makalenin altında web sitesinde otomatik olarak yüklenir. Burada yalnızca değiştirme olasılığınız olan temel ayarlara odaklanıyoruz: pin, piksel sayısı, parlaklık, renk ve animasyon hızı. Kalp animasyonu için ayrıca rengin nasıl kontrol edileceğini ve kalbin içi dolu mu yoksa sadece çerçeve mi olduğunu da gösteriyoruz.
LED Pini ve Piksel Sayısı
Bu modülde, 8×8 RGB matris ESP32-S3'ün GPIO 14'üne bağlıdır. Toplam piksel sayısı 64'tür (8 × 8). Kodunuzda şuna benzer bir şey görmelisiniz:
// 8×8 RGB matrise bağlı pin
const int MATRIX_PIN = 14;
// bu modülde 14 olmalı
// Toplam LED sayısı (8 × 8 matris)
const int NUMPIXELS = 64; // yalnızca farklı bir matris boyutu kullanıyorsanız değiştirin
Yanlışlıkla NUMPIXELS değerini 16'da bırakırsanız (orijinal NeoPixel örneğinden), matrisin yalnızca dörtte biri kullanılır ve animasyon 8×8 ekranın tamamını doldurmaz.
Renk Sırası ve LED Türü
Farklı LED şeritleri ve matrisleri farklı renk sıraları kullanabilir (örneğin, RGB yerine GRB). Bu karttaki matris RGB sırasını bekler. NeoPixel veya NeoMatrix yapıcı işlevinde, renk türünün doğru ayarlandığından emin olun:
// NeoPixel tarzı bir nesne için örnek:
Adafruit_NeoPixel pixels( NUMPIXELS, MATRIX_PIN, NEO_RGB + NEO_KHZ800 // bunun matris renk sırasıyla eşleştiğinden emin olun );
Ekranda kırmızı ve yeşilin yer değiştirdiğini fark ederseniz, önce bu satırı kontrol edin ve renk sırasını düzeltin.
Animasyon Hızı (Adımlar Arası Gecikme)
Hareket eden noktanın hızı genellikle milisaniye cinsinden basit bir gecikme değeriyle kontrol edilir. Daha küçük bir gecikme daha hızlı hareket anlamına gelir; daha büyük bir gecikme daha yavaş hareket anlamına gelir. Şuna benzer bir değişken arayın:
// Nokta hareketleri arasındaki gecikme (milisaniye cinsinden)
int dotDelayMs = 50; // 50 ms oldukça hızlıdır
Tipik ayarlamalar:
- Çok hızlı hareket eden bir nokta için
dotDelayMs = 20;ayarlayın. - Yavaş ve sakin bir animasyon için
dotDelayMs = 100;veya daha yüksek bir değer ayarlayın.
loop() fonksiyonunda bu değer genellikle her kare güncellemesinden sonra delay(dotDelayMs); olarak iletilir.
Nokta Rengi ve Parlaklık
Hareket eden noktanın RGB rengi, 0–255 aralığındaki üç değerle (kırmızı, yeşil, mavi) kontrol edilir. Örneğin:
// Nokta rengi (R, G, B) 0–255 arası uint8_t dotRed = 255; // tam kırmızı
uint8_t dotGreen = 0; // yeşil yok
uint8_t dotBlue = 0; // mavi yok
Bu, parlak kırmızı bir nokta üretir. Bazı kullanışlı kombinasyonlar:
- Saf kırmızı:
(255, 0, 0) - Saf yeşil:
(0, 255, 0) - Saf mavi:
(0, 0, 255) - Sarı:
(255, 255, 0) - Beyaz:
(255, 255, 255)
Genel parlaklık genellikle ayrı bir parlaklık fonksiyonuyla kontrol edilir:
// Genel matris parlaklığı (0–255)
uint8_t matrixBrightness = 40; // fazla parlamayı önlemek için düşük tutun // setup() içinde: matrix.setBrightness(matrixBrightness);
İç mekan kullanımı için 30–60 civarında bir değer genellikle rahattır.
Kalp Şekli Ayarları
Hareket eden noktaya ek olarak, kart ilk açıldığında matriste küçük bir kalp görüntüleyebilirsiniz. Makalenin örnek kodu (aşağıda yüklenen) şuna benzer ayarlar içerir:
// Kalp rengi (içi dolu kalp)
uint8_t heartRed = 255;
uint8_t heartGreen = 0;
uint8_t heartBlue = 0;
// İsteğe bağlı: gökkuşağı veya çerçeve modları
bool showOutlinedHeart = false;
// true = yalnızca çerçeve
bool useRainbowHeart = false;
// true = zamanla renkleri döngüye sokar
Tipik kullanım:
- İçi dolu kırmızı bir kalp için
showOutlinedHeart = false;veuseRainbowHeart = false;ayarlayın. - Yalnızca kalp çerçevesini göstermek için
showOutlinedHeart = true;ayarlayın. - Kalp rengini sürekli olarak gökkuşağı efektiyle döngüye sokmak için
useRainbowHeart = true;ayarlayın.
Kalp, makalenin altındaki kodda NeoMatrix koordinat fonksiyonları kullanılarak çizilir. Görünümünü özelleştirmek için yalnızca yukarıdaki değişkenleri değiştirmeniz yeterlidir.
Özet
Proje 1, ESP32-S3 RGB LED Matris ile basit ama güçlü bir başlangıç noktası sunar: 64 pikselin tamamına nasıl erişeceğinizi, rengi nasıl kontrol edeceğinizi, parlaklığı nasıl ayarlayacağınızı ve animasyon hızını nasıl belirleyeceğinizi öğrenirsiniz. Ayrıca aynı donanımda hareket eden bir noktadan statik veya animasyonlu bir kalbe geçmenin ne kadar kolay olduğunu da görürsünüz.
Hareket eden nokta ve kalp animasyonlarının yanı sıra kalan beş projenin adım adım tam bir gösterimi için bu sayfada gömülü olan videoyu mutlaka izleyin. Tam kaynak kodu bu makalenin altında mevcuttur ve kod bölümünün altında listelenen bağlı kuruluş bağlantıları aracılığıyla modülü satın alarak gelecekteki projeleri destekleyebilirsiniz.
Bu eğitim şunun parçasıdır: ESP32-S3 RGB LED Matrisi
- ESP32-S3 RGB LED Matris Projesi 2 - Kayan Metin
- ESP32-S3 RGB LED Matris Projesi 3 - Cep telefonundan metin
- ESP32-S3 RGB LED Matris Projesi 4 - Eğim noktası
- ESP32-S3 RGB LED Matris Projesi 5 - Ok her zaman yukarı
- ESP32-S3 RGB LED Matris Projesi 6 - Cible oyunu
- ESP32-S3 RGB LED Matris Wi-Fi + NTP Saat Projesi -1 Temel Saat
- ESP32-S3 RGB LED Matris İnternet Saati Projesi - 2 Saat Çok Renkli Zaman ve Tarih Gösterimi
- ESP32-S3 RGB LED Matris İnternet Saati Projesi - Tarih ile 3 Gece Rengi
- ESP32-S3 RGB LED Matris İnternet Saati Projesi - 5 Gökkuşağı rengi
- ESP32-S3 RGB LED Matris İnternet Saati Projesi - 4 Rastgele renk
- ESP32-S3 RGB LED Matrix test for RGB, GRB setting
/*
Project 1: the Dot – ESP32-S3 RGB LED Matrix (Waveshare)
dialysis a dot on scree and moves it
▶️ Video Tutorial:
https://youtu.be/JKLuYrRcLMI
📚⬇️ Resources & Code Page:
https://robojax.com/RJT829
QMI8658_RGB_2
*/
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
// Which pin on the Arduino is connected to the NeoPixels?
#define PIN 14 // On Trinket or Gemma, suggest changing this to 1
// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 64 // Popular NeoPixel ring size
// When setting up the NeoPixel library, we tell it how many pixels,
// and which pin to use to send signals. Note that for older NeoPixel
// strips you might need to change the third parameter -- see the
// strandtest example for more information on possible values.
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800);
#define DELAYVAL 50 // Time (in milliseconds) to pause between pixels
void setup() {
// These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
// Any other board, you can remove this part (but no harm leaving it):
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif
// END of Trinket-specific code.
pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
}
void loop() {
pixels.clear(); // Set all pixel colors to 'off'
// The first NeoPixel in a strand is #0, second is 1, all the way up
// to the count of pixels minus one.
for(int i=0; i<NUMPIXELS; i++) { // For each pixel...
// pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255
// Here we're using a moderately bright green color:
pixels.setPixelColor(i, pixels.Color(255, 255, 0));
pixels.show(); // Send the updated pixel colors to the hardware.
delay(DELAYVAL); // Pause before next pass through loop
pixels.clear();
}
}
İhtiyacın olabileceğini düşünüyor
-
Amazon
-
eBay
-
AliExpressPurchase ESP32-S3 RGB matrix from AliExpresss.click.aliexpress.com
-
AliExpressPurchase ESP32-S3 RGB matrix from AliExpress (2)s.click.aliexpress.com
Kaynaklar ve referanslar
-
Dahili🎨 Color picker Toolrobojax.com
Dosyalar📁
Fritzing Dosyası
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB