Arduino ile Potansiyometre Kullanılarak RGB Uygulaması
Arduino Arduino Hafta 14

Arduino ile Potansiyometre Kullanılarak RGB Uygulaması

2 yıl önce · Aykut AKMAN · ~4 dk okuma · 1,8 B görüntüleme

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ı

arduino-potansiyometre-ile-rgb-led-uygulaması-devre-şeması

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ı

      1. analogRead(): Potansiyometreden analog değer okunur (0-1023).
      2. 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
      3. constrain(): Verilerin 0-255 aralığında olmasını sağlar, aksi durumda sınırlama yapılır.
      4. analogWrite(): RGB LED'in renklerini ayarlamak için PWM sinyali gönderir.

      Projenin Çalışma Prensibi

      1. Potansiyometreyi çevirerek farklı renk kanallarını kontrol edersiniz.
      2. 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.
      3. 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. 

      Önceki Ders Hafta 13
      Arduino ile RGB LED Uygulaması
      Hafta 15 Sonraki Ders
      LDR Kullanımı ve Arduino ile Otomatik Lamba Uygulaması

      Yorumlar (0)

      Bu içerik size yardımcı oldu mu?

      Sorularınızı, önerilerinizi veya konuyla ilgili deneyimlerinizi aşağıda paylaşabilirsiniz.