Daftar Isi:

500 LED Dinding Dengan ESP32: 16 Langkah
500 LED Dinding Dengan ESP32: 16 Langkah

Video: 500 LED Dinding Dengan ESP32: 16 Langkah

Video: 500 LED Dinding Dengan ESP32: 16 Langkah
Video: Rahasia ESP32 !! Membuat Jam Digital Super Presisi dengan Sync ke NTP Server - Oled 0.96 + ESP32 2024, November
Anonim
500 LED Dinding Dengan ESP32
500 LED Dinding Dengan ESP32

Halo semuanya! Pada akhir tutorial ini Anda akan tahu cara membuat dinding LED Anda sendiri.

Tutorial ini didasarkan pada program musim panas yang ditawarkan di Universitas Hati Kudus.

Selamat bersenang-senang!

Perlengkapan

Persediaan yang tercantum di bawah ini.

Langkah 1: Persediaan

Perlengkapan
Perlengkapan

Mari kita mulai dengan mengumpulkan semua yang kita butuhkan untuk menyelesaikan Dinding Led kita:

(Tautan dibuat pada 10/7/2019)

Perangkat Lunak Arduino IDE

Pengontrol Mikro ESP32

Lampu Piksel LED

Sumber Daya listrik

Kabel listrik

Alat Pengupasan Kawat

Kabel Jumper papan tempat memotong roti

Kabel listrik

Langkah 2: Menentukan Catu Daya yang Tepat untuk LedWall Anda

Ada cara matematis sederhana untuk mengetahui catu daya mana yang terbaik untuk Anda gunakan.

Kami menggunakan hukum daya Ohm: P = IxV (Daya = Intensitas x Tegangan)

Tegangan ditentukan oleh led kami: dalam hal ini 5V.

Intensitas tergantung pada perangkat keras, satu Led mengkonsumsi 30mA.

Setiap strip 50 Led karena itu mengkonsumsi 50 x 30mA = 1250mA = 1,25A.

Oleh karena itu, dinding 500 Led kami mengkonsumsi 10 kali lipat (10 strip): 12,5A.

Penggunaan daya kemudian 5V x 12,5A = 62,5W untuk Led.

Tentu saja, di atas Led Anda perlu memperhitungkan ESP dan setiap item lain dari sirkuit Anda.

Kami memiliki catu daya 60A, kami memiliki lebih banyak dari yang kami butuhkan.

Langkah 3: Kabel Listrik

Image
Image

Catu daya kami dilengkapi dengan konektor kawat. Kita perlu mengadaptasi kabel daya untuk menghubungkannya ke steker 110V.

- Potong konektor perempuan dari kabel listrik. Kami akan menjaga bagian laki-laki, atau dikenal sebagai NEMA 5-15P.

- Lepaskan kabel agar tembaga sekitar 3mm terlihat di semua kabel.

Berikut adalah video tutorial singkat tentang cara mengupas kabel:

Langkah 4: Menghubungkan Catu Daya

Menghidupkan ke ESP32S
Menghidupkan ke ESP32S

Sekarang kami siap untuk memasang catu daya kami!

Selalu cabut catu daya setiap kali bekerja di atasnya.

Pengkabelan

  • Kabel hitam (Fase) terhubung ke pin 'L' catu daya
  • Kabel putih (Netral) terhubung ke pin 'N' catu daya
  • Kabel hijau terhubung ke pin 'Ground' catu daya

(Jika kabel interior kabel daya Anda tidak memiliki warna yang sama dengan kabel kami, aman dan lihat skemanya secara online.)

Pengujian

Colokkan kabel daya komputer ke stopkontak mana pun. LED hijau pada catu daya harus menyala.

Langkah 5: Menghidupkan ke ESP32S

Melihat ESP Anda, seharusnya ada label di samping setiap pin. Jika tidak diberi label, Anda dapat mencari 'pinout' ESP individual Anda secara online.

Menggunakan kabel jumper papan tempat memotong roti pria ke wanita atau kabel listrik, sambungkan:

  • Pin ESP32S '5V' ke '+V' catu daya (oranye pada foto di atas)
  • Pin ESP32S 'GND' ke bagian '-V' dari catu daya (hitam pada foto di atas)

(Pada beberapa ESP, pin '5V' diberi label sebagai 'VCC', keduanya memiliki arti yang sama.)

Harap dicatat bahwa ESP Anda mungkin memiliki 'pinout' yang berbeda dari yang kami gunakan. Dengan demikian Anda mungkin menghubungkan kabel Anda ke lokasi yang berbeda dari pada gambar di atas. Selama Anda menghubungkan ke pin yang benar (5V & GND), lokasi fisik di papan tidak masalah.

TestingPlug di power supply Anda lagi, dan jika ESP Anda memiliki indikator LED (kebanyakan), itu akan menyala untuk menunjukkan daya sedang dikirim ke ESP. Selamat!

Langkah 6: Menghidupkan Strip Lampu LED

Menghidupkan Strip Lampu LED
Menghidupkan Strip Lampu LED

Menggunakan kabel listrik:

- Hubungkan kabel merah Strip Lampu LED ke V+ pada catu daya.

- Hubungkan kabel biru Strip Lampu LED ke V- pada catu daya.

Langkah 7: Menghubungkan ESP32 ke Strip Lampu LED

ESP32 kami menginstruksikan driver WS2811 yang terhubung ke setiap led warna dan kecerahan yang mereka butuhkan. Untuk melakukannya, ESP32 kami memerlukan kabel "data" ke strip.

Strip Led dilengkapi dengan konektor 3 kawat:

- Merah: Power- Biru: Netral- Putih: Data

Mari kita hubungkan kabel strip Led Putih ke pin digital pada ESP. Harap diingat nomor PIN yang dipilih karena kami akan perlu memilihnya dalam kode nanti. Kami mencolokkan milik kami ke pin 13.

Langkah 8: Mempersiapkan Komputer: Driver C2102

Sekarang perangkat keras kami terhubung, kami ingin mengunggah kode pertama kami untuk mengujinya. Secara default, Windows atau MacOs tidak dapat berkomunikasi dengan ESP32 kami. Untuk melakukannya, kami perlu mengunduh "driver" untuk chip komunikasi USB ESP: C2102.

Driver ini harus diunduh dan diinstal:

- Windows 10: https://www.silabs.com/documents/public/software/C…- Windows 7/8/8.1: https://www.silabs.com/documents/public/software/C…- Mac:

(Tautan per 7/10/2019)

Langkah 9: Perangkat Lunak Arduino - Menambahkan Dukungan ESP32 - Langkah 1

Perangkat Lunak Arduino - Menambahkan Dukungan ESP32 - Langkah 1
Perangkat Lunak Arduino - Menambahkan Dukungan ESP32 - Langkah 1
Perangkat Lunak Arduino - Menambahkan Dukungan ESP32 - Langkah 1
Perangkat Lunak Arduino - Menambahkan Dukungan ESP32 - Langkah 1

Sebelum kita dapat menggunakan ESP32 dengan perangkat lunak Arduino, kita perlu memastikan bahwa itu dikenali. Secara default, perangkat lunak Arduino tidak dapat mengkompilasi kode untuk ESP32 kita, mari kita perbaiki:

Langkah 1: Menambahkan papan ke manajer

1 - Klik di Arduino opsi File >> Preferences

2- Di bidang "URL Manajer Papan Tambahan", salin tautan berikut:

Langkah 10: Perangkat Lunak Arduino - Menambahkan Dukungan ESP32 - Langkah 2

Perangkat Lunak Arduino - Menambahkan Dukungan ESP32 - Langkah 2
Perangkat Lunak Arduino - Menambahkan Dukungan ESP32 - Langkah 2
Perangkat Lunak Arduino - Menambahkan Dukungan ESP32 - Langkah 2
Perangkat Lunak Arduino - Menambahkan Dukungan ESP32 - Langkah 2

