ServoTimer2 Arduino Library Kurulumu ve Kullanımı - Turkish Tutorial

in utopian-io •  7 years ago  (edited)

This is a tutorial on an open source library "ServoTimer2" meant for servo timer functions for Arduino microcontrollers with a brief instructions on timer functions with an example, written in Turkish.

Merhaba, bugünkü yazımda açık kaynak bir mikrokontrolör olan Arduino için yazılmış "ServoTimer2" servo motorlar için zamanlama fonksiyonlarını yürüten yine açık kaynak olan bir kütüphanenin kurulumu ve kullanımını bir örnekle göstereceğim.


Timer Fonksiyonu Giriş

Öncelikle timer fonksiyonunun nasıl çalıştığını, ne işe yaradığını ve hangi durumlarda kullanıldığını özetlemek gerekir. Timer, Türkçeye zamanlayıcı veya sayıcı olarak çevrilir, mikrokontrolde bulunan saatin veya osilatörün mevcut değerini (pulse) okuyup, değeri örnekleyerek sayar. Sayma işlemi counter register değerini sürekli arttırır. Örneğin 8 bitlik bir timerda register sayısı 255 ise, timer 0'dan 255'e kadar sayar. 255 değerine ulaşıldığında register sıfır değerine döner ve interrupt (kesme) işlemi gerçekleşir.

timer2.png
Timer2 devresinin blok diyagramını gösteren şema.

Timer fonksiyonları zamana bağlı olan tüm işlemlerde kullanılır. Belirli bir zaman aşıldığında, belirli bir süre sona erdiğinde veya alarm fonksiyonuna benzer yöntemlerde kullanılabilir. Çeşitli timer fonksiyonu kullanım örnekleri, belirli zaman aralıklarında yanıp sönen LED, zamana bağlı çalışan elektrik motorları, zamanlı ısıtıcı gibi çoğaltılabilir.

timer_ornek.png
Arduino üzerinde timerlar kullanılarak yapılmış bir proje.

Arduino mikrokontrollerinde genelde üç adet timer bulunur: timer0, timer1, timer2. Daha fazla detaya girmeden kabaca özetlemek gerekirse timer0 ve timer2 8bitlik, timer1 16bitlik sayıcılardır. timer0 temel sayma işlemlerini gerçekleştirir, timer1 servo kütüphanesinin sayma işlemlerini, timer2 ise diğer tüm sayma işlemlerini gerçekleştirebilir. ServoTimer2 kütüphanesi adından da anlaşılabileceği üzere timer2 sayıcısını kullanır böylece timer1 sayıcısını işlemsiz bırakarak olası çakışmaları engeller.

arduino.png
Arduino mikrokontrolör.


ServoTimer2 Kütüphanesini Kurulumu

ServoTimer2 kütüphanesi kurulum adımları aşağıdaki gibidir:

1. https://github.com/nabontra/ServoTimer2 adresinden kütüphaneyi indirin.
indirme.PNG

2. Arduino programını açıp sırasıyla Sketch->Include Library->Add .ZIP Library seçeneklerini seçin.
add-lib.png

3. ServoTimer2-master.zip dosyasını seçin ve Open'a tıklayın.


ServoTimer2 Kütüphanesi Kullanımı

ServoTimer2 kütüphanesinin kullanımını bir hobi(RC) servo motor kontrolü projesiyle anlatacağım. Adımlar aşağıdaki gibidir.

1. Yeni bir sketch açın ve "ServoTimer2_Deneme" olarak kaydedin.

2. Kodun en başına #include <ServoTimer2.h> yazarak kütüphaneyi ekleyin. Daha sonra servolarımızı eklemek için, aşağıdaki kodları ekleyin.

1.PNG

3. void setup() kısmına tırnağın içine aşağıdaki kodu ekleyip, servolarımızı istediğiniz herhangi pinlerden ikisine bağlayın.

2.PNG
Servo motorlarınızı istediğiniz herhangi bir pine bağlayabilirsiniz. Bu örnekte 3. ve 4. pinlere bağlanmıştır.

4. void loop() fonksiyonunun tırnaklarının içine aşağıdaki kodları ekleyin. Bu kod ilk servonuzu 0 derece konumundan 180 derece konumuna getirirken, ikinci servonuzu 180 derece konumundan 0 derece konumuna getirir. Bu işlemleri yaparken 15ms delay komutu kullanılır. Bu delay süresi servoların istenen konuma ulaşması için kullanılmıştır ve Arduinodaki timer2 devresi kullanılarak sayılır. Böylece timer1 boşta kalmış olur ve farklı amaçlar için kullanılabilir.

3.PNG

Yukarıdaki örneğin Arduino dosyasını aşağıdaki linkten bulabilirsiniz. Unutmayın ki ServoTimer2 kütüphanesini tüm servo fonksiyonları için kullanabilirsiniz.
https://drive.google.com/open?id=1U7GZ6chpelGZEtXiiQRdZ1ElwUfPeZ86


Bu yazımda Arduino mikrokontrolörü için "nabontra" adlı GitHub kullanıcısı tarafından yazılmış "ServoTimer2" kütüphanesinin kurulumu, kullanımını örnekle anlattım. Timerlara da ufaktan giriş yaptığım yazımı umarım beğenirsiniz, okuduğunuz için teşekkürler. Başka yazılarda görüşmek dileğiyle.

GitHub: https://github.com/nabontra/ServoTimer2



Posted on Utopian.io - Rewarding Open Source Contributors

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Your contribution cannot be approved yet because it is not as informative as other contributions. See the Utopian Rules. Please edit your contribution and add try to improve the length and detail of your contribution (or add more images/mockups/screenshots), to reapply for approval.

  • Please correct your link addresses.

You may edit your post here, as shown below:

You can contact us on Discord.
[utopian-moderator]

I have updated my post as desired for reapproval. Have a nice day.

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Hey @drencolha I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • This is your first accepted contribution here in Utopian. Welcome!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x