Search Code

Tutorial ESP32 12/55 - Proyek 4 Strip RGB WS2812 dengan kit Pembelajaran IoT ESP32 dari SunFounder

Tutorial ESP32 12/55 - Proyek 4 Strip RGB WS2812 dengan kit Pembelajaran IoT ESP32 dari SunFounder

Dalam tutorial ini, kita akan mempelajari cara mengontrol strip LED WS2812 menggunakan mikrokontroler ESP32. Proyek ini memungkinkan Anda untuk membuat berbagai macam warna dan mengontrol setiap LED secara individual, memberikan cara yang menyenangkan dan menarik secara visual untuk belajar tentang pemrograman dan elektronika. Di akhir tutorial ini, Anda akan memiliki pengaturan yang berfungsi penuh yang dapat mengubah warna dan pola secara dinamis.

SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422

Dengan menggunakan mikrokontroler ESP32 dari SunFounder, yang memiliki kemampuan Wi-Fi dan Bluetooth bawaan, kita dapat dengan mudah menghubungkan dan mengontrol strip LED RGB WS2812. Fleksibilitas strip LED ini memungkinkan aplikasi kreatif, baik untuk pencahayaan dekoratif maupun proyek pendidikan. Untuk pemahaman yang lebih baik tentang langkah-langkah yang terlibat, Anda dapat merujuk ke video di (dalam video pada 00:00).

Penjelasan Perangkat Keras

Komponen utama untuk proyek ini termasuk mikrokontroler ESP32 dan strip LED WS2812. ESP32 adalah mikrokontroler yang kuat yang dapat melakukan tugas-tugas yang mirip dengan Arduino, tetapi dengan opsi konektivitas tambahan. Ini memiliki serangkaian fitur yang kaya yang memungkinkannya terhubung ke cloud, memungkinkan kontrol jarak jauh dan pencatatan data.

Strip LED WS2812 terdiri dari LED RGB yang dapat dialamatkan secara individual, yang berarti setiap LED dapat dikontrol untuk menampilkan warna yang berbeda. Strip ini beroperasi pada protokol kabel tunggal, memungkinkan banyak LED dirangkai bersama tanpa kehilangan kualitas sinyal. Setiap LED berisi driver bawaan yang mengambil sinyal input dan memperkuatnya untuk LED berikutnya dalam rantai.

Detail Datasheet

Pabrikan Worldsemi
Nomor bagian WS2812
Tegangan logika/IO 3,5–5,3 V
Tegangan suplai 5 V
Arus keluaran (per saluran) 20 mA maks
Arus puncak (per saluran) 60 mA maks
Panduan frekuensi PWM 400 Hz
Ambang batas logika input 0,3 x VDD hingga 0,7 x VDD
Penurunan tegangan / RDS(on) / saturasi 0,5 V maks
Batas termal -25 hingga 80 °C
Kemasan 5050
Catatan / varian Dapat dirangkai untuk strip yang lebih panjang

 

  • Pastikan catu daya yang tepat (5 V) untuk menghindari kerusakan LED.
  • Gunakan kapasitor (100 µF) di terminal catu daya untuk meratakan lonjakan tegangan.
  • Jaga kabel data tetap pendek untuk mengurangi degradasi sinyal.
  • Berhati-hatilah dengan suhu LED; pastikan pembuangan panas yang tepat.
  • Perhatikan polaritas yang benar saat menghubungkan daya dan ground.
  • Gunakan resistor pull-up pada jalur data jika menggunakan strip yang panjang.

Instruksi Pengkabelan

ESP32-12-WS2812-wiring

Untuk menghubungkan strip LED WS2812 ke ESP32, mulailah dengan menghubungkan catu daya. Kabel +5V dari strip LED harus dihubungkan ke pin 5V pada ESP32, dan kabel ground (GND) harus dihubungkan ke salah satu pin GND pada ESP32.

Selanjutnya, hubungkan kabel input data dari strip LED ke pin 14 pada ESP32. Pastikan koneksi aman untuk memastikan transmisi data yang tepat. Jika Anda menggunakan beberapa strip atau jarak yang lebih jauh, pertimbangkan untuk menggunakan level shifter untuk memastikan integritas sinyal. Pengaturan ini akan memungkinkan Anda untuk mengontrol strip LED secara langsung dari ESP32.

Contoh Kode & Penjelasan

Kode ini menggunakan pustaka Adafruit NeoPixel untuk mengontrol strip LED WS2812. Ini dimulai dengan menginisialisasi strip LED dan mengatur warna awal menjadi hitam. Pengidentifikasi kunci dalam kode termasuk LED_PIN, yang mendefinisikan pin yang terhubung ke jalur data strip LED, dan NUM_LEDS, yang menentukan jumlah LED dalam strip.

#include  // Sertakan pustaka Adafruit NeoPixel

#define LED_PIN 14 // Strip LED NeoPixel
#define NUM_LEDS 8 // Jumlah LED

Dalam fungsi setup, strip diinisialisasi menggunakan strip.begin(), dan warna awal diatur ke hitam dengan strip.show(). Ini menyiapkan strip untuk perubahan warna saat program berjalan.

void setup() {
  strip.begin(); // Inisialisasi strip NeoPixel
  strip.show(); // Atur warna awal menjadi hitam
}

Loop utama program terdiri dari dua loop for. Loop pertama menyalakan setiap LED satu per satu dengan mengatur warnanya dan memperbarui strip. Loop kedua mematikan setiap LED dengan cara yang sama. Ini menciptakan animasi cahaya yang sederhana namun efektif.

void loop() {
  // Nyalakan LED satu per satu
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, 100, 45, 0); // Atur warna LED ke-i menjadi merah
    strip.show(); // Perbarui strip LED dengan warna baru
    delay(100); // Tunggu 100 milidetik
  }
  
  // Matikan LED satu per satu
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, 0, 0, 0); // Atur warna LED ke-i menjadi hitam (matikan)
    strip.show(); // Perbarui strip LED dengan warna baru
    delay(100); // Tunggu 100 milidetik
  }
}

Tonton pemuatan kode lengkap di bawah artikel untuk detail lebih lanjut tentang cara menerapkan efek warna dan animasi yang berbeda.

Demonstrasi / Apa yang Diharapkan

Setelah Anda menyelesaikan pengkabelan dan mengunggah kode, Anda akan melihat LED pada strip menyala satu per satu dengan warna yang ditentukan, diikuti dengan matinya LED dalam urutan yang sama. Ini menciptakan efek "lampu berjalan". Jika LED tidak menyala seperti yang diharapkan, periksa kembali koneksi pengkabelan Anda dan pastikan catu daya mencukupi. Juga, verifikasi bahwa pin yang benar telah didefinisikan dalam kode (di video pada menit 12:30).

Stempel Waktu Video

  • 00:00 Mulai
  • 1:40 Pengenalan LED WS2812
  • 7:25 Halaman dokumentasi proyek
  • 9:16 Penjelasan Warna RGB
  • 13:16 Penjelasan pengkabelan
  • 13:48 Penjelasan Kode Arduino-1
  • 19:03 Memilih papan ESP32 dan Port di Arduino IDE
  • 20:45 Demo Kode-1
  • 22:00 Mengontrol LED individual
  • 24:16 LED lampu berjalan
  • 25:41 Lampu bolak-balik

Gambar

ESP32-12-WS2812-wiring
ESP32-12-WS2812-wiring
ESP32-12-WS2812-schematic
ESP32-12-WS2812-schematic
SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422
SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422
811-ESP32 Tutorial 12/55- Arduino code for WS2812 RGB LED stripe using ESP32
Bahasa: C++
#include <Adafruit_NeoPixel.h> // Include the Adafruit NeoPixel library

#define LED_PIN 14 // NeoPixel LED strip
#define NUM_LEDS 8 // Number of LEDs

// Create an instance of the Adafruit_NeoPixel class
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800); 

void setup() {
  strip.begin(); // Initialize the NeoPixel strip
  strip.show(); // Set initial color to black
}

void loop() {
  // Turn on LEDs one by one
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, 100, 45, 0); // Set the color of the i-th LED to red
    strip.show(); // Update the LED strip with the new colors
    delay(100); // Wait for 100 milliseconds
  }
  
  // Turn off LEDs one by one
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, 0, 0, 0); // Set the color of the i-th LED to black (turn it off)
    strip.show(); // Update the LED strip with the new colors
    delay(100); // Wait for 100 milliseconds
  }
}

Hal-hal yang mungkin Anda butuhkan

Sumber daya & referensi

Belum ada sumber daya.

Berkas📁

Tidak ada file tersedia.