ESP32 mikrodenetleyicisi ile LED kontrolü, temel IoT ve otomasyon projelerinin yapı taşıdır. Bu rehberde, GPIO pinlerini kullanarak temel açma/kapama (Dijital) ve parlaklık ayarı (PWM) işlemlerinin nasıl yapılacağını öğreneceksiniz.
ESP32 pinleri 3.3V mantıksal gerilim seviyesinde çalışır. Pin başına çekilebilecek güvenli akım sınırı 12mA - 20mA arasındadır. LED'in yanmasını ve pinden aşırı akım çekilmesini önlemek için seri bir direnç kullanılmalıdır.
GPIO 2 pinine (Birçok geliştirme kartında dahili mavi LED bu pine bağlıdır).220Ω veya 330Ω direnç üzerinden ESP32 GND pinine.
Görsel 1: ESP32 ve LED Bağlantı Şeması
Aşağıdaki kod, sinyali kare dalga olarak üretir; pini tamamen lojik 1 (3.3V) veya lojik 0 (0V) konumuna getirerek LED'i birer saniye aralıklarla çalıştırır.
#define LED_PIN 2
void setup() {
// GPIO 2 pinini çıkış olarak yapılandırıyoruz
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH); // LED açık (3.3V)
delay(1000); // 1000 milisaniye bekle
digitalWrite(LED_PIN, LOW); // LED kapalı (0V)
delay(1000); // 1000 milisaniye bekle
}
ESP32'de geleneksel analogWrite() fonksiyonu yerine gelişmiş donanımsal LEDC (PWM) sürücüsü kullanılır. Kod, sinyalin görev döngüsünü (duty cycle) değiştirerek LED'e giden ortalama gücü kontrol eder ve nefes alma efekti oluşturur.
#define LED_PIN 2
// PWM Parametreleri
const int frekans = 5000; // 5 kHz sinyal frekansı
const int ledKanali = 0; // 0-15 arası donanımsal PWM kanalı
const int cozunurluk = 8; // 8-bit çözünürlük (0 - 255 arası değerler)
void setup() {
// PWM kanalını, frekansını ve çözünürlüğünü yapılandır
ledcSetup(ledKanali, frekans, cozunurluk);
// Yapılandırılan PWM kanalını ilgili GPIO pinine bağla
ledcAttachPin(LED_PIN, ledKanali);
}
void loop() {
// Parlaklığı kademeli olarak artır (0 -> 255)
for (int parlaklik = 0; parlaklik <= 255; parlaklik++) {
ledcWrite(ledKanali, parlaklik);
delay(10);
}
// Parlaklığı kademeli olarak azalt (255 -> 0)
for (int parlaklik = 255; parlaklik >= 0; parlaklik--) {
ledcWrite(ledKanali, parlaklik);
delay(10);
}
}
GPIO 6 ile GPIO 11 arasındaki pinler entegre flash belleğe bağlıdır. Bu pinleri LED veya başka bir bileşen için kesinlikle kullanmayınız; kartın kilitlenmesine neden olur.Henüz yorum yapılmamış. İlk yorumu siz yapın!