Isi kandungan:

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

Hai semua! Pada akhir tutorial ini, anda akan mengetahui cara membuat dinding LED anda sendiri.

Tutorial ini berdasarkan pada program musim panas yang ditawarkan di Sacred Heart University.

Berseronok!

Bekalan

Bekalan disenaraikan di bawah.

Langkah 1: Bekalan

Bekalan
Bekalan

Mari mulakan dengan mengumpulkan semua yang kami perlukan untuk menyelesaikan Led Wall kami:

(Pautan dibuat pada 7/10/2019)

Perisian Arduino IDE

Pengawal Mikro ESP32

Lampu Piksel LED

Bekalan Kuasa

Kabel kuasa

Alat Pelucut Kawat

Kabel Jumper Breadboard

Wayar elektrik

Langkah 2: Menentukan Bekalan Kuasa yang Tepat untuk LedWall Anda

Terdapat kaedah matematik yang mudah untuk mengetahui bekalan kuasa mana yang terbaik untuk anda gunakan.

Kami menggunakan undang-undang kuasa Ohm: P = IxV (Daya = Intensiti x Voltan)

Voltan ditentukan oleh led kami: dalam kes ini 5V.

Intensiti bergantung pada perkakasan, satu LED menggunakan 30mA.

Oleh itu, setiap jalur 50 Leds menggunakan 50 x 30mA = 1250mA = 1.25A.

Oleh itu, dinding Led 500 kami menggunakan 10 kali ganda (10 jalur): 12.5A.

Penggunaan kuasa adalah 5V x 12.5A = 62.5W untuk Leds.

Sudah tentu, di atas Leds anda perlu mengambil kira ESP dan setiap item lain dari rangkaian anda.

Kami mempunyai bekalan kuasa 60A, kami mempunyai lebih banyak daripada yang kami perlukan.

Langkah 3: Kabel Kuasa

Image
Image

Bekalan kuasa kami dilengkapi dengan penyambung wayar. Kita perlu menyesuaikan kabel kuasa untuk menyambungkannya ke palam 110V.

- Potong penyambung wanita dari kabel kuasa. Kami akan menjaga bahagian lelaki, atau dikenali sebagai NEMA 5-15P.

- Tanggalkan kabel agar tembaga kira-kira 3mm dapat dilihat pada semua wayar.

Berikut adalah tutorial video ringkas mengenai cara menanggalkan wayar:

Langkah 4: Memasang Bekalan Kuasa

Menghidupkan ESP32S
Menghidupkan ESP32S

Sekarang kita bersedia untuk memasang bekalan kuasa kita!

Sentiasa cabut bekalan elektrik semasa mengerjakannya.

Pendawaian

  • Kawat hitam (Fasa) menyambung ke pin 'L' bekalan kuasa
  • Kawat putih (Neutral) menyambung ke pin 'N' bekalan kuasa
  • Kawat hijau menyambung ke pin 'Ground' bekalan kuasa

(Sekiranya wayar dalaman kabel kuasa anda tidak sama dengan warna kita, selamat dan cari skema secara dalam talian.)

Ujian

Pasang kabel kuasa komputer ke mana-mana soket elektrik. LED hijau pada bekalan kuasa harus menyala.

Langkah 5: Menghidupkan ESP32S

Melihat ESP anda mesti ada label di sebelah setiap pin. Jika tidak berlabel anda boleh mencari 'pinout' ESP individu anda secara dalam talian.

Dengan menggunakan wayar jumper papan roti lelaki atau wanita atau wayar elektrik, sambungkan:

  • Pin ESP32S '5V' ke '+ V' bekalan kuasa (oren pada foto di atas)
  • Pin 'GND' ESP32S ke bahagian '-V' dari bekalan kuasa (hitam pada foto di atas)

(Pada beberapa ESP, pin '5V' dilabel sebagai 'VCC' sebagai gantinya, kedua-duanya bermaksud perkara yang sama.)

