Sonsuz Renk Cümbüşü: Gökkuşağını Masanıza Getirin
Önceki projelerimizde tek bir LED'i yakıp söndürdük, parlaklığını ayarladık. Şimdi ise bir adım daha ileri giderek, tek bir RGB LED ile sınırsız bir renk paleti oluşturacağız. Kırmızı, Yeşil ve Mavi renkleri farklı yoğunluklarda birleştirerek kendi aydınlatma şovlarınızı yaratacak ve masanızı bir renk cümbüşüne çevireceksiniz.
Gerekli Malzemeler
- Arduino Uno: Her zamanki gibi projemizin beyni.
- 1 adet RGB LED (Ortak Katot): Üç farklı LED'i tek bir kılıfta barındıran bu sihirli eleman, farklı renkleri karıştırmamızı sağlar. (Ortak katotlu LED'in en uzun bacağı GND'ye bağlanır.)
- 3 adet 220Ω Direnç: Her bir renk kanalını (Kırmızı, Yeşil, Mavi) korumak için ayrı ayrı dirençler kullanacağız.
- Breadboard: Devre kurulumunu kolaylaştıracak.
- Jumper Kablolar: Bağlantılar için gerekli.
Devre Kurulumu
Bu devrede üç farklı renk kanalını ayrı ayrı kontrol edeceğimiz için her birine özel bir PWM pini atayacağız.
- RGB LED'i Breadboard'a Yerleştirin: RGB LED'in en uzun bacağını (ortak bacak) bulun ve breadboard'daki bir GND hattına bağlayın. Ortak katotlu bir LED kullanıyorsanız bu bacak GND'ye (eksiye) bağlanacaktır. Ortak anotlu bir LED kullanıyorsanız 5V'a bağlanması gerekir. Kodumuz ortak katot içindir.
- Direnç ve Pin Bağlantıları: Her bir renk bacağı için birer 220Ω direnç kullanın.Kırmızı (Red) bacağı: Bir 220Ω direncin bir ucunu bu bacağa, diğer ucunu ise Arduino'daki Pin 9'a bağlayın. (PWM pini)Yeşil (Green) bacağı: Bir 220Ω direncin bir ucunu bu bacağa, diğer ucunu ise Arduino'daki Pin 10'a bağlayın. (PWM pini)Mavi (Blue) bacağı: Bir 220Ω direncin bir ucunu bu bacağa, diğer ucunu ise Arduino'daki Pin 11'e bağlayın. (PWM pini)
- Kırmızı (Red) bacağı: Bir 220Ω direncin bir ucunu bu bacağa, diğer ucunu ise Arduino'daki Pin 9'a bağlayın. (PWM pini)
- Yeşil (Green) bacağı: Bir 220Ω direncin bir ucunu bu bacağa, diğer ucunu ise Arduino'daki Pin 10'a bağlayın. (PWM pini)
- Mavi (Blue) bacağı: Bir 220Ω direncin bir ucunu bu bacağa, diğer ucunu ise Arduino'daki Pin 11'e bağlayın. (PWM pini)
Kodlama Zamanı!
Devre kurulumunu tamamladıysanız, sıra renklerin büyülü dünyasına dalmaya geldi. Arduino IDE'yi açın ve aşağıdaki kodu yükleyin.
C
// RGB LED'in bağlı olduğu pinleri tanımla
const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;
// Rastgele renkler için başlangıç değerleri
int redValue = 0;
int greenValue = 0;
int blueValue = 0;
// Bu fonksiyon, kod çalışmaya başladığında bir kez çalışır.
void setup() {
// Pinleri ÇIKIŞ olarak ayarla
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
// Seri iletişimi başlat, renk değerlerini görebilmek için
Serial.begin(9600);
}
// Bu fonksiyon, Arduino çalıştığı sürece sürekli tekrar eder.
void loop() {
// Rastgele renk değerleri oluştur (0-255 aralığında)
redValue = random(0, 256);
greenValue = random(0, 256);
blueValue = random(0, 256);
// RGB LED'in her bir kanalına parlaklık değerlerini yaz
// analogWrite, 0-255 arasındaki değeri PWM sinyaline çevirir
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
// Oluşturulan renk değerlerini Seri Monitöre yazdır
Serial.print("Renk Degerleri: (");
Serial.print(redValue);
Serial.print(", ");
Serial.print(greenValue);
Serial.print(", ");
Serial.print(blueValue);
Serial.println(")");
// Renk değişimleri arasında 1 saniye bekle
delay(1000);
}
Kodu Anlayalım
- const int redPin = 9; vb.: LED'in her bir renk kanalını Arduino'daki PWM pinlerine (üzerinde ~ işareti olan pinler) bağladık. Bu pinler, analogWrite() fonksiyonu ile 0-255 arasında bir değer alarak parlaklığı ayarlayabilir.
- random(0, 256);: Bu sihirli fonksiyon, belirtilen aralıkta (0'dan 255'e kadar) rastgele bir sayı üretir. RGB renk modelinde her bir renk kanalının parlaklığı 0 ile 255 arasında değişir.
- analogWrite(redPin, redValue); vb.: Bu komutlar, her bir renk kanalına farklı parlaklık değeri gönderir. Örneğin:analogWrite(redPin, 255); analogWrite(greenPin, 0); analogWrite(bluePin, 0); LED'i saf kırmızı yapar.analogWrite(redPin, 255); analogWrite(greenPin, 255); analogWrite(bluePin, 0); LED'i sarı yapar.analogWrite(redPin, 255); analogWrite(greenPin, 0); analogWrite(bluePin, 255); LED'i fuşya (magenta) yapar.
- analogWrite(redPin, 255); analogWrite(greenPin, 0); analogWrite(bluePin, 0); LED'i saf kırmızı yapar.
- analogWrite(redPin, 255); analogWrite(greenPin, 255); analogWrite(bluePin, 0); LED'i sarı yapar.
- analogWrite(redPin, 255); analogWrite(greenPin, 0); analogWrite(bluePin, 255); LED'i fuşya (magenta) yapar.
Bu kod, her saniye rastgele yeni bir renk oluşturacak ve LED'inizin durmadan renk değiştirmesini sağlayacaktır.
Kodu Yükleme
- Arduino'nuzu bilgisayarınıza bağlayın.
- Arduino IDE'de Araçlar > Kart > Arduino Uno ve Araçlar > Port ayarlarını doğru şekilde yapın.
- Kodu yükleyin ve RGB LED'inizin sonsuz bir renk cümbüşüyle parlamaya başladığını izleyin.
Artık Arduino'nun sadece ışıkları yakıp söndürmekten çok daha fazlasını yapabildiğini biliyorsunuz. Bu projelerle, elektronik ve yazılımın nasıl bir araya gelerek yaratıcı ve interaktif sistemler oluşturduğunu keşfettiniz. Bu deneyimler, gelecekteki daha karmaşık projeleriniz için sağlam bir temel oluşturacaktır. Yaratıcılığınızı serbest bırakın ve kendi projelerinizi tasarlamaya başlayın!