Sekarang perangkat lunak Arduino "tahu" lebih banyak papan, mari instal dukungan ESP32 kami

Langkah 2: Menginstal dukungan ESP32

1 - Di menu atas, pilih: Tools >> Board >> Boards Manager

2 - Sebuah jendela akan muncul. Gunakan kotak pencarian, yang terletak di sudut kanan atas, untuk menemukan "ESP32".

3 - Cari yang dibuat oleh espressif. Instal. (Lihat gambar)

Langkah 11: Perangkat Lunak Arduino - Menambahkan Dukungan ESP32 - Langkah 3

Perangkat Lunak Arduino - Menambahkan Dukungan ESP32 - Langkah 3
Perangkat Lunak Arduino - Menambahkan Dukungan ESP32 - Langkah 3

Sekarang perangkat lunak Arduino dapat berkomunikasi dengan ESP32 kami, mari colokkan ke komputer dan verifikasi bahwa semuanya berfungsi.

1 - Pastikan kita bekerja pada platform ESP32:

Klik Tools >> Board >> ESP32 Dev Module

1- Mari kita pastikan bahwa perangkat lunak Arduino tahu bagaimana berkomunikasi dengan ESP kita:

Klik Tools >> Port dan pilih salah satu yang muncul dari mencolokkan kabel ini.

Penting:

Jika Anda memiliki masalah dalam mengunggah kode ke ESP Anda, periksa kedua menu itu terlebih dahulu. Jika port tidak dipilih dengan tanda centang, maka perangkat lunak Arduino tidak akan berkomunikasi dengannya.

Langkah 12: Menambahkan Perpustakaan ke Arduino IDE

Menambahkan Perpustakaan ke Arduino IDE
Menambahkan Perpustakaan ke Arduino IDE

Sekarang kita akan menambahkan perpustakaan yang memungkinkan kita menguji Dinding Led kita!

1- Klik Alat >> Kelola Perpustakaan.

2- Di sudut kanan atas, cari NeoPixelBus. Cari "NeoPixelBus by Makuna", instal (lihat gambar)

Potensi Perpustakaan menarik lainnya:(Tidak diperlukan untuk tutorial ini)

- NeoMatrix

- LED Cepat

- Artnet

- GFX

Langkah 13: Kode Pertama: Uji Strand

Kode pertama kami adalah contoh dari Library.

Anda dapat menyalin / menempelkan kode di bawah ini atau mengklik:

File >> Contoh >> Adafruit NeoPixelBus >> Strandtest

Pastikan untuk mengubah LED_PIN Anda ke yang Anda gunakan untuk menghubungkan LED Anda secara fisik. Kami menggunakan 13 sepanjang tutorial ini.

Pastikan juga untuk menyesuaikan ukuran untaian dengan variabel LED_COUNT.

// Program Striptest LED sehari-hari dasar.

