Search Code

ESP32 Eğitimi 6/55 - RGB LED Kullanımı Proje 2.3 -SunFounder'ın ESP32 IoT Öğrenme kiti

ESP32 Eğitimi 6/55 - RGB LED Kullanımı Proje 2.3 -SunFounder'ın ESP32 IoT Öğrenme kiti

Bu eğitimde, ESP32 mikrodenetleyicisini kullanarak bir RGB LED'i nasıl kontrol edeceğimizi öğreneceğiz. Bu proje, RGB LED'i nasıl bağlayacağınızı ve PWM (Darbe Genişliği Modülasyonu) sinyallerini kullanarak renklerini nasıl kontrol edeceğinizi anlamanıza yardımcı olacaktır. Bu eğitimin sonunda, her LED bileşeninin yoğunluğunu ayarlayarak herhangi bir renk kombinasyonu oluşturabileceksiniz. Bu, görsel olarak ilgi çekici projeler oluşturmak için temel bir beceridir.

RGB LED'i ve renk karıştırma yeteneklerini daha iyi anlamak için, ESP32 ile kontrol etmek için gereken bağlantıları ve kodu inceleyeceğiz. Görsel yardıma ihtiyacınız varsa, bağlantı ve kod kurulumunun daha net bir açıklaması için videoyu (videoda 03:20'de) kontrol ettiğinizden emin olun.

Donanım Açıklaması

Bu projenin ana bileşenleri ESP32 modülü, RGB LED ve dirençlerdir. ESP32, yerleşik Wi-Fi ve Bluetooth özelliklerine sahip güçlü bir mikrodenetleyicidir ve bu da onu IoT uygulamaları için ideal kılar. RGB LED, tek bir paket içinde üç ayrı LED'den (kırmızı, yeşil ve mavi) oluşur ve üç rengin kombinasyonuna dayalı olarak geniş bir renk yelpazesi sağlar.

Kurulumumuzda, RGB LED ortak anot konfigürasyonunda bağlanacaktır; burada anot pini pozitif bir voltaja bağlanır ve her rengin katot pini bağımsız olarak kontrol edilir. Bu şekilde, ESP32 üzerinden PWM sinyalleri göndererek her rengin parlaklığını ayarlayabiliriz.

Veri Sayfası Detayları

ÜreticiSunFounder
Parça numarasıRGB-LED-4PIN
Ortak TipOrtak anot
İletim Voltajı (LED başına)2,0 V (Kırmızı), 3,2 V (Yeşil), 3,2 V (Mavi)
Maksimum Akım (LED başına)20 mA
Çalışma Sıcaklığı-25 ila 85 °C
Paket4 Pinli Delik İçi

  • Akımı sınırlamak ve hasarı önlemek için her renk için 220 Ω'luk bir direnç kullanın.
  • Ortak pimin uygun voltaja (ESP32 için 3,3 V) bağlı olduğundan emin olun.
  • Ters hasarı önlemek için RGB LED'i bağlarken polariteyi iki kez kontrol edin.
  • Parlaklık seviyelerini kontrol etmek için PWM kullanın; yaklaşık 5000 Hz frekans önerilir.
  • Tüm kurulumu bağlamadan önce her rengi ayrı ayrı test edin.

Bağlantı Talimatları

RGB LED'i ESP32'ye bağlamak için önce RGB LED üzerindeki pinleri tanımlayarak başlayın. En uzun pin, ESP32 üzerindeki 3,3 V kaynağına bağlanacak olan ortak anottur. Diğer üç pin kırmızı, yeşil ve mavi içindir. Kurulumumuzda, kırmızı pini GPIO 27'ye, yeşil pini GPIO 26'ya ve mavi pini GPIO 25'e bağlayın. Bu pinlerin her birine ayrıca 220 Ω'luk bir direnç bağlanacaktır.

RGB LED'i breadboard'a yerleştirerek başlayın ve ortak anot pininin solda olduğundan emin olun. Kırmızı pini breadboard'a yerleştirin ve direncin bir ucuna bağlayın; direncin diğer ucu GPIO 27'ye gidecektir. Bunu yeşil ve mavi pinler için tekrarlayın; yeşil pini GPIO 26'ya ve mavi pini GPIO 25'e bağlayın. Son olarak, devreyi tamamlamak için ortak pini ESP32 üzerindeki 3,3 V pinine bağlayın. ESP32'nin toprağını da breadboard'a bağladığınızdan emin olun.

ESP32_RGB_LED_wiring_lesson_06

Kod Örnekleri ve Açıklaması

Kodda, RGB LED pinlerini sabitler kullanarak tanımlayarak başlıyoruz. Örneğin, const int redPin = 27; kırmızı LED için GPIO pinini tanımlar. Ayrıca PWM frekansını ve çözünürlüğünü const int freq = 5000; ve const int resolution = 8; ile ayarlıyoruz. Bu, her LED renginin parlaklığını kontrol etmek için gerekli parametreleri kurar.

const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;

Ardından, setup() fonksiyonunda her renk için PWM kanallarını yapılandırıyoruz. ledcAttach() fonksiyonu her pini ilgili PWM kanalına bağlar. Bu kurulum, her rengin parlaklığını bağımsız olarak kontrol edebilmemizi sağlar.

void setup() {
  ledcAttach(redPin, freq, resolution);
  ledcAttach(greenPin, freq, resolution);
  ledcAttach(bluePin, freq, resolution);
}

loop() fonksiyonunda, LED renklerini değiştirmek için setColor() fonksiyonunu kullanıyoruz. Bu fonksiyona iletilen değerler kırmızı, yeşil ve mavinin yoğunluğunu temsil eder. Örneğin, setColor(255, 0, 0); çağrısı LED'i kırmızıya ayarlar. Her renk değişiminden sonra, bir sonraki renge geçmeden önce bir saniye beklemek için delay(1000); kullanıyoruz.

void loop() {
  setColor(255, 0, 0); // Kırmızı
  delay(1000);
  setColor(0, 255, 0); // Yeşil
  delay(1000);
}

Gösterim / Beklentiler

Bağlantıları tamamladıktan ve kodu ESP32'ye yükledikten sonra, RGB LED'in çeşitli renklerde döngü yaptığını görmelisiniz: kırmızı, yeşil, mavi, sarı, mor ve camgöbeği. LED doğru şekilde yanmıyorsa, bağlantılarınızı iki kez kontrol edin ve ortak anotun 3,3 V'a bağlı olduğundan emin olun. Ayrıca, beklenmeyen renkler fark ederseniz, LED pinlerine olan direnç bağlantılarını doğrulayın.

Videoda gösterildiği gibi (videoda 10:45'te), setColor() fonksiyonundaki değerleri ayarlamak farklı renkler oluşturmanıza olanak tanır. RGB LED'in nasıl tepki verdiğini görmek için çeşitli kombinasyonlarla deney yapın.

Video Zaman Damgaları

  • 00:00 - RGB LED'e Giriş
  • 03:20 - Bağlantı açıklaması
  • 10:45 - Kod incelemesi
  • 12:30 - Renk karıştırma gösterimi

Görseller

ESP32_rgb_pin
ESP32_rgb_pin
ESP32_RGB_led_wires
ESP32_RGB_led_wires
ESP32_RGB_LED_wiring_lesson_06
ESP32_RGB_LED_wiring_lesson_06
806-ESP32 Tutorial 6/55 - Arduino code to control RGB LED with ESP32
Dil: C++
// Define RGB LED pins
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;

// Define PWM frequency and resolution
const int freq = 5000;
const int resolution = 8;

void setup() {
  // Set up PWM pins
  ledcAttach(redPin, freq, resolution);
  ledcAttach(greenPin, freq, resolution);
  ledcAttach(bluePin, freq, resolution);
}

void loop() {
  setColor(255, 0, 0); // Red
  delay(1000);
  setColor(0, 255, 0); // Green
  delay(1000);
  setColor(0, 0, 255); // Blue
  delay(1000);
  setColor(255, 255, 0); // Yellow
  delay(1000);
  setColor(80, 0, 80); // Purple
  delay(1000);
  setColor(0, 255, 255); // Cyan
  delay(1000);
}

void setColor(int red, int green, int blue) {
  ledcWrite(redPin, red);
  ledcWrite(greenPin, green);
  ledcWrite(bluePin, blue);
}

Kaynaklar ve referanslar

Dosyalar📁

Dosya mevcut değil.