Arkadaşlar merhaba ben Yusuf. Bu yazıda sizlerle STM32 ile I2C Oled ekranlar nasıl kullanabiliriz onu öğreneceğiz. Detayları yazımın devamını okuyarak bulabilirsiniz. Kafanıza takılan bir soruyu yorum olarak sorabilirsiniz ayrıca öneri ve eleştirilerinizi de bekliyorum.
Malzemeler
Adım 1: CubeIDE Üzerinde STM32 Projesi Oluşturma
Projemizi oluşturmadan önce STM32CubeIDE üzerinde projemizde kullanacağımız mikrodenetleyiciyi seçmemiz gerekiyor. Ben elimde bulunduğu için F411CEU6 modelini seçeceğim. Siz elinizdeki modeli seçerek ilerleyeceksiniz.
Mikrodenetleyicimizi seçip Next dedikten sonra projemize isim vererek devam ediyoruz. Burada gelen ekranda mikrodenetleyicimizin birimlerini düzenleyeceğiz.
İlk olarak sol tarafta bulunan menüden System Core kategorisi altında bulunan SYS menüsüne geliyoruz ve Debug’ı fotoğraftaki gibi Serial Wire yapıyoruz.
Daha sonra RCC menüsüne giriyoruz ve fotoğraftaki gibi High Speed Clock (HSE) seçeneğini Crystal/Ceramic Resonator seçiyoruz.
Daha sonra Connectivity menüsü altında bulunan I2C birimlerinden birini seçiyoruz. Ben I2C1’i seçerek devam ediyorum. Bu menü altında I2C’yi fotoğraftaki gibi I2C seçip aşağıda açılan Configuration sekmesinde fotoğraftaki gibi I2C Speed Modunu Fast Mode’a ayarlıyoruz. Bu ayarlamadan sonra bu sekmedeki işimizi bitiriyoruz.
Bu işlemleri yaptıktan sonra ekranda bulunan mikrodenetleyicimizin ön izlemesinde bazı pinlerin yeşil olduğunu göreceksiniz.
Şimdi sırada mikrodenetleyicimizin çalışacağı frekansı ayarlamakta bunun için üst tarafta bulunan sekmelerden Clock Configuration sekmesine geliyoruz burada fotoğraftaki ayarları uygulayıp ALT+K tuşlarına basarak kodumuzu oluşturuyoruz.
Şimdi yapmamız gereken kütüphane dosyalarımızı indirip projede ilgili klasörlerine atmak. Ben kullanım kolaylığı ve işlevsel fonksiyonlarından dolayı Controllers Tech’in hazırladığı kütüphaneyi tercih ediyorum. Inc klasörü içine fonts.h ve ssd1306.h dosyalarını atıyoruz. Src klasörü içine ise fonts.c ve ssd1306.c dosyalarını kopyalıyoruz.
Adım 2: CubeIDE Üzerinde Kodları Yazma
Projemizi başarı ile oluşturup kütüphane dosyalarını ekledikten sonra main.c içerisinde ilk önce kütüphanemizi import ediyoruz bunun için aşağıdaki kodu kullanıyoruz.
/* USER CODE BEGIN Includes */
#include "ssd1306.h"
#include "fonts.h"
/* USER CODE END Includes */
Yazdığımız kodları ve projemize eklediğimiz kütüphaneleri USER CODE yorum satırları arasına yazmamız çok önemli. Çünkü CubeIDE her mikrodenetleyici ayarı yaptığımızda kodu sıfırdan oluşturuyor. Bu işlem sırasında kodlarımızın silinmemesi için kodlarımızı USER CODE yorum satırları arasına alarak silinmelerin önüne geçiyoruz. Kütüphanemizi import ettikten sonra main loopumuzda ssd1306 oled ekranımızı başlatmalıyız bunun için aşağıdaki kodu kullanıyoruz.
/* USER CODE BEGIN 2 */
SSD1306_Init();
/* USER CODE END 2 */
Şu andan itibaren oled ekranımız kullanıma hazır hale geliyor. Şimdi ilk örnek olarak oled ekranımızda belirli konumlarda yazı yazdıralım. Yine USER CODE yorum satırları arasında aşağıdaki kodu kullanabiliriz.
SSD1306_GotoXY (0,0);
SSD1306_Puts ("Merhaba", &Font_11x18, 1);
SSD1306_GotoXY (10, 30);
SSD1306_Puts ("ROBO90 !!", &Font_11x18, 1);
SSD1306_UpdateScreen();
Burada SSD1306_GotoXY fonksiyonu ekran imlecimizin gideceği x ve y koordinatlarını ayarlıyor. SSD1306_Puts fonksiyonu ise imlecin bulunduğu konuma bir string verisi yazdırıyor. Buradaki en önemli kod olan SSD1306_UpdateScreen(); ise oled ekranımızı güncelliyor ve ona yazdırdığımız şeylerin gözükmesini sağlıyor.
Adım 3: Devre Şeması, Bağlantı ve İlk Test
STM32 OLED LCD Devre Şeması ve Bağlantı
Oled ekranımızın çalışması için güç ve veri hatlarını mikrodenetleyicimize bağlamalıyız. I2C pinlerimiz B6 ve B7’de olduğu için karşılığı oldukları sinyalleri bağlıyoruz. Uygun devre şemasını fotoğrafta görebilirsiniz.
İlk Test
Oled ekranımızı ve STM32’mizi birbirine bağladıktan sonra sıra STLink üzerinden kodumuzu atmaya geliyor. Bunun için önce kodumuzu derleyip (Fotoğrafta en soldaki üzerinde 010 yazan kağıt ikonlu tuş ) daha sonra debug modunda kodumuzu çalıştırıyoruz. (Fotoğrafın en sağındaki örümcek ikonu)
Bunları yaptıktan sonra alt fotoğrafta gözüken kısım ile karşılaşacağız fotoğrafın en soldan ikinci ikonuna tıklayıp kodumuzun mikrodenetleyici içerisinde çalışmasını başlatıyoruz.
Bunları yaptıktan sonra OLED ekranımızda aşağıdaki gibi bir görüntü olması gerekiyor. Eğer bu sonucu elde edebildiyseniz STM32 ile başarılı bir şekilde OLED ekranını kullanabildiniz demektir.
Diğer STM32 Projeleri Yazılarımızı İnceleyin
Kullanışlı Linkler
STM32 ile Debug İşlemi: STM32 ile Debug İşlemi
Instagram: https://www.instagram.com/yusuf_cosgun04/
Discord sunucusu: https://discord.gg/8MVnu59tkx
Discord: reevee0
2 yorum
alert(‘THM’);
Ellerinize sağlık mükemmel anlatmışsınız. Çoğu video anlatımından başarılı olmuş