Harap maklum bahawa ESP anda mungkin mempunyai 'pinout' yang berbeza daripada yang kami gunakan. Oleh itu, anda mungkin menghubungkan wayar anda ke lokasi yang berbeza daripada pada gambar di atas. Selagi anda menyambung ke pin yang betul (5V & GND), lokasi fizikal di papan tidak menjadi masalah.

Uji Pasang kembali bekalan kuasa anda, dan jika ESP anda mempunyai penunjuk LED (yang paling banyak), lampu akan menyala untuk menunjukkan kuasa dihantar ke ESP. Tahniah!

Langkah 6: Menghidupkan Jalur Lampu LED

Menghidupkan Jalur Lampu LED
Menghidupkan Jalur Lampu LED

Menggunakan wayar elektrik:

- Sambungkan wayar merah Jalur Cahaya LED ke V + pada bekalan kuasa.

- Sambungkan wayar biru Jalur Cahaya LED ke V- pada bekalan kuasa.

Langkah 7: Menyambungkan ESP32 ke Jalur Lampu LED

ESP32 kami mengarahkan pemandu WS2811 yang disambungkan ke masing-masing warna dan kecerahan yang diperlukan. Untuk melakukannya, ESP32 kami memerlukan kabel "data" ke jalur.

Jalur Leds dilengkapi dengan penyambung 3 wayar:

- Merah: Kuasa- Biru: Neutral- Putih: Data

Mari sambungkan kabel jalur White Led ke pin digital pada ESP. Harap ingat nombor PIN yang dipilih kerana kami perlu memilihnya dalam kod kemudian. Kami memasang pin kami ke pin 13.

Langkah 8: Menyiapkan Komputer: Pemacu C2102

Setelah perkakasan kami berwayar, kami ingin memuat naik kod pertama kami untuk mengujinya. Secara lalai, Windows atau MacO tidak dapat berkomunikasi dengan ESP32 kami. Untuk melakukannya, kami perlu memuat turun "pemacu" untuk cip komunikasi USB ESP: C2102.

Pemacu ini mesti dimuat turun dan dipasang:

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

(Pautan pada 7/10/2019)

Langkah 9: Perisian Arduino - Menambah Sokongan ESP32 - Langkah 1

Perisian Arduino - Menambah Sokongan ESP32 - Langkah 1
Perisian Arduino - Menambah Sokongan ESP32 - Langkah 1
Perisian Arduino - Menambah Sokongan ESP32 - Langkah 1
Perisian Arduino - Menambah Sokongan ESP32 - Langkah 1

Sebelum kita dapat menggunakan ESP32 kita dengan perisian Arduino, kita perlu memastikannya dikenali. Secara lalai, perisian Arduino tidak dapat menyusun kod untuk ESP32 kita, mari kita perbaiki:

Langkah 1: Menambah papan ke pengurus

1 - Klik di Arduino pilihan Fail >> Keutamaan

2- Di bidang "URL Pengurus Papan Tambahan", salin pautan berikut:

Langkah 10: Perisian Arduino - Menambah Sokongan ESP32 - Langkah 2

Perisian Arduino - Menambah Sokongan ESP32 - Langkah 2
Perisian Arduino - Menambah Sokongan ESP32 - Langkah 2
Perisian Arduino - Menambah Sokongan ESP32 - Langkah 2
Perisian Arduino - Menambah Sokongan ESP32 - Langkah 2

Sekarang kerana perisian Arduino "tahu" lebih banyak papan, mari pasang sokongan ESP32 kami

Langkah 2: Memasang sokongan ESP32

1 - Di menu atas, pilih: Alat >> Papan >> Pengurus Papan

2 - Tetingkap akan muncul. Gunakan kotak carian, yang terletak di sudut kanan atas, untuk mencari "ESP32".

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

Langkah 11: Perisian Arduino - Menambah Sokongan ESP32 - Langkah 3

