Arduinoda Basit Menü Tasarımı

 

Bazı projelerde sistem çalışırken parametrelerde değişiklik yapmamız gerekebilir. Böyle durumlarda projemiz için bir menü hazırlamak işimizi oldukça kolaylaştırır.

Bu örnekte 16*2 LCD ekran ve tuş takımı kullanarak basit bir menü hazırlayacağız. Ben tuş takımı olarak eski bir bilgisayar faresi kullandım. Normalde arduino PS/2 klavye ve farelerle haberleşebiliyor, ilgili kütüphaneyi ve bu projede kullandığımız kütüphaneleri kütüphane arşivinde bulabilirsiniz. Bu projede farenin sadece tuşlarını kullanacağımız için diğer kısımları kesip çıkardım.

Picture 1Tuşların birer uçlarını graunda bağladıktan sonra diğer uçlarını da arduinonun dijital pinlerine bağlıyoruz.

 

Fare tekeri aslında döner bir enkoderdir, bunun için teker hareketini encoder kütüphanesini kullanarak okuyacağız.

Picture 2

Resimdeki gibi 3 bacaklı bir şey. Bu bacakların biri arduinonun grounduna diğer ikisi dijital pinlere bağlayacağız ama hangisini nereye…

Graund bacağını baskı devredeki yollara bakarak tahmin edebiliriz ya da deneme yanılma yöntemiyle bulacağız, diğer iki bacağın bağlama sırası çok önemli değil. Ters bağlarsak tekeri çevirme yönünü ters okur. Bağlantıların doğruluğunu kontrol etmek için encoder kütüphanesinin örnek kodlarını kullanabilirsiniz.

 

LCD nin VO (kontrast) ını arduinun PWM pinine, arka ışığı da bir transistör aracılığıyla arduinoya balıyoruz. LCD nin geri kalan bağlantılarını da yaptıktan sonra kod kısmına geçebiliriz.

Kütüphaneler ve tanımlamalar

 

Void Setup()

 

Void Loop()

 

Arka ışık Fonksiyonu

 

Saati gösteren fonksiyon

 

Basamak kaydırma

 

teker fonksiyonu fare tekerinin hareketini kontrol ederek -1, 0 ve +1 değerleri gönderir

 

yaz fonksiyonu ekranı temizleyip istenilen yazıyı yazar

 

Saati ayarlayan fonksiyon

 

yanson fonksiyonu

 

Ekran ayarlarının olduğu menü fonksiyonu.

Mantığı ana menüyle aynı ana menünün altına yerleştirdiğimiz için alt menü olarak çalışıyor.

You may also like...

10 Responses

  1. Ozcan Acar says:

    Paylaşımız için çok teşekkürler. Oldukça net, açıklayıcı ve faydalı bir paylaşım olmuş. Yaklaşık 2 aydır arduino ile uğraşıyorum. Yurtdışından sipariş verdiğim mlz ler henüz elime geçmediği için şimdilik öğrenmek ve mlz lere zarar vermemek adına proteusda simulasyon ile uğraşıyorum. Üzerinde çalıştığım projem için benzer bir menu yapmam gerekiyor. Bredboard için elimdeki mouse un encoderini söksem 3 ad normal buton ile benzer bir menu yapılabilir mi ?

  2. Ozcan Acar says:

    Button sag_tus = Button(8, PULLUP); buradaki “PULLUP” nedir? pullup dirençlerinin değeri falan mı yoksa bir değişken mi olacak ?

  3. Yalçın Pak says:

    Merhabalar, kullanmadığınız mouseden çıkan parçaları bu tarz uygulamalarda kullanabilirsiniz.Button sag_tus = Button(8, PULLUP); kısmında ise arduino üzerinde sabit belirlenmiş olan bir pullup direnci kullanılıyor.

  4. Ozcan Acar says:

    Sayın Yalçın Pak, ilginize çok teşekkür ederim. Programı linkte verilen kütüphaneler ile bir türlü çalıştıramadım. Saygılarımla

  5. Alaattin Akın says:

    Arkadaşlar güzel bir paylaşım yapmışsınız. Bu konuda çok kod inceledim. Fakat çoğunu anlayamadım. Sizin hazırladığınız menü gayet hoş bir şekilde yapılmış ve anlaşılması kolay. Teşekkür ederim. Dört satırlı ekranlar içinde bir kod paylaşırsanız çok sevinirim. Birde bir şey sormak istiyorum : -teker() fonksiyonu önündeki eksi işaretini bazı yerlerde kullanmış bazı yerlerde kullanmamışsınız. Anladığım kadarıyla fonksiyonun geri dönüş değerini ters çeviriyor. Doğrumu? Kısa bir açıklama yaparsanız sevinirim. Selamlar.

    • admin says:

      Sizin de tahmin ettiğiniz gibi fonksiyondan gelen değerin negatifini almak için…
      4 satırlı ekran konusuna gelirsen, bunun için ayrı bir anlatıma gerek yok. Ekran kullanımı konusunda kendinizi biraz daha geliştirirseniz bunu kendi kendinize rahatlıkla yapabilirsiniz. İyi çalışmalar

  6. soner says:

    Mouse yerine Joistik kullanırsak nasıl yaparız?

    • Yalçın Pak says:

      joystickin verebildiği en yüksek değerleri saptayıp o değerlerde menünün değişmesini sağlayabilirsiniz. Mousede enkoder okuma yerine yapılabilir.

  7. onur says:

    shiftlcd bağlantı sürmek için shift register entegre gerekmiyor mu

Leave a Reply

Your email address will not be published. Required fields are marked *