29 Kasım 2018 Perşembe

ASENKRON SERİ HABERLEŞME İLE FAN KONTROLÜ

Asenkron Seri Haberleşme ile Fan Kontrolü

Bu yazımızda asenkron seri haberleşme ile bilgisayardan aldığımız verilerle Orange pi'ye bağladığımız "led" ve "fan"ı kontrol edeceğiz. 

Bu öğretici seriye başlayıp haberleşmenin teorik kısmını anladıktan sonra öğrendiklerimizi bir de örnek uygulamalarla beraber kullanmamız gerekiyor. Bunun için şu anlık "python" ve "c" üzerine örnek uygulamaları göreceğiz ve kendimiz bu uygulamalara ekstra bir şeyler eklemeye çalışacağız. 

İlk aşamada "python" ile seri haberleşme nasıl yapılıyor, ne bilmemiz gerekiyor bunlara değindik. Sonra elimizdeki örnek kodu ve python'daki kodlama bilgilerini kullanarak bu örnek uygulamaları zenginleştirmeye çalıştık. 





Örnek uygulamada seri ekrandan girilen belirlediğimiz verilerde Orange pi terminal ekranına bir şey yazdırdık. Sonrasında yaş-burç uygulamasında seri ekrandan girilen verileri birden fazla karakter(string) olarak aldık ve bu verileri kullanarak tekrar seri ekrana bir veri yazdırdık. Sonrasında seri ekrandan alınan veri ile Orange pi çıkış pinini kontrol ettik. 

Bu yazıda fan kontrolü için yine bir pini kontrol edeceğiz fakat sadece bu pini kontrol etmek fanı döndürmek için bize yeterli olmayacak. Burada ekstra olarak transistör kullanımını da göreceğiz ve bunu projemizde uygulayacağız.

Elimizde üzerinde 12 V yazan bir fan var ve biz bunu döndürmek istiyoruz. Tabi bu 12 V' a kadar besleme yapabiliriz demek. Biz de bunu direk Orange pi pinine bağlıyoruz ve bu pini '1' konumuna getirdiğimizde fanın çalışmadığını ya da çok yavaş döndüğünün görüyoruz. Buna sebep pin çıkış geriliminin 3 V - 3.3 V olması ve çıkış akımını düşük olması gösterilebilir. Direk 5 volta bağlasak bu sefer de kontrol edeyeceğiz. Fan sürekli döner. Bu yüzden kullanımı da yaygın olan "S0850 NPN" transistörünü kullanacağız.


İlk önce kullanacağımız transistörü biraz inceleyelim. Biz burada "S0850 NPN" transistörünün akım yükseltme ve anahtarlama özelliğini kullanacağız.

Temel olarak 2 tip transistör vardır. Bunlar BJT ve MOSFET transistörler. Bizim kullanacağımız transistör BJT tipi  NPN transistördür ve genel olarak transistörlerin 3 bacağı olur.  BJT tipinde bu bacaklar yayıcı(emitter), baz(base) ve toplayıcı(collector) bacaklarıdır.  

NPN transistörleri açık konuma geçirmek için baz(base) kısmından pozitif akım geçmeli. Buna ikinci geilim kaynağı diyoruz. İlk gerilim kaynağının artısı ise fana(yüke), fandan da toplayıcıya(collector) bağlanır.

Base gerilimi bizim Orange pi piniden çıkan gerilim olacak. Fana bağlanacak gerilim ise Orange pi üzerindeki 5 V pinidir.

Yukarıda gördüğünüz gibi toplayıcı(collector) 500 miliampere kadar akım çekebilir.

Bağlantımız ise şu şekilde olacak. 

  

Base bacağını kontrol edeceğimiz Orange pi pinine bağlayacağız. Bu pin aslında devrenin anahtarı konumda. Eğer biz bu pine '1' vermezsek devrede fan dönmez.

Yapacağımız uygulamanın ikinci kısmında ise yine led kontrolü yapacağız. Bunun için detaylı bilgiye bir önceki yazıdan bakabilirsiniz.


Bu programda yine 2 seçeneğimiz var ve bu seçeneklerden ilk 1 saniye aralıklarla ledin yanması. Diğer bir seçenek ise fanı döndür seçeneği. Programdan sürekli bu ikisinden birini seçme hakkın olsun diye  olsun diye bu işlemlerim süresini sınırlıyoruz. Ledin yanma sönme durumu ve fanın dönmesini 10 saniyeye ayarlıyoruz. Böylece bir işlem bittiğinde bize tekrar led mi fan mı diye sorsun.


Eğer kullanıcı seri ekrana '2' girerse fanı kontrol ettiğimiz transistörün baz bacağına pozitif bir gerilim uyguluyoruz ve böylece fan çalışmaya başlıyor. 10 saniye sonra bu pini sıfırladığımızda fan duruyor.

Else durumunda kullanıcıya "sadece 2 kategorimiz vardır" ve "lütfen bir kategori seçiniz" dedikten sonra bu döngüden çıkıp tekrar bir alttaki mesajı da yazmasın diye burada continue kullanıyoruz. Böylece program döngü başına geliyor ve bizden tekrar bir giriş bekliyor.



Yukarıdaki görüntüye bakarak programın nasıl ilerlediğini görebilirsiniz.
Led ve fanı kontrol edebildiğimize göre bir sonraki yazıda küçük bir otomasyon programı yazacağız. Bu sefer işlemlerimizi string komutlar halinde seri ekrana yazacağız. Örneğin "ledyak" gibi. Bu tarz komutlar belirleyip programı ona göre yönlendireceğiz. Her program döngüsünde ekrana kontrol ettiğimiz çıkışların son durumunu yazdırarak kullanıcının güncel durumu görmesini sağlayacağız. Programı çalıştırdığımızda bir giriş parolası isteyeceğiz. Bu şekilde basit ama temel bir kaç ekleme yapacağız.

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.

Kaynakça:

Hiç yorum yok:

Yorum Gönder

Öne Çıkan Yayın

ORANGE PI PYTHON UART

ORANGE PI PYTHON UART Python kurulum  yazısında Orange pi'de Python konusuna giriş yapmıştık. Daha sonra  Python Gpio  yazısında gir...