Perisian Arduino - Menambah Sokongan ESP32 - Langkah 3
Perisian Arduino - Menambah Sokongan ESP32 - Langkah 3

Sekarang kerana perisian Arduino dapat berkomunikasi dengan ESP32 kami, mari pasangkannya ke komputer dan sahkan bahawa semuanya berfungsi.

1 - Mari kita pastikan bahawa kita bekerja di platform ESP32:

Klik pada Alat >> Papan >> Modul Dev ESP32

1- Pastikan perisian Arduino mengetahui cara berkomunikasi dengan ESP kami:

Klik pada Tools >> Port dan pilih yang muncul dari memasang kabel ini.

Penting:

Sekiranya anda mempunyai masalah memuat naik kod ke ESP anda, periksa kedua menu tersebut terlebih dahulu. Sekiranya port tidak dipilih dengan tanda semak, maka perisian Arduino tidak akan berkomunikasi dengannya.

Langkah 12: Menambah Perpustakaan ke Arduino IDE

Menambah Perpustakaan ke Arduino IDE
Menambah Perpustakaan ke Arduino IDE

Sekarang kita akan menambah perpustakaan yang membolehkan kita menguji Led Wall kita!

1- Klik pada Alat >> Urus Perpustakaan.

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

Potensi Perpustakaan lain yang menarik: (Tidak diperlukan untuk tutorial ini)

- NeoMatrix

- FastLed

- Artnet

- GFX

Langkah 13: Kod Pertama: Ujian Strand

Kod pertama kami adalah contoh dari Perpustakaan.

Anda boleh menyalin / menampal kod di bawah atau klik:

Fail >> Contoh >> Adafruit NeoPixelBus >> Strandtest

Pastikan untuk menukar LED_PIN anda ke yang anda gunakan untuk menyambungkan led anda secara fizikal. Kami menggunakan 13 sepanjang tutorial ini.

Pastikan juga menyesuaikan ukuran helai dengan pemboleh ubah LED_COUNT.

// Program Striptest LED asas setiap hari.

