Orange Pi C++ Switch(Anahtar) ve Button(Buton) ile Led Kontrolü
Bu yazımızda hem switch hem de button ile bir anahtarlama yapacağız. Bir önceki yazımızda slide switch kullanımını görmüştük. Bu nedenle ilk baştan slide switch ile bir led kontrol devresi yapacağız. Daha sonrasında button un nasıl çalıştığından bahsedip button ile led kontrol devresi yapacağız.Bu yazıda anlatacağım ilk uygulama için bir slide switch ve bir led kullanacağız. Slide switch in nasıl kullanıldığını ve led bağlarken neden dirence gerek duyduğumuzu daha önceki yazılarda görmüştük.
Devre çiziminde gördüğünüz gibi ledin artı ucunu direnç ile birlikte Orange pi üzerinde çıkış olarak ayarladığımız gpio 1. pine, eksi ucunu da toprağa bağladık. Switch in dıştaki bir bacağına 3.3 V diğer dış bacağına da GND pinlerini bağladık. Şimdi kodlara bakalım.
Koddaki işleyişe bakacak olursak;
- 1. gpio pinine LED ismi veriyoruz, 7. gpio pinine BUTTON ismini veriyoruz.
- LED pinini çıkış, BUTTON pinini giriş olarak ayarlıyoruz.
- Eğer button açık konumda olursa led yanar , button kapalı konumda olursa lede 0(sıfır) lojik değeri gider yani sönük olur.
Kodumuzu bu şekilde yazdıktan sonra yazdığımız kodu;
sudo gcc -o proje_adı proje_adı.c -lwiringPi -lpthread ile derliyoruz,
sudo ./proje_adı diyerek çalıştırıyoruz.
Gördüğünüz gibi slide switch ile ledi aç kapa yapabiliyoruz. Şimdi aynı işlemi button ile yapacağız. Kodda bir değişiklik yapmayacağız. Çünkü buttona bastığımızda giriş pininden HIGH algılandığında yapılacak işlem ile slide switch i on yaptığımızda giriş pininden HIGH algılandığında yapılacak işlem aynıdır. Bu yüzden kodda bir değişiklik yapmıyoruz. Sadece bağlantıları değiştireceğiz. Bağlantılara geçmeden önce bilmemiz gerekenlere bakalım.
Uygulamamızda 2 bacaklı button kullanacağız.
İlk olarak Pull-up ve Pull-down direnç ne anlama geliyor buna bakalım. Anlam olarak pull-up yukarı çekmek, pull-down ise aşağı çekmek anlamına geliyor. Pull-up ve pull-down dirençler genel olarak mikrodenetleyicilerde veya entegrelerde lojik değerler (0-1) arasındaki geçişi düzgün bir biçimde sağlamak ve kararsız durumları gidermek amacı ile kullanılır. Pull-up direnci Vcc tarafında , pull-down direnci ise GND tarafında kullanılır. Tabi bu dirençlerin kullanımı sizin buton veya switch konumunu nasıl anlamlandırdığınıza bağlı. Örneğin butona basılmamış iken mikrodenetleyiciye sıfır(0) gitsin istiyorsanız bir pull-down direnci kullanmalısınız ve devre şeklinizi ona göre ayarlamalısınız.
Dirençlerin neden gerekli olduğunu bir örnek ile açıklayacak olursak, örneğin pull-down direnci kullanmamız gerekiyor ama biz kullanmadık. Bu durumda butona basılmamışken veya anahtar açık konumda iken mikrodenetleyici pini direk toprağa bağlı olduğu için sıkıntı yok. Fakat butona bastığımızda VCC-GND arası bir kısa devre oluşacağından mikrodenetleyici pini kararsız değerler algılar. Normalde bir(1) algılaması gerekirken buton konumu aynı kaldığı halde sıfır(0) da algıyabilir bir(1) de.
Eğer bir pull-down direnci kullanırsak butona basılmadığında pin pull-down direnci üzerinden bağlanır ve pin sıfır(0) değerini algılar, butona basıldığında ise pin Vcc ile bağlı bağlanmış olur ve pin bir(1) değerini gösterir.
Daha önceden dirençleri ledlerle kullanıp akımı sınırladık, slide switch ile kullanıp hem ara konumlardaki kararsızlıkta mikrodenetleyicimizin olası bir zarar görme durumunu engelledik, button ile de direnç kullanarak(pull-up veya pull-down) mikrodenetleyicinin 1' den 0' a veya 0'dan 1'e geçme durumundaki kararsızlığını engelledik.
Butonun bir ucunu VCC' ye bir ucunu da direnç ile birlikte GND' ye bağlıyoruz. Ayırıca direnç ile butonun bağlı olan ucunu Orange pi' de input olarak ayarladığımız pine bağlıyoruz.
Kodlar bu yazıda ilk anlattığım uygulama ile aynı. Bir değişiklik yapmıyoruz. Butonu gpio 7. pine ledi ise gpio 1. pine bağlıyoruz.
Daha sonra,
sudo gcc -o proje_adı proje_adı.c -lwiringPi -lpthread ile derliyoruz,
Daha önceden dirençleri ledlerle kullanıp akımı sınırladık, slide switch ile kullanıp hem ara konumlardaki kararsızlıkta mikrodenetleyicimizin olası bir zarar görme durumunu engelledik, button ile de direnç kullanarak(pull-up veya pull-down) mikrodenetleyicinin 1' den 0' a veya 0'dan 1'e geçme durumundaki kararsızlığını engelledik.
Butonun bir ucunu VCC' ye bir ucunu da direnç ile birlikte GND' ye bağlıyoruz. Ayırıca direnç ile butonun bağlı olan ucunu Orange pi' de input olarak ayarladığımız pine bağlıyoruz.
Kodlar bu yazıda ilk anlattığım uygulama ile aynı. Bir değişiklik yapmıyoruz. Butonu gpio 7. pine ledi ise gpio 1. pine bağlıyoruz.
Daha sonra,
sudo gcc -o proje_adı proje_adı.c -lwiringPi -lpthread ile derliyoruz,
sudo ./proje_adı diyerek çalıştırıyoruz.
Okuduğunuz için teşekkür ederim. Aklınıza takılan bir soru veya karşılaştığınız bir sorun olduğunda yorumlarda belirtebilirsiniz. Burada eksik olarak anlattığımı düşündüğünüz veya sizlerin gerekli olarak gördüğünüz bilgileri yine yorumlarda yazarsanız, bundan herkesin faydalanmasını sağlamış olursunuz. Herkese iyi çalışmalar.
Hiç yorum yok:
Yorum Gönder