Arduino SSD1306 Oled Ekran Grafik Fonksiyonları | SSD1306TUR Library

 Arduino ile OLED Ekran SSD1306 ile Grafik İşlemleri

    Arduino ile Oled ekranlarda SSD1306TUR kütüphanesi ile tüm grafik işlemleri fonksiyonlarına bakıyor olacağız. Ekranın kullanımı ve Arduino Uno 'ya bağlantısı gibi giriş seviyesi konulara hakim değilseniz : Arduino oled ekran kullanımı konusunu ziyaret edebilirsiniz. Bu yazıda yalnızca oled ekran ile grafiksel fonksiyonları inceliyor olacağız. Aşağıdaki fonksiyonları kullandıktan sonra ekranda yaptığınız değişikliklerin görüntülenmesi için display.display(); fonksiyonunu kullanmayı unutmayın.

writeFillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)

fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color) fonksiyonu da kullanılabilir.

İçi dolu bir dikdörtgen çizmenize olanak sağlar, kullanılan parametreler :

  • x : ekran üzerindeki yatay konum (en sol 0)
  • y: ekran üzerindeki dikey konum (en üst 0)
  • w: çizilecek dikdörtgenin genişliği (piksel)
  • h: çizilecek dikdörtgenin yüksekliği (piksel)
  • color: renk

display.writeFillRect(0,10,50,10,1);

İçi boş bir dikdörtgen çizmek için aynı parametrelerle 

display.drawRect(0, 10, 50, 10, 1);

fonksiyonunu kullanabilirsiniz.

setRotation (uint8_t x)

Ekran yönünü değiştirmenize olanak sağlar, farklı tasarımlarda ya da montaj durumuna göre ekranın yönünü çevirmek için kullanabilirsiniz. X parametresi, 
  • 0 : mevcut konumu,
  • 1 : 90 derece sağa, pinler sol tarafta ekrana bakarsanız düz konuma gelmiş olur
  • 2: 180 derece sağa, tam ters posizyonu alır ekran pinleri aşağıda kaldığında ekran düz konuma gelmiş olur
  • 3: 90 derece sola, pinler sağ tarafta kalacak şekilde ekran düz konumda olur.
ekran çevirme işlemi fonksiyon kullanıldıktan sonra kullanılan fonksiyonlar için geçerli olur.

display.setRotation(2);

fonksiyonu SSD1306 ekranı ters çevirir.

fillScreen(uint16_t color)

Ekranın tamamını tek renkle doldurmanıza olanak sağlar.

display.fillScreen(SSD1306_WHITE);

drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color)

Ekrana çizgi çizmenize olanak sağlar, x0, y0 noktasından başlayan x1,y1 noktasında son bulan bir çizgi çizdirir :

display.drawLine(0,0,127,31,SSD1306_WHITE);

ekranın sol üstünden başlayan sağ altına kadar giden bir çizgi çizer.

drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)

Ekrana merkezi x0,y0 noktasında olan ve yarı çapı r pixel olan color renginde bir daire çizer. Eğer daireniz yeterince daireymiş gibi görünmüyorsa, bu ekranın dikey piksel aralığının yatay piksel aralığından daha fazla olmasından kaynaklanıyor olabilir ya da yüksekliğinizi düşük girmiş olabilirsiniz. Yüksekliği 64 piksel olan ekran için 32 piksel girerseniz ekranınız dikey olarak olduğundan geniş görüneceğinden daire değil de elips görüyor olacaksınız ekranda.

display.drawCircle(64,15,15,SSD1306_WHITE);

aynı patametrelerle fillCircle fonksiyonunu içi dolu bir daire çizmek için kullanabilirsiniz:

display.fillCircle(64,15,15,SSD1306_WHITE);

drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, uint16_t color)

Ekrana merkezi x0,y0, notasında r piksel yarı çapında color renginde bir dairenin çeyreklerini çizmenize olanak sağlar, bu fonksiyon yardımıyla köşe noktaları yuvarlak olan dikdörtgen butonlar çizebilirsiniz, tabi drawLine falan da kullanmanız gerekecek, bunun için özel bir fonksiyon var, aşağılarda yazıyor olacak; cornername parametresini 4 bitlik ikili sayı sisteminde bir değer olarak düşünün 1 ler basamağınız 1 ise dairenin sol üst çeyreğini, 2 ler basamağınız 1 ise sağ üst çeyreğini, 4 ler basamağınız 1 ise sağ alt çeyreğini, 8 ler basamağınız 1 ise sol alt çeyreğini çizdirebilirsiniz. Daha kolayınıza gelsin diye kütüphanenin tanımlamalarını kullanabilirsiniz, köşe sayınız birden fazla ise aralarına | or koymanız işinizi çözecektir :

display.drawCircleHelper(63,15,5,CORNLUP | CORNRDN,SSD1306_WHITE);

merkezi x=63, y=15 te olan 5 piksel yarı çapındaki bir dairenin sol üst ve sağ alt çeyreğini ekrana çizer.


drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color)

Ekranda x0,y0,x1,y1,x2,y2 noktalarında köşeleri bulunan color renginde içi boş bir üçgen çizer 

display.drawTriangle(0,0,63,31,127,0,SSD1306_WHITE);

aynı parametrelerle içi dolu bir üçgen çizmek için :

display.fillTriangle(0,0,63,31,127,0,SSD1306_WHITE);

kulanabilirsiniz.

drawRoundRect(int16_t x, int16_t y, int16_t w, int16_t h, int16_t r, uint16_t color)

Sol üst köşesi x,y noktasında olan w piksel genişliğinde h piksel yüksekliğinde kenarları r piksel yarı çapında oval olan içi boş bir dikdörtgen çizmenize olanak sağlar.

display.drawRoundRect(10,10,70,20,5,SSD1306_WHITE);

aynı parametrelerle içi dolu bir dikdörtgeni:

fillRoundRect(10,10,70,20,5,SSD1306_WHITE);

fonksiyonuyla çizebilirsiniz.




Hiç yorum yok:

Yorum Gönder