# include # ifdef _AVR_ #include // Diperlukan untuk Adafruit Trinket 16 MHz #endif // Pin mana di Arduino yang disambungkan ke NeoPixels? #define LED_PIN 13 // Berapa banyak NeoPixels yang dilekatkan pada Arduino? #define LED_COUNT 500 // Nyatakan objek jalur NeoPixel kami: Jalur Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Argumen 1 = Jumlah piksel dalam jalur NeoPixel // Argumen 2 = Nombor pin Arduino (kebanyakannya sah) // Argumen 3 = Bendera jenis piksel, tambahkan bersama-sama jika diperlukan: // NEO_KHZ800 bitstream 800 KHz (kebanyakan produk NeoPixel tanpa / WS2812 LED) // NEO_KHZ400 400 KHz (piksel FLORA klasik 'v1' (bukan v2), pemacu WS2811) // Piksel NEO_GRB dikabelkan untuk aliran bit GRB (kebanyakan produk NeoPixel) // Piksel NEO_RGB disambungkan untuk piksel bit RGB (piksel vOR FLORA, bukan v2) // NEO_RGBW Pixel dikabelkan untuk aliran bit RGBW (produk NeoPixel RGBW) // fungsi () - berjalan sekali semasa permulaan -------------------- ------------ persediaan kosong () {// Garis-garis ini khusus untuk menyokong Adafruit Trinket 5V 16 MHz. // Mana-mana papan lain, anda boleh membuang bahagian ini (tetapi tidak ada salahnya meninggalkannya): #jika ditentukan (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // TAMAT kod khusus perhiasan. jalur.begin (); // INISIASI objek NeoPixel strip (DIPERLUKAN) strip.show (); // Matikan semua piksel ASAP strip.setBrightness (50); // Tetapkan BRIGHTNESS kepada kira-kira 1/5 (maks = 255)} // fungsi gelung () - berjalan berulang kali selagi papan dihidupkan --------------- gelung kosong () {// Isi sepanjang jalur dalam pelbagai warna … colorWipe (strip. Color (255, 0, 0), 50); // Warna merah Lap (jalur. Warna (0, 255, 0), 50); // Warna hijau Lap (jalur. Warna (0, 0, 255), 50); // Biru // Adakah kesan teater dalam pelbagai warna … theatreChase (strip. Color (127, 127, 127), 50); // Putih, separuh kecerahan teaterChase (jalur. Warna (127, 0, 0), 50); // Merah, teater separuh kecerahanChase (jalur. Warna (0, 0, 127), 50); // Pelangi biru, separuh terang (10); // Mengitar kitaran pelangi di sepanjang teater jalurChaseRainbow (50); // Varian teater yang disempurnakan pelangi} // Beberapa fungsi kita sendiri untuk mencipta kesan animasi ----------------- // Isi piksel jalur satu demi satu dengan warna. Jalur TIDAK dibersihkan // pertama; apa sahaja yang akan dilindungi piksel demi piksel. Masukkan warna // (sebagai nilai 32-bit 'dikemas' tunggal, yang dapat anda dapatkan dengan memanggil // strip. Warna (merah, hijau, biru) seperti yang ditunjukkan dalam fungsi gelung () di atas), // dan a masa kelewatan (dalam milisaat) antara piksel. void colorWipe (uint32_t color, int waiting) {untuk (int i = 0; i strip.setPixelColor (i, color); // Tetapkan warna piksel (dalam RAM) jalur. tunjukkan (); // Kemas kini jalur agar sesuai dengan kelewatan (tunggu); // Berhenti sebentar}} // Lampu mengejar gaya teater-tenda. Lulus dengan warna (nilai 32-bit, // a la strip. Warna (r, g, b) seperti yang disebutkan di atas), dan masa kelewatan (dalam ms) // antara bingkai. batal theatreChase (warna uint32_t, int waiting) {untuk (int a = 0; a <10; a ++) {// Ulangi 10 kali… untuk (int b = 0; b <3; b ++) {// kiraan 'b' dari 0 hingga 2 … strip.clear (); // Tetapkan semua piksel dalam RAM ke 0 (mati) // Kiraan 'c' naik dari 'b' hingga akhir jalur dalam langkah 3… untuk (int c = b; c strip.setPixelColor (c, color); // Tetapkan piksel 'c' ke nilai 'warna'} strip.show (); // Kemas kini jalur dengan kelewatan kandungan baru (tunggu); // Berhenti sebentar}}} // Putaran pelangi di sepanjang jalur. Melewati masa kelewatan (dalam ms) antara bingkai. pelangi kosong (int menunggu) {// Warna piksel pertama menjalankan 5 gelung lengkap melalui roda warna. // Roda warna mempunyai julat 65536 tetapi sebenarnya OK jika kita berguling, jadi // hitung 0 hingga 5 * 65536. Menambah 256 ke FirstPixelHue setiap kali // bermaksud kita akan membuat 5 * 65536/256 = 1280 melewati gelung luar ini: untuk (firstPixelHue = 0; firstPixelHue <5 * 65536 panjang; firstPixelHue + = 256) {untuk (int i = 0; I // Mengimbangi rona piksel dengan jumlah untuk menjadikan satu putaran penuh roda warna // (julat 65536) sepanjang panjang jalur // (jalur.numPixels () langkah): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels ()); // strip. ColorHSV () boleh mengambil 1 atau 3 argumen: rona (0 hingga 65535) atau // secara opsional menambah tepu dan nilai (kecerahan) (masing-masing 0 hingga 255). // Di sini kami hanya menggunakan varian rona tunggal argumen. Hasilnya // diteruskan melalui strip.gamma32 () untuk memberikan warna 'lebih benar' // sebelum menetapkan setiap piksel: strip.setPixelColor (i, strip.gamma32 (strip. ColorHSV (pixelHue)));} strip.show (); // Kemas kini jalur dengan kelewatan kandungan baru (tunggu); // Berhenti sebentar}} // Tenda teater yang disempurnakan pelangi. Lulus masa kelewatan (dalam ms) antara bingkai. teater kosongChaseRainbow (int waiting) {i nt pertamaPixelHue = 0; // Piksel pertama bermula pada warna merah (rona 0) untuk (int a = 0; a <30; a ++) {// Ulangi 30 kali … untuk (int b = 0; b RGB strip.setPixelColor (c, color); / / Tetapkan piksel 'c' ke nilai 'warna'} strip.show (); // Kemas kini jalur dengan kelewatan kandungan baru (tunggu); // Berhenti sebentar duluPixelHue + = 65536/90; // Satu pusingan roda warna lebih daripada 90 bingkai}}}

Langkah 14: Kod Contoh SHU

Image
Image

Kod kami menghidupkan semua Leds satu demi satu untuk memastikannya berfungsi:

// Contoh ini akan berpusing antara menunjukkan 500 piksel sebagai Merah

#includeconst uint16_t PixelCount = 500; // contoh ini menganggap 4 piksel, menjadikannya lebih kecil akan menyebabkan kegagalan const uint8_t PixelPin = 13; // pastikan untuk menetapkan ini ke pin yang betul, diabaikan untuk Esp8266

#define colorSaturation 128 // tiga elemen piksel, dalam urutan dan kelajuan yang berbeza

Jalur NeoPixelBus (PixelCount, PixelPin);

// Jalur NeoPixelBus (PixelCount, PixelPin); RgbColor red (0, ColorSaturation, 0); RgbWarna hijau (ketepuan warna, 0, 0); RgbColor blue (0, 0, ColorSaturation); RgbWarna putih (Ketepuan warna); RgbWarna hitam (0); HslColor hslRed (merah); HslColor hslGreen (hijau); HslColor hslBlue (biru); HslColor hslWhite (putih); HslColor hslBlack (hitam); batal persediaan () {Serial.begin (115200) sementara (! Serial); // tunggu lampirkan siri Serial.println (); Serial.println ("Memulakan…"); Serial.flush (); // ini menetapkan semula semua neopixel ke jalur keadaan mati. Mulakan (); jalur. Tunjukkan (); Bersiri.println (); Serial.println ("Berlari …"); } gelung kosong () {kelewatan (100); Serial.println ("Warna R, G, B, W …"); untuk (int i = 0; i <= 499; i ++) {// tetapkan warnanya, // jika tidak sesuai, anda perlu menggunakan jalur ciri NeoGrbFeature. SetPixelColor (i, red); strip. Show (); kelewatan (100); strip. SetPixelColor (i, hslRed); jalur. Tunjukkan (); kelewatan (100); }}

Langkah 15: Memuat naik Kod ke ESP32

Penting:

Untuk dapat memuat naik kod ke mana-mana pengawal mikro, perlu berada dalam mod pengaturcaraan. Kebanyakan melakukan ini secara automatik dan yang perlu anda lakukan ialah klik muat naik di perisian.

ESP32 kami menghendaki anda menahan butang pengaturcaraan semasa kod dihantar. Anda juga perlu menetapkannya semula setelah kod diunggah dengan menekan sekali butang reset.

Butang pengaturcaraan ESP32 kami terletak di sebelah kiri, butang reset di sebelah kanan. Lihat manual anda jika anda mempunyai pengawal mikro yang lain.

Langkah 16: Petikan

Instruksional ini dibuat dengan bantuan tutorial berikut:

randomnerdtutorials.com/installing-the-esp…

Digunakan untuk memasang ESP32 ke Arduino IDE.

Pengarang:

Nathaniel BaroneGabriel Castro

Penyunting:

Cedric Bleimling

Disyorkan: