Arduino renk kodları ile çalışma;

Renk kombinelerini hesaplama:

Örneğin tek renk(1 bitlik) monochrome bir ekranınız var ise farklı 2(21) adet renginiz vardır

Ekranınız renkli ve 16 biti destekliyor ise 65,536(216) farklı kombine oluşturabilirsiniz

Hafızada kapladığı alan:

128x64 piksel olan bir ekranda bit biçiminde renk değeri verilmesi için;

128 * 64 * 2 = 16,384 byte alan gerekir

Renk belirleme:

Renkler üç rengin karışımı ile elde edilir

Red-Green-Blue(Kırmızı-Yeşil-Mavi)

Monochrome ekranlarda: Sadece siyah ve beyaz vardır. Ara ton oluşturabilirsiniz ancak iki renk görübilirsiniz

Siyah ekranın karanlık hali, beyaz ise ekranının rengidir(aldığınız ekrana göre renkler farklılık gösterebilir)

Siyah(renk yok): #define BLACK 0

Beyaz(tam renk): #define WHITE 1

Bu tanımlamalar Adafruit_SSD1306 kütüphanesinde tanımlıdır

Renkli ekranlarda:

16 bitte renklerin dağılımı 5 Bit Red(Kırmızı) – 6 Bit Green(Yeşil) – 5 Bit Blue(Mavi) yani R5G6B5'dir

Açılımı ise RRRRRGGGGGGRRRRR şeklinde bit olarak yazılır ve sonrasında ikilik tabandan onaltılık tabana çevrilir

Yeşil rengin altı bit olma nedeni ise insan gözünün yeşil ışığa karşı daha hassas olmasıymış

Örneğin;

// Color definitions
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF

Örneğin Saf kırmızı:

RGB = (11111 000000 00000)2

RGB olarak kırmızı renk alabileceği en yüksek değerde, diğer renkler ise en düşük değerde

İkilik değerden onaltılığa dönüştürürken dörderli olarak gruplandırlır ve çevirme işlemi tamamlanır

Dönüşüm nasıl yapılır: İkilik tabandan onaltılık tabana dönüşüm hakkındaki yazım

(1111 1000 0000 0000)2 = (F800)16 olur

Tanıtırken hexadecimal olduğunu belirtmek için başına "0x" değeri eklenir

Renk Test Renk Red(Dec./%) Green(Dec./%) Blue(Dec./%) Binary Değeri Hex Değeri
Saf kırmızı 31/100% 0/0% 0/0% 1111100000000000 F800
Saf yeşil 0/0% 63/100% 0/0% 0000011111100000 07E0
Saf mavi 0/0% 0/0% 31/100% 0000000000011111 001F
Siyah 0/0% 0/0% 0/0% 0000000000000000 0000
Beyaz 31/100% 63/100% 31/100% 1111111111111111 FFFF
Sarı 31/100% 63/100% 0/0% 1111111111100000 FFE0
Eflatun 31/100% 0/0% 31/100% 1111100000011111 F81F
Cam Göbeği 0/0% 63/100% 31/100% 00000111111111111 07FF

16 Bit renkleri dönüştürmek için site: RGB565 renk seçici

arduino rgb renkler