İçeriğe Geç

RGB LED Kontrol Projesi

06 Nov 2023
RGB LED Control Project

RGB LED Işıklar

İçerik Tablosu

    Renklerin dünyasında, RGB olarak bilinen bir renk modeli vardır, sanki bir ressamın paleti gibi. Bu model, "Kırmızı", "Yeşil" ve "Mavi" renklerin bir araya gelmesiyle oluşur. Bu üç temel renk, farklı yoğunluklarla birleştirildiğinde, sanki bir bahar sabahının ilk ışıkları gibi, diğer renkleri yaratır. RGB, her bir pikselin renk hikayesini anlatır; her renk 0 ile 255 arasında, bir nota gibi bir değer alır. Bu notaların farklı kombinasyonları, milyonlarca farklı renk tonunu doğurur ve dijital görüntülerin ruhunu oluşturur.

    PicoBricks ile hayata geçirilen bu proje, RGB'nin kırmızı, yeşil, mavi bileşenlerini, potansiyometrelerin nazik dokunuşlarıyla kontrol eder. Her potansiyometre, bir renkçinin fırçası gibi, ilgili rengin parlaklığını ayarlar. RGB LED'in bağlantıları ve kodları, bu büyülü dünyada yol almak için basit ve anlaşılırdır, projeyi özelleştirmek veya daha karmaşık uygulamalar için bir temel oluşturur. Potansiyometreleri döndürmek, LED'in rengini ve parlaklığını, bir nehirdeki suyun akışını yönlendiren bir kaptan gibi, gerçek zamanlı olarak değiştirmeye olanak tanır.

    Bu proje, analog ve dijital dünyalar arasındaki köprüyü kurar; giriş ve çıkışları kontrol etmeyi öğretir. Kodlama becerilerinin gelişimine zemin hazırlar. Projenin işleyişini anlamak ve özelleştirmek, elektronik devrelerin gizemli dünyasına bir yolculuk sunar. Bu tür projeler, STEM'in büyülü bahçesine açılan kapılar gibidir ve elektronik ve programlama becerilerini geliştirmek isteyenler için ilginç bir deneyim sunar.

    LED teknolojisi, aydınlatmayı bir sanat eserine dönüştürmüştür. İç tasarım, eğlence ve günlük hayatta RGB LED'ler, bir ressamın tuvalinde renkleri nasıl harmanladığı gibi, ortamı ayarlamak, göz alıcı görseller yaratmak ve çevremizi kişiselleştirmek için araçlar sunar. RGB LED'lerin potansiyeli keşfedildikçe, modern aydınlatmanın temel bir unsuru haline geldikleri açıktır; hayatımıza renk, canlılık ve uyumluluk katarlar. Bu alandaki sürekli ilerlemeler, RGB LED'lerin gelecekte daha da parlamasına olanak tanıyacak, hayal gücümüzün sınırlarını zorlayacak heyecan verici fırsatlar vaat ediyor.


    RGB Led ler hakkında daha fazla bilgi almak ister misiniz?

    Detaylar ve Algoritma

    RGB LED kontrol projesi, renklerin büyülü dünyasına bir kapı aralar. Potansiyometreler aracılığıyla kırmızı, yeşil ve mavi LED'leri yöneterek renk kombinasyonlarını kişiselleştirmenize olanak tanır. İlk adım, potansiyometrenin değerlerini 0 ile 1023 arasından, daha sonik bir renk dansına uyum sağlayacak şekilde 0 ile 255 aralığına dönüştürmektir. Bu dönüşüm, renklerin parlaklık derecelerini titizlikle ayarlamak için zorunludur. Ardından, her potansiyometre kırmızı, yeşil ve mavi bileşenlere birer değer biçer. Son adım ise, bu değerlerin RGB LED'in ilgili bileşenlerine aktarılmasıdır, böylece arzu edilen renk ve parlaklık kombinasyonu hayat bulur. Potansiyometreleri döndürerek, LED'in rengini ve parlaklığını, zamanda ve mekanda bir ressamın fırçası gibi, gerçek zamanlı olarak ayarlamak mümkündür. Bu proje, teknoloji ve sanatın iç içe geçtiği bir dünyada, renklerin sonsuz oyununa davetiye çıkarır.

    Gerekli Malzemeler


    Devre Şeması

    PicoBricks IDE Kodları

    MicroBlocks Kodları

    MicroPython Kodları

    
    from time import sleep
    from machine import Pin
    from picobricks import WS2812
    import time
    from machine import I2C
    from picobricks import SSD1306_I2C
    import machine
    import math
    
    ws2812 = WS2812(6, brightness = 1)
    i2c = I2C(0, scl=Pin(5), sda=Pin(4), freq=200000)
    oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
    pin_button = machine.Pin(10, machine.Pin.IN)
    import math
    pot = machine.ADC(26)
    
    def color_code():
        global pot_val, red, green, blue, color_list, i
        while (pin_button.value()) == (0):
            oled.fill(0)
            pot_val = round(round( pot.read_u16() – 0 ) * ( 255 – 0 ) / ( 65535 – 0 ) + 0)
            oled.text(“{}”.format(str(str(color_list[i])+str(”  “))+str(pot_val)), 0, 0)
            oled.show()
    
        return pot_val
    
    def chosing_red():
        global pot_val, red, green, blue, color_list, i
        red = color_code()
        i += 1
    
    def chosing_green():
        global pot_val, red, green, blue, color_list, i
        green = color_code()
        i += 1
    
    def chosing_blue():
        global pot_val, red, green, blue, color_list, i
        blue = color_code()
        i += 1
    
    while True:
        color_list = [“RED”, “GREEN”, “BLUE”]
        red = 0
        green = 0
        blue = 0
        i = 0
        ws2812.pixels_fill((0 ,0 ,0 ))
        ws2812.pixels_show()
        oled.text(“{}”.format(“Color Code”), 0, 0)
        oled.text(“{}”.format(str(“RED = “)+str(red)), 20, 25)
        oled.text(“{}”.format(str(“BLUE = “)+str(blue)), 20, 35)
        oled.text(“{}”.format(str(“GREEN = “)+str(green)), 20, 45)
        chosing_red()
        time.sleep((1))
        chosing_green()
        time.sleep((1))
        chosing_blue()
        oled.fill(0)
        oled.show()
        ws2812.pixels_fill((red, green, blue))
        ws2812.pixels_show()
        time.sleep((2))

    Arduino C Kodları

    
    #include <Wire.h>
    #include "ACROBOTIC_SSD1306.h"
    #include <Adafruit_NeoPixel.h>
    #define BUTTON_PIN 10
    #define LED_PIN 7
    #define PIN            6
    #define NUMLEDS        1
    
    Adafruit_NeoPixel leds = Adafruit_NeoPixel(NUMLEDS, PIN, NEO_GRB + NEO_KHZ800);
    int color_list[0];
    int pot_val = 0;
    String pot_val_str = " ";
    int red = 0;
    int green = 0;
    int blue = 0;
    
    void color_code(){
      while(digitalRead(BUTTON_PIN) == 0){
        pot_val = analogRead(A0);
        pot_val = map(pot_val,0,1023,0,255);
        oled.setTextXY(0,11);  
        oled.putString(String(pot_val));
        Serial.println(pot_val);
      }
    }
    
    void setup() {
      Serial.begin(9600);
      Wire.begin();
      oled.init();
      oled.clearDisplay();
      pinMode(BUTTON_PIN, INPUT);
      pinMode(LED_PIN, OUTPUT);
      randomSeed(analogRead(A0));
      leds.begin();
    }
    
    void loop() {
      oled.setTextXY(0,0);  
      oled.putString("Color Code:");
      oled.setTextXY(1,0);  
      oled.putString("----------------");
      oled.setTextXY(2,1);
      oled.putString("RED"); 
      oled.setTextXY(4,1);  
      oled.putString("GREEN");
      oled.setTextXY(6,1);  
      oled.putString("BLUE");
    
      while (digitalRead(BUTTON_PIN) == LOW) {
        color_code();
        digitalWrite(LED_PIN,HIGH);
        delay(1000);
        digitalWrite(LED_PIN,LOW);
        red = pot_val;
        oled.setTextXY(2,7);
        oled.putString(String(red));
        delay(1000);
        color_code();
        digitalWrite(LED_PIN,HIGH);
        delay(1000);
        digitalWrite(LED_PIN,LOW);
        green = pot_val;
        oled.setTextXY(4,7);
        oled.putString(String(green));
        color_code();
        digitalWrite(LED_PIN,HIGH);
        delay(1000);
        digitalWrite(LED_PIN,LOW);
        blue = pot_val;
        oled.setTextXY(6,7);
        oled.putString(String(green));
        digitalWrite(LED_PIN,LOW);
        delay(1000);
    
        for(int i=0;i < NUMLEDS;i++) {
          leds.setPixelColor(i, leds.Color(red,green,blue));
          leds.show();
          delay(2000);
          leds.setPixelColor(i, leds.Color(0, 0, 0)); //turn all pixels black 'off'
          leds.show();
        }
      }
    
      oled.clearDisplay();
    }
    
    Önceki Gönderi
    Sıradaki Gönderi

    Abone olduğun için teşekkürler!

    Bu e-posta kaydedildi!

    Görünümü satın alın
    Seçenekleri Seçin

    Seçeneği Düzenle

    Stok Bildirimi

    Karşılaştır

    Ürün Stok KoduDeğerlendirmeAçıklama Kategori Uygunluk Ürün Tipi Diğer Detaylar
    this is just a warning
    Giriş Yap
    Alışveriş Sepeti
    0 Ürünler
    Same Day Shipping No Extra Costs
    Easy Returns Guarantee Return with Ease
    Secure Checkout Secure Payment