Bu yazıda, Arduino ve potansiyometre kullanarak RGB LED'in renklerini nasıl kontrol edeceğimizi öğreniyoruz. Potansiyometreden gelen analog veriyi RGB LED'in renk değerlerini değiştirmek için kullanabiliriz. Tek potansiyometre ile renk kontrolü yapılırken, potansiyometreden alınan analog veri üç farklı aralığa bölünerek kırmızı, yeşil ve mavi LED'ler sırasıyla kontrol edilir.
Proje İçin Gerekli Malzemeler
- Arduino Uno (veya başka bir Arduino modeli)
- 1 x RGB LED (Ortak anot veya ortak katot)
- 1 x Potansiyometre
- 3 x 220 Ohm direnç
- Breadboard
- Bağlantı kabloları
Devre Bağlantısı

Potansiyometre Bağlantısı
- Potansiyometrenin orta bacağı (veri pini), Arduino'nun A0 pinine bağlanır.
- Potansiyometrenin bir bacağı 5V'a, diğer bacağı ise GND'ye bağlanır.
RGB LED Bağlantısı
- Kırmızı Bacak: Arduino'nun 9 numaralı PWM pinine bağlanır.
- Yeşil Bacak: Arduino'nun 10 numaralı PWM pinine bağlanır.
- Mavi Bacak: Arduino'nun 11 numaralı PWM pinine bağlanır.
- Ortak bacak:
- Ortak katot: GND'ye,
- Ortak anot: 5V'a bağlanır.
Çalışan uygulamayı görmek için tıklayınız.
Arduino Kodu
Aşağıdaki kod, tek potansiyometreden gelen analog veriyi üç farklı renk kanalı için ayırır:
// RGB LED pinleri
const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;
// Potansiyometre pini
const int potPin = A0;
void setup() {
// RGB LED pinlerini çıkış olarak ayarlayın
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
// Seri monitör iletişimi başlat (isteğe bağlı)
Serial.begin(9600);
}
void loop() {
// Potansiyometreden analog veri oku
int potValue = analogRead(potPin);
// Renk geçişlerini kontrol eden kod (bunu buraya ekleyin)
if (potValue <= 341) {
// Kırmızı aktif
analogWrite(redPin, map(potValue, 0, 341, 0, 255));
analogWrite(greenPin, 0);
analogWrite(bluePin, 0);
} else if (potValue > 341 && potValue <= 682) {
// Yeşil aktif
analogWrite(redPin, 0);
analogWrite(greenPin, map(potValue, 342, 682, 0, 255));
analogWrite(bluePin, 0);
} else {
// Mavi aktif
analogWrite(redPin, 0);
analogWrite(greenPin, 0);
analogWrite(bluePin, map(potValue, 683, 1023, 0, 255));
}
// Seri monitörde verileri yazdır (isteğe bağlı)
Serial.print("Potansiyometre: ");
Serial.print(potValue);
Serial.print(" | Kırmızı: ");
Serial.print(map(potValue, 0, 341, 0, 255));
Serial.print(" | Yeşil: ");
Serial.print(map(potValue, 342, 682, 0, 255));
Serial.print(" | Mavi: ");
Serial.println(map(potValue, 683, 1023, 0, 255));
delay(100); // Akıcılığı sağlamak için gecikme
}Kod Açıklamaları
analogRead(): Potansiyometreden analog değer okunur (0-1023).map(): Potansiyometre verisi üç farklı aralığa bölünerek, kırmızı, yeşil ve mavi renkler için 0-255 değerine dönüştürülür.- İlk 1/3: Kırmızı
- İkinci 1/3: Yeşil
- Son 1/3: Mavi
constrain(): Verilerin 0-255 aralığında olmasını sağlar, aksi durumda sınırlama yapılır.analogWrite(): RGB LED'in renklerini ayarlamak için PWM sinyali gönderir.
Projenin Çalışma Prensibi
- Potansiyometreyi çevirerek farklı renk kanallarını kontrol edersiniz.
- Potansiyometre, her bir renk için 0-255 aralığında bir değer gönderir ve bu değer RGB LED'in parlaklığını ayarlar.
- Seri monitörde, potansiyometreden okunan değer ve RGB LED'in renk seviyeleri gösterilir.
Ekstra İpuçları
- Otomatik Renk Geçişi: Kodunuzu geliştirerek, potansiyometrenin belirli konumlarında özel renk kombinasyonları oluşturabilirsiniz.
- Seri Monitör Geri Bildirimi: Seri monitör üzerinden her bir rengin parlaklık değerlerini izleyerek hassas ayarlar yapabilirsiniz.
Bu proje, RGB LED kontrolünü basitleştirerek, sadece bir potansiyometre ile eğlenceli ve işlevsel bir renk değişim mekanizması oluşturmanızı sağlar.

Bu Gönderiye Yorum Yapılmamış