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.
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();
}