Gelişmiş Buton ve 4x4 Tuştakımı Kütüphanesi

Başlatan sigmoid, 24 Haziran 2017, 10:37:58

sigmoid

Gelişmiş dememin sebebi bu kütüphane sayesinde kolay bir şekilde butona basılma, bırakılma, kısa süre basılma, uzun süre basılma, çift tıklama gibi durumları kolayca tespit edebiliyoruz.

Hazırladığım kodları ve örnek çalışmaları github siteme yükledim. Github : www.github.com/gencmucitler

Kütüphanelerin kullanımını anlattığım videolar çektim.

Video 1 : PIC Mikrodenetleyici ile Buton Kullanımı Uygulaması  https://youtu.be/hIp8KLPR9LA
İlk video basit düzeyde buton kullanımı ve kolay bir şekilde kontak sıçraması (debounce) olayını nasıl çözeceğimizi anlattım. Bu herkesin bildiği basit yöntem.

Video 2:  PIC Mikrodenetleyici ile Buton Okuma Fonksiyonu (Gelişmiş) https://youtu.be/TYUCASUAMg0
Bu videoda butona basılma, uzun basılma, bırakılma durumlarını kolayca tespit edebilecek kodlamadan bahsettim. Bu kod yapısı hem butona basıldığında hemde bırakıldığında  kodsıçrama (debounce) problemini de çözmektedir.
Buton fonksiyonlarını kullanabilmek için öncelikle arduinodaki millis() fonksiyonuna benzer bir fonksiyon oluşturdum. İsmi miliSaniye(). Bu fonksiyon PIC in enerji verildikten sonra kaç milisaniye boyunca çalıştığını tutuyor. Özellikle debounce için bu fonksiyon gerekli.

buton_oku() fonksiyonu içerisine

    if(!buton1)
        butonNo=1;
    else if(!buton2)
        butonNo=2;
    else if(!buton3)
       butonNo=3;


kod yapısı ile kullandığımız butonları taratmamız yeterli.

Kullanımına gelince

buton_oku() fonksiyonunu çağırıp kaç nolu butonun basılı olduğunu öğreniyoruz. Butonun basılma, bırakılma, uzunbasılma gibi durumlarını butonDurumu değişkeninden öğrenip istenilen işi yaptıratabiliyoruz.

Video 3: PIC Mikrodenetleyici ile Buton Okuma Fonksiyonu (Çift Tıklama) https://youtu.be/Ey1IhsIq2KQ
Çift tıklama ve kısa süre butona basma durumları eklendi.

Video 4:  PIC Mikrodenetleyici ile 4x4 Tuş Takımı Kullanımı https://youtu.be/f_zXtIKWIMs
Projelerimizde 4x4 tuştakımı (keypad) nasıl kullanabileceğimizden bahsettim. Butonlarda olduğu gibi tuştakımında da tuşa basılma, bırakılma, kısa basılma, çift tıklama, uzun basılma durumlarını da kolayca tespit edebileceğiz.

önce

tusno=tustakimi_oku();

fonksiyonunu çağırıyoruz. Daha sonra ister switch ister if bloğu ile kontrolleri yapıyoruz.

if(tusno=='A' && butonDurumu=CIFT_TIKLAMA)

gibi kullanarak hangi butonun hangi durumunda ne işyaptırtmak istediğimizi belirtmemiz yeterli.

Herkese iyi çalışmalar. inşallah faydalı olur.



Cemre.