İçindekiler:
- Gereçler
- Adım 1: Sarf Malzemeleri
- Adım 2: LedWall'ınız için Doğru Güç Kaynağını Belirleme
- Adım 3: Güç Kablosu
- Adım 4: Güç Kaynağını Kablolama
- Adım 5: ESP32S'ye Güç Verme
- Adım 6: LED Işık Şeritlerine Güç Verme
- Adım 7: ESP32'yi LED Işık Şeritlerine Bağlama
- Adım 8: Bilgisayarı Hazırlama: C2102 Sürücüsü
- Adım 9: Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 1
- Adım 10: Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 2
- Adım 11: Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 3
- Adım 12: Arduino IDE'ye Kitaplıklar Ekleme
- Adım 13: İlk Kod: Dizi Testi
- Adım 14: SHU Örnek Kodu
- Adım 15: Kodu ESP32'ye Yükleme
- Adım 16: Alıntılar
Video: ESP32 ile 500 LED Duvar: 16 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Herkese selam! Bu eğitimin sonunda kendi LED duvarınızı nasıl oluşturacağınızı öğreneceksiniz.
Bu eğitim, Sacred Heart Üniversitesi'nde sunulan bir yaz programına dayanmaktadır.
İyi eğlenceler!
Gereçler
Aşağıda listelenen sarf malzemeleri.
Adım 1: Sarf Malzemeleri
Led Duvarımızı tamamlamak için ihtiyacımız olan her şeyi toplayarak başlayalım:
(Linkler 7/10/2019 tarihinde oluşturulmuştur)
Arduino IDE Yazılımı
ESP32 Mikro Denetleyici
LED Piksel Işık
Güç kaynağı
Güç kablosu
Tel Sıyırma Aracı
Breadboard Jumper Kabloları
Elektrik kablosu
Adım 2: LedWall'ınız için Doğru Güç Kaynağını Belirleme
Hangi güç kaynağının sizin için en iyi olduğunu bulmanın basit bir matematiksel yolu var.
Ohm'un güç yasasını kullanıyoruz: P = IxV (Güç = Yoğunluk x Gerilim)
Voltaj ledlerimiz tarafından belirlenir: bu durumda 5V.
Yoğunluk donanıma bağlıdır, tek bir Led 30mA tüketir.
50 Led'lik her şerit bu nedenle 50 x 30mA = 1250mA = 1.25A tüketir.
500 Led duvarımız bu nedenle (10 şerit): 12.5A'nın 10 katını tüketir.
Güç kullanımı daha sonra Ledler için 5V x 12,5A = 62,5W'dir.
Tabii ki, Led'lerin üstünde ESP'yi ve devrenizin diğer tüm öğelerini hesaba katmanız gerekir.
60A güç kaynağımız var, ihtiyacımız olandan çok daha fazlasına sahibiz.
Adım 3: Güç Kablosu
Güç kaynağımız kablo konektörleriyle birlikte gelir. 110V'luk bir fişe bağlamak için bir güç kablosunu uyarlamamız gerekiyor.
- Güç kablosundan dişi konnektörü kesin. Erkek kısmı tutacağız, aksi takdirde NEMA 5-15P olarak bilinecek.
- Tüm kablolarda yaklaşık 3 mm bakır görünecek şekilde kabloyu soyun.
İşte kabloların nasıl soyulacağına dair hızlı bir video eğitimi:
Adım 4: Güç Kaynağını Kablolama
Artık güç kaynağımızı bağlamaya hazırız!
Üzerinde çalışırken her zaman güç kaynağının fişini çekin.
kablolama
- Siyah kablo (Faz), güç kaynağının 'L' pinine bağlanır
- Beyaz kablo (Nötr) güç kaynağının 'N' pinine bağlanır
- Yeşil kablo, güç kaynağının 'Toprak' pinine bağlanır
(Güç kablonuzun iç kabloları bizimkiyle aynı renkte değilse, dikkatli olun ve şemalara çevrimiçi bakın.)
Test yapmak
Bilgisayarın güç kablosunu herhangi bir elektrik prizine takın. Güç kaynağındaki yeşil LED yanmalıdır.
Adım 5: ESP32S'ye Güç Verme
ESP'nize baktığınızda, her pinin yanında etiketler olmalıdır. Eğer etiketlenmemişse, bireysel ESP'nizin 'pinout'una çevrimiçi olarak bakabilirsiniz.
Bir erkek-dişi devre tahtası atlama kablosu veya bir elektrik kablosu kullanarak şunları bağlayın:
- Güç kaynağının '+V' ucuna '5V' ESP32S pimi (yukarıdaki fotoğrafta turuncu)
- Güç kaynağının '-V' bölümüne 'GND' ESP32S pimi (yukarıdaki fotoğrafta siyah)
(Bazı ESP'lerde '5V' pini bunun yerine 'VCC' olarak etiketlenmiştir, ikisi de aynı anlama gelir.)
Lütfen, ESP'nizin bizim kullandığımızdan farklı bir pin çıkışına sahip olabileceğini unutmayın. Bu nedenle, kablolarınızı yukarıdaki resimdekinden farklı bir yere bağlıyor olabilirsiniz. Doğru pinlere (5V ve) bağladığınız sürece GND), panodaki fiziksel konumun önemi yoktur.
TestingGüç kaynağınızı tekrar takın ve ESP'nizde bir LED göstergesi varsa (çoğu var), gücün ESP'ye gönderildiğini belirtmek için yanacaktır. Tebrikler!
Adım 6: LED Işık Şeritlerine Güç Verme
Elektrik kablolarının kullanılması:
- LED Işık Şeridi'nin kırmızı kablosunu güç kaynağındaki V+'ya bağlayın.
- LED Işık Şeridi'nin mavi kablosunu güç kaynağındaki V-'ye bağlayın.
Adım 7: ESP32'yi LED Işık Şeritlerine Bağlama
ESP32'miz, her bir led'e bağlı olan WS2811 sürücüsüne olması gereken renk ve parlaklığı bildirir. Bunu yapmak için, ESP32'mizin şeritlere giden bir "veri" kablosuna ihtiyacı vardır.
Led şeritleri 3 telli bir konektörle gelir:
- Kırmızı: Güç- Mavi: Nötr- Beyaz: Veri
Beyaz Led şerit kabloyu ESP üzerindeki dijital pin'e bağlayalım. Seçtiğiniz PIN numarasını daha sonra kodda seçmemiz gerekeceğinden lütfen unutmayınız. Bizimkini pin 13'e taktık.
Adım 8: Bilgisayarı Hazırlama: C2102 Sürücüsü
Artık donanımımız kablolu olduğundan, test etmek için ilk kodumuzu yüklemek istiyoruz. Varsayılan olarak, Windows veya MacO'lar ESP32'miz ile iletişim kuramaz. Bunu yapmak için, ESP USB iletişim çipi için bir "sürücü" indirmemiz gerekiyor: C2102.
Bu sürücü indirilmeli ve kurulmalıdır:
- Windows 10: https://www.silabs.com/documents/public/software/C…- Windows 7/8/8.1: https://www.silabs.com/documents/public/software/C…- Mac:
(7/10/2019 tarihli bağlantılar)
Adım 9: Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 1
ESP32'mizi Arduino yazılımı ile kullanabilmemiz için önce tanındığından emin olmamız gerekiyor. Varsayılan olarak, Arduino yazılımı ESP32'miz için kod derleyemez, hadi şunu düzeltelim:
Adım 1: Yöneticiye pano ekleme
1 - Arduino'da Dosya >> Tercihler seçeneğine tıklayın
2- "Ek Pano Yöneticisi URL'leri" alanına aşağıdaki bağlantıyı kopyalayın:
Adım 10: Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 2
Arduino yazılımı artık daha fazla kart "bildiğine" göre, ESP32 desteğimizi yükleyelim
Adım 2: ESP32 desteğini yükleme
1 - Üst menüde şunları seçin: Araçlar >> Pano >> Pano Yöneticisi
2 - Bir pencere görünecektir. "ESP32"yi bulmak için sağ üst köşede bulunan arama kutusunu kullanın.
3 - Espressif tarafından yapılanı bulun. Yükle. (resme bakın)
Adım 11: Arduino Yazılımı - ESP32 Desteği Ekleme - Adım 3
Artık Arduino yazılımı bizim ESP32'miz ile haberleşebildiğine göre, onu bilgisayara bağlayalım ve her şeyin çalıştığını doğrulayalım.
1 - ESP32 platformunda çalıştığımızdan emin olalım:
Araçlar >> Anakart >> ESP32 Geliştirme Modülü'ne tıklayın
1- Arduino yazılımının ESP'miz ile nasıl iletişim kuracağını bildiğinden emin olalım:
Araçlar >> Bağlantı Noktası'na tıklayın ve bu kabloyu takarken çıkanı seçin.
Önemli:
Kodu ESP'nize yüklerken herhangi bir sorun yaşıyorsanız, önce bu iki menüyü kontrol edin. Bağlantı noktası bir onay işaretiyle seçilmezse, Arduino yazılımı onunla iletişim kurmaz.
Adım 12: Arduino IDE'ye Kitaplıklar Ekleme
Şimdi Led Duvarımızı test etmemizi sağlayacak bir kütüphane ekleyeceğiz!
1- Araçlar >> Kitaplıkları Yönet'e tıklayın.
2- Sağ üst köşede NeoPixelBus'u arayın. "NeoPixelBus by Makuna"yı bulun, kurun (resme bakın)
Potansiyel diğer ilginç Kütüphaneler:(Bu eğitim için gerekli değildir)
- NeoMatrix
- HızlıLed
- Artnet
- GFX
Adım 13: İlk Kod: Dizi Testi
İlk kodumuz Kütüphaneden bir örnektir.
Aşağıdaki kodu kopyalayabilir / yapıştırabilir veya üzerine tıklayabilirsiniz:
Dosya >> Örnekler >> Adafruit NeoPixelBus >> Strandtest
Lütfen LED_PIN'inizi, led'lerinizi fiziksel olarak bağlamak için kullandığınızla değiştirdiğinizden emin olun. Bu eğitim boyunca 13 kullandık.
Ayrıca şerit boyutunu LED_COUNT değişkeni ile uyarladığınızdan emin olun.
// Temel bir günlük LED Striptest programı.
#include#ifdef _AVR_ #include // 16 MHz Adafruit Biblo için gerekli #endif // Arduino üzerindeki hangi pin NeoPixels'e bağlı? #define LED_PIN 13 // Arduino'ya kaç NeoPiksel bağlı? #define LED_COUNT 500 // NeoPixel şerit nesnemizi bildirin: Adafruit_NeoPixel şeridi(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Argüman 1 = NeoPixel şeridindeki piksel sayısı // Argüman 2 = Arduino pin numarası (çoğu geçerlidir) // Argüman 3 = Piksel tipi bayraklar, gerektiği gibi ekleyin: // NEO_KHZ800 800 KHz bit akışı (çoğu NeoPixel ürünü w/ WS2812 LED'ler) // NEO_KHZ400 400 KHz (klasik 'v1' (v2 değil) FLORA pikselleri, WS2811 sürücüleri) // NEO_GRB Pikselleri, GRB bit akışı (çoğu NeoPixel ürünü) için kablolanmıştır // NEO_RGB Pikseller, RGB bit akışı (v1 FLORA pikselleri) için kablolanmıştır, v2) değil // NEO_RGBW Pikseller RGBW bit akışı (NeoPixel RGBW ürünleri) için kablolanmıştır // setup() işlevi -- başlangıçta bir kez çalışır -------------------- ------------ void setup() { // Bu satırlar özellikle Adafruit Biblo 5V 16 MHz'i desteklemek içindir. // Başka herhangi bir kart, bu bölümü kaldırabilirsiniz (ancak bırakmanın zararı olmaz): #ifdefined(_AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // Bibloya özel kodun sonu. strip.begin(); // BAŞLAT NeoPixel şerit nesnesi (GEREKLİ) strip.show(); // En kısa sürede tüm pikselleri KAPATIN strip.setBrightness(50); // PARLAKLIK'ı yaklaşık 1/5'e ayarlayın (maks = 255) } // loop() işlevi -- kart açık olduğu sürece tekrar tekrar çalışır --------------- void loop() { // Şerit boyunca çeşitli renklerde doldurun… colorWipe(strip. Color(255, 0, 0), 50); // Red colorWipe(strip. Color(0, 255, 0), 50); // Green colorWipe(strip. Color(0, 0, 255), 50); // Mavi // Çeşitli renklerde tiyatro efekti yapın… TheaterChase(strip. Color(127, 127, 127), 50); // Beyaz, yarı parlaklık tiyatroChase(strip. Color(127, 0, 0), 50); // Kırmızı, yarı parlaklık tiyatroChase(strip. Color(0, 0, 127), 50); // Mavi, yarı parlaklık gökkuşağı(10); // Tüm şerit boyunca akan gökkuşağı döngüsü TheaterChaseRainbow(50); // Gökkuşağı ile geliştirilmiş tiyatroChase varyantı } // Animasyonlu efektler oluşturmak için kendimize ait bazı işlevler ----------------- // Şerit piksellerini birbiri ardına bir renkle doldurun. Şerit temizlenmez // önce; oradaki her şey piksel piksel kapsanacak. color ile // (yukarıdaki loop() işlevinde gösterildiği gibi // strip. Color(red, green, blue) çağırarak alabileceğiniz tek bir 'paketlenmiş' 32 bitlik değer olarak) // ve pikseller arasındaki gecikme süresi (milisaniye cinsinden). void colorWipe(uint32_t color, int wait) { for(int i=0; i strip.setPixelColor(i, color); // Pikselin rengini (RAM'de) ayarla strip.show(); // Stripi gecikmeyle eşleşecek şekilde güncelle(wait); // Bir an duraklat } } // Tiyatro-marquee tarzı takip ışıkları. Bir renk (32-bit değer, // a la strip. Color(r, g, b) yukarıda belirtildiği gibi), ve çerçeveler arasında bir gecikme süresi (ms olarak) // void TheaterChase(uint32_t color, int wait) { for(int a=0; a<10; a++) { // 10 kez tekrarla… for(int b=0; b<3; b++) { // 'b' 0'dan 2'ye kadar sayar… strip.clear(); // RAM'deki tüm pikselleri 0'a ayarlayın (kapalı) // 'c', 'b'den sonuna kadar sayar 3'lü adımlarla şeritleyin… for(int c=b; c strip.setPixelColor(c, color); // 'c' pikselini 'color' değerine ayarlayın } strip.show(); // Şeridi yeni içerik gecikmesiyle güncelleyin (bekle); // Bir an için duraklat } } } // Tüm şerit boyunca gökkuşağı döngüsü. Çerçeveler arasında gecikme süresi (ms olarak) geç. void gökkuşağı(int bekle) { // İlk pikselin tonu, 5 tam döngü boyunca çalışır renk çarkı. // Renk çarkının aralığı 65536'dır ancak Tamam, eğer yuvarlarsak, // sadece 0'dan 5*65536'ya kadar sayın. FirstPixelHue'ya her seferinde 256 eklemek // bu dış döngüden 5*65536/256 = 1280 geçiş yapacağımız anlamına gelir: for(long firstPixelHue = 0; firstPixelHue < 5*65536; firstPixelHue += 256) { for(int i= 0; I // Piksel tonunu şeridin uzunluğu boyunca // renk tekerleğinde (65536 aralığı) bir tam dönüş yapacak miktarda kaydırır // (strip.numPixels() adımları): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels()); // strip. ColorHSV() 1 veya 3 argüman alabilir: bir hue (0 ila 65535) veya // isteğe bağlı olarak doygunluk ve değer (parlaklık) ekleyin (her biri 0 ila 255). // Burada sadece tek argümanlı renk tonu değişkenini kullanıyoruz. Sonuç // 'daha doğru' renkler sağlamak için strip.gamma32() içinden geçirilir // her piksele atamadan önce: strip.setPixelColor(i, strip.gamma32 (strip. ColorHSV(pixelHue))); } strip.show(); // Stripi yeni içeriklerle güncelle gecikme(bekle); // Bir an için duraklat } } // Gökkuşağı ile geliştirilmiş sinema çerçevesi. Gecikme süresini geç (içinde) ms) çerçeveler arasında void TheaterChaseRainbow(int wait) { i nt ilkPixelHue = 0; // İlk piksel kırmızı (hue 0) ile başlar for(int a=0; a<30; a++) { // 30 kez tekrarlayın… for(int b=0; b RGB strip.setPixelColor(c, color); / / 'c' pikselini 'color' değerine ayarlayın } strip.show(); // Stripi yeni içeriklerle güncelle gecikme(bekle); // Önce bir an duraklatPixelHue += 65536 / 90; // Bir renk tekerleği döngüsü 90'dan fazla kare } } }
Adım 14: SHU Örnek Kodu
Kodumuz, çalıştıklarından emin olmak için tüm Led'leri tek tek açar:
// Bu örnek, 500 pikselin Kırmızı olarak gösterilmesi arasında geçiş yapacak
#includeconst uint16_t PixelCount = 500; // bu örnekte 4 piksel olduğu varsayılır, daha küçük yapmak hataya neden olur const uint8_t PixelPin = 13; // bunu doğru pine ayarladığınızdan emin olun, Esp8266 için yok sayılır
#define colorSaturation 128// farklı düzen ve hızlarda üç elemanlı piksel
NeoPixelBus şeridi (PixelCount, PixelPin);
//NeoPixelBus şeridi(PixelCount, PixelPin); RgbColor red(0, colorDoygunluk, 0); RgbColor yeşil(renkDoygunluğu, 0, 0); RgbColor blue(0, 0, colorDoygunluk); RgbColor beyaz(renkDoygunluğu); RgbColor siyah (0); HslColor hslRed(kırmızı); HslColor hslGreen(yeşil); HslColor hslBlue(mavi); HslColor hslBeyaz(beyaz); HslColor hslBlack(siyah); void setup() { Serial.begin(115200) while (!Serial); // seri eklemeyi bekle Serial.println(); Serial.println("Başlatılıyor…"); Seri.flush(); // bu, tüm neopikselleri kapalı durum şeridine sıfırlar. Begin(); şerit. Göster(); Seri.println(); Serial.println("Çalışıyor…"); } geçersiz döngü() { gecikme(100); Serial.println("Renkler R, G, B, W…"); for(int i = 0; i <=499;i++){ // renkleri ayarlayın, // sırayla uyuşmuyorlarsa NeoGrbFeature özellik şeridini kullanmanız gerekir. SetPixelColor(i, red);strip. Show (); gecikme(100); strip. SetPixelColor(i, hslRed); şerit. Göster(); gecikme(100); }}
Adım 15: Kodu ESP32'ye Yükleme
Önemli:
Herhangi bir mikro denetleyiciye kod yükleyebilmek için programlama modunda olması gerekir. Bunu çoğu otomatik olarak yapar ve tek yapmanız gereken yazılımda yükle'yi tıklamaktır.
ESP32'miz kod gönderilirken programlama butonuna basılı tutmanızı gerektirir. Ayrıca kod yüklendikten sonra reset butonuna bir kez basarak resetlemeniz gerekir.
ESP32'mizin programlama butonu solda, reset butonu sağda bulunmaktadır. Başka bir mikro denetleyiciniz varsa lütfen kılavuzunuza bakın.
Adım 16: Alıntılar
Bu talimat, aşağıdaki öğreticilerin yardımıyla yapılmıştır:
randomnerdtutorials.com/installing-the-esp…
ESP32'yi Arduino IDE'ye kurmak için kullanılır.
Yazarlar:
Nathaniel Barone Gabriel Castro
Editör:
Cedric Bleimling
Önerilen:
Pratik Arduino ESP32 Kablosuz Duvar Prizi LED Şerit Kontrol Cihazı: 6 Adım
Pratik Arduino ESP32 Kablosuz Duvar Prizi LED Şerit Kontrol Cihazı: Bu, düşük maliyetli LED şeritler için çok pratik bir DIY Kablosuz Duvar Prizi kontrol cihazıdır. EBay'de satılan ucuz wifi kontrol cihazlarının yerini alır. RGB Led şeritlerle iyi çalışırlar. EBay Wifi denetleyicisi iyi yapılandırılmamış ve kolayca kırılıyor. Als
Ev Otomasyonu Kontrol Paneli Olarak IPad Duvar Montajı, Servo Kontrollü Mıknatıs ile Ekranı Etkinleştiriyor: 4 Adım (Resimli)
IPad için Duvar Montajı Ev Otomasyonu Kontrol Paneli Olarak, Ekranı Etkinleştirmek için Servo Kontrollü Mıknatısın Kullanılması: Son zamanlarda evimin içinde ve çevresinde işleri otomatikleştirmek için epey zaman harcıyorum. Ev Otomasyonu uygulamam olarak Domoticz'i kullanıyorum, ayrıntılar için www.domoticz.com adresine bakın. Tüm Domoticz bilgilerini gösteren bir pano uygulaması arayışımda
Duvar Saati ile Müthiş Proje: 11 Adım
Duvar Saati ile Müthiş Proje: Merhaba Arkadaşım, Bu blog harika olacak çünkü bu blogda Eski Duvar saatini kullanarak harika bir LED efekt devresi yapacağım.Haydi başlayalım
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
Pi Zero W ile Dakboard Duvar Göstergesi: 6 Adım (Resimli)
Pi Zero W ile Dakboard Duvar Ekranı: IT'de çalışıyorum. Genellikle eski takımlarını çıkarmamızı isteyen müşterilerle karşılaşıyoruz. Bu genellikle bize bir yığın hurda bırakır ve monitörler bulduğumuz israf edilen şeylerden biridir. Evde kendi monitörlerimi yükseltmiştim ve bu eski