Stm32 Encoder Nasıl Kullanılır ?

Stm32 Encoder Nasıl Kullanılır ?

Merhaba arkadaşlar bugun stm32 encoder uygulamasına değineceğiz. Bu yazımızda encoderin çalışma mantığı kullanım alanları ve kullanımı hakkında bilgi edinmiş olacağız..

Rotary Encoder Nedir ?

Rotary Encoder Örnek Görsel

Encoderlar temel olarak uygulanan fizilsel haraketi dijital ortama aktarmaya yarayan materyallerdir. Encoderların bir çok çeşidi bulunmaktadır ancak biz bunları mutlak ve artırımlı olarak 2 sınıfa ayırabiliriz ki bizim encoderimiz artırımlıdır sadece çalıştığı zamanlarda pulse atarak mcu ye artım yada azaltım durumunu belirtir.

Enkoder Pinout
Enkoder Pinout

Encoder Nasıl Çalışır ??

Encoder içinde bulunan bir delikli yada renkli plakaya optik yada manyetik olarak aktarılan sinyalin kesilme aktarılma durumuna göre çalışmaktadır. genellikle içerisinde 2 tane sinyal kaynağı bulunup bu kaynakların ilk önce yada sonra hangisinin alındığına bakarak ise yönü tayin edilmektedir. Örnek resme bakarak ta tam olarak sistemi kafamızda canlandırabiliriz

Encoder İç Şema
Encoder İç Şema

Encoder Kullanım Alanları Nelerdir ?

Encoderlar günümüzde o kadar çok yerde kullanılır ki verdiğimiz örneklerden sonra çok şaşıracağınıza eminim. Bunlardan başlıcaları ;Araç teypleri ses açma kapatma,Radyolar,Joysticklerde,Bulaşık Çamaşır Makineler vs… Sonsuz dönen tüm butonlarda rotary encoderlar kullanılıyor desek yanlış söylemiş olmayız!! Bu kadar çok alanda kullanılan meteryalin uygulamasına geçme zamanı geldi diye düşünüyorum.

Kullanılacak Malzemeler

Stm32 Encoder Bağlantı Şeması

4Bağlantı Şeması

Stm32 Encoder Kodlama

Bağlantılarımızı uygun olararak yaptığımıza göre artık uygulamaya geçebiliriz.

STM32 Rotary Enkoder ayarlarından önce onun kadar önemli olan clock ayarlarımızı yapalım.

STM32 CubeMX Rotary Enkoder Clock Ayarı
STM32 CubeMX Rotary Enkoder Clock Ayarı

Şimdide Timer bölümünden Rotary Enkoder Seçeneğini aktif edip rotary enkoderimizin ince ayarlarına geçelim.

STM32 CubeMX Rotary Enkoder Etkinleştirme
STM32 CubeMX Rotary Enkoder Etkinleştirme

Arkadaşlar bu kısımda Etkinleştirdiğimiz STM32 rotary enkoder ince ayarlarını yapacağız . Bu kısımda dikkat etmemiz gereken kısım enkoder kaça kadar saysın nasıl davransın bunlar içinse dikkat etmemiz gereken bölüm şu oluyor.

Counter Period (Kaça kadar saydıracağız) : Bu bölümde yazdığım gibi kaça kadar saysın istiyorsak o rakamı yazmalıyız.

Encoder Mode: Bu kısımda Enkoder döndürüldüğünde hangi yöne döndürüldüğünü tespit edilmek üzere zamanlayıcı arkadaşlar t1 and t2 seçebilirsiniz.

Stm32 Rotary Enkoder Ayarı
Stm32 Rotary Enkoder Ayarı

Arkadalar Pull-up direnç ayarı yaparak daha da stabil çalımasını sağlayabiliriz.

STM32 CubeMX Enkoder Pull-Up direnci
STM32 CubeMX Enkoder Pull-Up direnci

CubeMX ile projemizi derlediğimize göre artık kodlama aşamasına geçelim. Keil veya attolic yada herhangi bir ide ile Kodlamaya başlayalım..

Global alana değişkenimizi tanımlayalim

uint16_t adim_sayisi=0;

Şimdi arkadaşlar Main fonksiyon bloğunun while üstünde kalan kısmında Encoder Servisini başlatan kodumuzu Dahil edeceğiz.

HAL_TIM_Encoder_Start(&htim2,TIM_CHANNEL_ALL);

Şimdi While Döngümüzün içerisine Enkoder dönüş değerini alacağımız kodlarımızı girelim.

adim_sayisi= __HAL_TIM_GET_COUNTER(&htim2);

Artık adım sayımız “Adim_sayisi” değişkenine aktardığını göreceksiniz.

Video Anlatım

Dilerseniz video izleyerekte Öğrenebilirsiniz.

Uygulamamız burada sona erdi arkadaşlar. Diğer uygulamalarda görüşmek üzere İyi Çalışmalar..

Tam Uygulama İndirmek için TIKLA

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir