STM32F4 ile OLED ekran kullanımı ve RTC Saat Uygulaması

Merhaba Arkadaşlar;

Bu yazımda sizlere piyasada çok sık kullanılan 128*64 OLED ekran kullanımı ve STM32 ile RTC saat uygulamasından bahsedeceğim.

Kullanacağımız OLED IC2 hattını desteklemektedir. Piyasada çeşitli çözünürlükte mevcuttur. Ben 128×64 olanın kullandım. Biraz küçük ama akım konusunda çok cimridir. Backlight kullanılmıyor malum OLED olduğu için her pixel birer leddir.

 

 

İlk önce CubeMX programını açıp benim kullandığım Discovery F401 kartını seçiyorum. (siz başka bir kart yada işlemci seçerek ilerleyebilirsiniz)

Daha sonra sırası ile kullanacağımız modülleri seçiyoruz.

Dahili sıcaklık gösterimi için ADC ayarı:

RTC için ayar:

OLED için IC2 ayar:

Daha sonra Osilatör ayarını değiştirmeyeceğiz, default ayar devam edilecek.

Şimdi gelelim seçtiğimiz modüllerin ayarlarını yapmaya;

IC2 : 

ADC:

RTC:

Ayarlarımızı yaptıktan sonra programın bize kaynak kodlarını oluşturmasını sağlayacağız. Project -> Settings den aşağıdaki gibi projenin adı ve kullanacağınız derleyici seçilir.

Ayarları yaptıktan sonra Project -> Generate Code a basarak kaynak kod şablonu üretilir.

Benim oluşturduğum proje dosyasını aşağıdaki linkten ulaşabilirsiniz. (cubemx dosyası dahil.)

OLED_UYG_1

İster kendiniz ister linkteki projeyi kullanın, kodlama yapısında eklenecek yerler aşağıda belirtilmiştir.

  • ilk önce sistem dosyalarını include ediyoruz

  • Variables

  • Ekran, RTC ayarlama ve ilk açılış

While kısmı:

 

 

Bu bölümde dikkat etmeniz gereken nokta ilk çalıştırmada rtc yazan ve yoruma alınan kısımda saati ayarlamak için değerleri girmeniz gerekiyor. Enerji verip RTC ayarlandıktan sonra tekrar rtc yi yoruma alıp derleyip yükleyebilirsiniz. Programda saat ayarlama menüsü oluşturmadığım için bu yöntemle bir kez saat ayarlanır. Dikkat etmeniz gereken bir nokta da Vrtc pinine 3V pil bağlamalısınız. Bu pin uA seviyelerinde enerji çekilerek RTC nin çalışmasını sağlamaktadır. İsterseniz programa saat ayar menüsü dahil edebilirsiniz.

Son hali ile program ekranı aşağıdaki gibi hem analog hemde digital saati göstermektedir. Ekranda görünen sıcaklık ise ayarladığımız gibi işlemci sıcaklığıdır.

Bir sonraki projede görüşmek üzere,
Kolay gelsin.

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.