#include#ifdef _AVR_ #include // Diperlukan untuk Adafruit Trinket 16 MHz #endif // Pin mana pada Arduino yang terhubung ke NeoPixels? #define LED_PIN 13 // Berapa banyak NeoPixels yang terpasang ke Arduino? #define LED_COUNT 500 // Deklarasikan objek strip NeoPixel kami: Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Argumen 1 = Jumlah piksel dalam strip NeoPixel // Argumen 2 = Nomor pin Arduino (sebagian besar valid) // Argumen 3 = Bendera jenis piksel, tambahkan sesuai kebutuhan: // NEO_KHZ800 800 KHz bitstream (sebagian besar produk NeoPixel w/ WS2812 LEDs) // NEO_KHZ400 400 KHz (piksel FLORA klasik 'v1' (bukan v2), driver WS2811) // NEO_GRB Piksel disambungkan untuk bitstream GRB (sebagian besar produk NeoPixel) // Piksel NEO_RGB disambungkan untuk bitstream RGB (piksel FLORA v1, bukan v2) // NEO_RGBW Piksel disambungkan untuk bitstream RGBW (produk NeoPixel RGBW) // fungsi setup() -- berjalan sekali saat startup -------------------- ------------ void setup() { // Baris-baris ini khusus untuk mendukung Adafruit Trinket 5V 16 MHz. // Papan lainnya, Anda dapat menghapus bagian ini (tetapi tidak ada salahnya meninggalkannya): #if didefinisikan(_AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // END dari kode khusus Trinket. strip.mulai(); // INITIALIZE NeoPixel strip objek (DIPERLUKAN) strip.show(); // Matikan semua piksel ASAP strip.setBrightness(50); // Atur BRIGHTNESS menjadi sekitar 1/5 (maks = 255) } // fungsi loop() -- berjalan berulang kali selama board aktif --------------- void loop() { // Isi sepanjang strip dengan berbagai warna… colorWipe(strip. Color(255, 0, 0), 50); // Warna merahHapus(strip. Warna(0, 255, 0), 50); // Warna hijauHapus(strip. Warna(0, 0, 255), 50); // Biru // Buat efek teater dalam berbagai warna… theaterChase(strip. Color(127, 127, 127), 50); // White, setengah kecerahan theaterChase(strip. Color(127, 0, 0), 50); // Merah, setengah kecerahan theaterChase(strip. Color(0, 0, 127), 50); // Biru, pelangi setengah kecerahan (10); // Siklus pelangi yang mengalir di sepanjang strip theaterChaseRainbow(50); // Varian theatreChase yang disempurnakan dengan pelangi } // Beberapa fungsi kita sendiri untuk membuat efek animasi ----------------- // Mengisi piksel strip satu demi satu dengan warna. Strip TIDAK dihapus // pertama; apa pun di sana akan tertutup piksel demi piksel. Berikan warna // (sebagai nilai 32-bit 'dikemas' tunggal, yang bisa Anda dapatkan dengan memanggil // strip. Color(red, green, blue) seperti yang ditunjukkan pada fungsi loop() di atas), // dan a waktu tunda (dalam milidetik) antar piksel. void colorWipe(uint32_t color, int wait) { for(int i=0; i strip.setPixelColor(i, color); // Atur warna piksel (dalam RAM) strip.show(); // Perbarui strip agar sesuai dengan delay(wait); // Berhenti sejenak } } // Lampu kejar gaya teater-marquee. Berikan warna (nilai 32-bit, // a la strip. Warna(r, g, b) seperti yang disebutkan di atas), dan waktu tunda (dalam ms) // antar frame.void theaterChase(uint32_t color, int wait) { for(int a=0; a<10; a++) { // Ulangi 10 kali… for(int b=0; b<3; b++) { // 'b' menghitung dari 0 hingga 2… strip.clear(); // Mengatur semua piksel dalam RAM ke 0 (mati) // 'c' menghitung dari 'b' hingga akhir strip dalam langkah 3… for(int c=b; c strip.setPixelColor(c, color); // Setel piksel 'c' ke nilai 'warna' } strip.show(); // Perbarui strip dengan penundaan konten baru (tunggu); // Jeda sejenak } } } // Siklus pelangi di sepanjang strip. Lewati waktu tunda (dalam md) antar bingkai. void rainbow(int wait) { // Rona piksel pertama menjalankan 5 loop lengkap melalui roda warna. // Roda warna memiliki kisaran 65536 tetapi itu OK jika kita berguling, jadi // hitung saja dari 0 hingga 5*65536. Menambahkan 256 ke firstPixelHue setiap kali // berarti kita akan membuat 5*65536/256 = 1280 melewati loop luar ini: for(long firstPixelHue = 0; firstPixelHue < 5*65536; firstPixelHue += 256) { for(int i= 0; I // Offset rona piksel dengan jumlah untuk membuat satu putaran penuh // roda warna (kisaran 65536) sepanjang strip // (strip.numPixels() langkah): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels()); // strip. ColorHSV() dapat mengambil 1 atau 3 argumen: hue (0 hingga 65535) atau // opsional menambahkan saturasi dan nilai (kecerahan) (masing-masing 0 hingga 255). // Di sini kita hanya menggunakan varian rona argumen tunggal. Hasilnya // diteruskan melalui strip.gamma32() untuk memberikan warna 'lebih benar' // sebelum menetapkan ke setiap piksel: strip.setPixelColor(i, strip.gamma32 (strip. ColorHSV(pixelHue))); } strip.show(); // Perbarui strip dengan konten baru delay(tunggu); // Jeda sejenak } } // Tenda teater yang disempurnakan dengan pelangi. Lewati waktu tunda (dalam ms) antar frame. void theaterChaseRainbow(int wait) { i nt firstPixelHue = 0; // Piksel pertama dimulai dengan warna merah (hue 0) for(int a=0; a<30; a++) { // Ulangi 30 kali… for(int b=0; b RGB strip.setPixelColor(c, color); / / Atur piksel 'c' ke nilai 'warna' } strip.show(); // Perbarui strip dengan konten baru delay(tunggu); // Jeda sejenak duluPixelHue += 65536 / 90; // Satu siklus roda warna lebih dari 90 bingkai } } }

