Jump to content
Devre Forum
  • Kaydol

Önerilen İletiler

PIC16F25K20 ile Oled ekrani kullanımı anlatmaya çalışacağım

Kullandığım OLED (organic light emitting diode) ekranın yatayda 128 piksel düşeyde ise 32 pikseli var. Buradaki piksellerin her biri kart üzerindeki SSD1306 çipi ile kontrol edilmektedir.

Her bir piksel burada küçük minacik bir LED'e tekabül ediyor. SPI ya da I2C arayüzleri ile Mikrochip ile haberleşebiliyorlar

Biz I2C Protokolü ile haberleşme sağlayacağız ve I2C Haberleşmek için SDA ve SCL olmak üzere iki hatta ihtiyaç duyulmaktadır. 

SSD1306 OLED ekranın bir I2C adresi vardır. Benim kullandığım oled ekranın I2C adresi 0x7A dır.Bazı modellerinde 0x78 olabiliyor buna dikkat etmek gerekir.

Aşağıda bulunan resinde bağlantı pinleri gösterilmiştir buna  göre bağlantılarımızı yaparsak herhangi bir sıkıntı yaşamayız. 

VCC(+3.3) ve GND bağlantıları ters bağlandığı durumda oled ve PİC zarar görür.Dikkat ediniz.

LGP3Po.png

Kütüphane, ekran çözünürlüğüne bağlı olarak 3 tip SSD1306 OLED ekranını destekliyor

Bunlar : 128 × 64 piksel,

                128 × 32 piksel 

                 96 × 16 piksel. 
Biz Kullanmak istediğimizi çözünürlükteki oled ekran tipini ana kodda şu şekilde tanımlıyoruz
# define SSD1306_128_32

Bu projemizi oluştururken CCS C  (Ver.5.092 )derleyicisi programını kullanılacağız.

#include <18F25K20.h>           
#device ADC=10 
#fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR 
#use delay(clock=8000000) 

#define SSD1306_I2C_ADDRESS 0x78
#use i2c(Master,Fast=400000,sda=PIN_A1,scl=PIN_A0,STREAM=SSD1306)
#define SSD1306_128_32//


#BYTE       TRISA       =0xF92
#BYTE       TRISB       =0xF93
#BYTE       TRISC       =0xF94

#byte       PORTA       =0xF80
#byte       PORTB       =0xF81
#byte       PORTC       =0xF82

#include <SSD1306.c>    
#include <GFX_Library.c>
void main()
{

    TRISA = (0B00000000);
    TRISB = (0B00111101);
    TRISC = (0B11100000);

    PORTA = (0B00000000);
    PORTB = (0B00000000);
    PORTC = (0B00000000);


    setup_oscillator(OSC_8MHZ);
    setup_adc_ports(NO_ANALOGS);
    setup_adc(ADC_OFF);
    setup_spi(SPI_SS_DISABLED);
    setup_timer_0(T0_OFF);

    setup_timer_1(T1_DISABLED);
    setup_timer_2(T2_DISABLED, 0, 1);
    setup_timer_3(T3_DISABLED);
    setup_ccp1(CCP_OFF);
    setup_spi(SPI_MASTER | SPI_L_TO_H | SPI_XMIT_L_TO_H | SPI_CLK_DIV_4);
    
    SSD1306_begin(SSD1306_SWITCHCAPVCC,SSD1306_I2C_ADDRESS);
    display_clear();
    display_setTextSize(2);
    display_setTextColor(WHITE);
    display();
    delay_ms(1);
  
    while (TRUE)
    {
   display_startScrollRight(1,128);
     display_setCursor(1,1);
     display_print("Devreforum");
       display();
     delay_ms(15000);
   
    }     
      
}

Kütüphane Dosyları

GFX_Library

SSD1306

Bazı Kullanıcı Fonksiyonları;

SSD1306_begin(vccstate, i2caddr); ekranı başlatir ve i2c adresi

display_DrawPixel (x, y, color); ekranda bir piksel çizer, X ve Y pikseldeki koordinatlardır.

display_StartScrollRight(start, stop); sağa kaydıra  
display_startscrollleft (start, stop); sola kaydırma

display_startscrolldiagright (start, stop); çapraz sağa kaydırma
display_startscrolldiagleft (start, stop); sola çapraz kaydırma
display_stopscroll (); kaydırmayı Durdur

display_Display(); ekranda veri arabelleği yazdırır, herhangi bir çizimden sonra çağrılmalıdır.

display_cleardisplay (); arabelleği temizler
display_FillScreen (i); tüm ekranı doldurur,1 veya 0 
display_ınvertdisplay( i); ekranı tersine çevirir, 1 veya 0 

Fonksiyonları Kullandıkça buraya açıklamaları beraber ekliyeceğim

 

 

tarihinde azmi tarafından düzenlendi

İletiyi paylaş


İletiye bağlantı
Sitelerde Paylaş

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Misafir
Bu konuyu yanıtla

×   Yapıştırdığınız içerik biçimlendirme içeriyor.   Biçimlendirmeyi Temizle

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Önceki içeriğiniz geri yüklendi.   Editör içeriğini temizle

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Yeni Oluştur...

Önemli Bilgilendirme

Facebook / Twitter / Google hesabınızla kolayca kaydolup cevap verebilir, soru sorabilir, istekte bulunabilirsiniz.
Devam etmeniz, forum kurallarını kabul ettiğiniz anlamına gelir.            Forum Kuralları