Langkah 14: Kode Contoh SHU

Image
Image

Kode kami menyalakan semua Led satu per satu untuk memastikannya berfungsi:

// Contoh ini akan menggilir antara menampilkan 500 piksel sebagai Merah

#includeconst uint16_t PixelCount = 500; // contoh ini mengasumsikan 4 piksel, membuatnya lebih kecil akan menyebabkan kegagalan const uint8_t PixelPin = 13; // pastikan untuk menyetel ini ke pin yang benar, diabaikan untuk Esp8266

#define colorSaturation 128// tiga elemen piksel, dalam urutan dan kecepatan yang berbeda

Strip NeoPixelBus (PixelCount, PixelPin);

//NeoPixelBus strip(PixelCount, PixelPin); RgbWarna merah (0, saturasi warna, 0); RgbWarna hijau(Saturasi warna, 0, 0); RgbWarna biru (0, 0, saturasi warna); RgbWarna putih(WarnaSaturasi); RGBWarna hitam(0); HslWarna hslMerah(merah); HslWarna hslHijau(hijau); HslWarna hslBiru(biru); HslWarna hslPutih(putih); HslWarna hslHitam(hitam); void setup() { Serial.begin(115200) while (!Serial); // tunggu serial melampirkan Serial.println(); Serial.println("Inisialisasi…"); Serial.flush(); // ini me-reset semua neopiksel ke status off strip. Begin(); strip. Tampilkan(); Serial.println(); Serial.println("Berjalan…"); } void loop() { delay(100); Serial.println("Warna R, G, B, W…"); for(int i = 0; i <=499;i++){ // mengatur warna, // jika tidak sesuai urutan, Anda perlu menggunakan strip fitur NeoGrbFeature. SetPixelColor(i, red);strip. Show (); penundaan(100); strip. SetPixelColor(i, hslRed); strip. Tampilkan(); penundaan(100); }}

Langkah 15: Mengunggah Kode ke ESP32

Penting:

Untuk dapat mengunggah kode ke pengontrol mikro apa pun, kode tersebut harus dalam mode pemrograman. Sebagian besar melakukan ini secara otomatis dan yang harus Anda lakukan hanyalah mengklik unggah di perangkat lunak.

ESP32 kami mengharuskan Anda untuk menahan tombol pemrograman saat kode sedang dikirim. Anda juga perlu mengatur ulang setelah kode diunggah dengan menekan satu kali tombol reset.

Tombol pemrograman ESP32 kami terletak di sebelah kiri, tombol reset di sebelah kanan. Silakan merujuk ke manual Anda jika Anda memiliki mikrokontroler lain.

Langkah 16: Kutipan

Instruksi ini dibuat dengan bantuan tutorial berikut:

randomnerdtutorials.com/installing-the-esp…

Digunakan untuk menginstal ESP32 ke Arduino IDE.

Penulis:

Nathaniel BaroneGabriel Castro

Editor:

Cedric Bleimling

Direkomendasikan: