En son ışığı görmüştük(Flaşör devresinden bahsediyorum). Şimdi gene ışığı göreceğiz hatta hep ışığı göreceğiz ama farklı şekillerde biraz delay kullanımından bahsedelim bir önceki örneğimizde delay_1s yazmıştık ve bununla bir saniyelik bir bekleme yapmıştık. ama 1,2sn beklemek istersek bunu jal dilinde farklı bir şekilde yazmamız gerekiyor. bunun için aşağıdaki örneğe bakacağız ve sonra küçük bir açıklama yapacağız.
include 16f84_4 -- Pic'imizi ve kaç Mhz ile çalıştığını belirledik
include jlib -- Kütüphanemizi çağırdık.
pin_b1_direction = output -- Pic üzerinde ki b1 pinini çıkış olarak belirledik
forever loop -- işlemlerimizin devamlı çalışabilmesi için sonsuz bir döngü içerisine aldık
pin_b1 = high -- b1 pinini high yaparak sinyal gönderiminde bulunduk
delay_100ms(12) – 1,2 saniye bekler
pin_b1 = low –b1 pinini low yaptık.
Delay_100ms(25) – 2,5 saniye bekler
end loop
Flaşör Devre ve Programı
evet yukarıda ki komutta tahmin ettiğiniz üzere delay_100ms normalde 100 milisaniye bekler fakat bizim parantezler içine yazığımız sayı kadar tekrar eder yani delay_100ms(12) demek 100ms*12 demektir. Buda 1,2 saniye yapacaktır. Bu basit konudan sonra şimdi yeni bir şeyler öğrenmenin zamanı oda pinin birisini giriş yapmaktan ibaret bir sonraki örneğimizde programımıza bir buton bağlayacağız ve butona basıldığı zaman ışığımız yanıp sönecek.
Yukarıda resimde buton bağlantımızı nasıl gerçekleştirdiğimizi görüyoruz. Bağlantı noktalarını sarımtırak olarak işaretledim. Size bir ip ucu vereyim hazır aklıma gelmişken şimdi bu standart bağlantıların olduğu dosyanızı bir kenarda tutun diğer çalışmalarınızda o dosyayı açar farklı kaydet ile kaydedersiniz ben ve birçok arkadaşım öyle yapıyor çok rahat oluyor. Bu ipucunu verdikten sonra biraz devre mantığından bahsedelim. Şuan devremizde a0 pinine sürekli 1 değeri gönderilmektedir. Butona bastığımızda devre kısa olan yolu yani topraklamaya giden kısma yönelecektir ve a0 pinine giden değer 0 olacaktır. Kısacası şöyle ki biz devrede butona bastığımızda a0 pini 0(sıfır) olacaktır. onun için jal da bu devrenin programını yazarken onu dikkate alarak yazacağız. Bir önce ki konuda portları burada daha detaylı anlatılacağı söylenmiştik tek bir detayımız var eğer a portundan bir pinini çıkış olarak gösterdiyseniz diğer pinler de çıkış olmak zorundadır. Yani a0 giriş a1 çıkış olma gibi durum söz konusu değildir. A portu ya giriş olacaktır ya da çıkış. Jal programımıza geçelim ve kodlarımızı yazalım
include jlib
pin_b1_direction = output --b1 pinini çıkış olarak belirttik
pin_a0_direction = input --a0 pinini giriş olarak belirttik
forever loop
if pin_a0 == low then – a0 pinine gelen değeri kontrol ediyoruz. Low mu high mı diye
pin_b1 = ! pin_b1
delay_1s
end if – if blogunu kapattık
end loop
Fark ettiğiniz gibi veri girişi olarak kullanacak olduğumuz pinleri input komutu ile belirliyoruz. Ve yeni bir şey if komutu if komutu ile a0 pinine gelen değeri sürekli kontrol altında tutuyoruz. IF bloğunun Türkçesi şöyle olabilir. Eğer a0 pini sıfıra(0) eşit ise b1 pinin tersini al ve yeni değer olarak onu kabul et. Bir saniye bekle endi f ile bloğu bitir. Ve tabi sonra end loop gördüğü için direk forever loop a gidecek ve buton hala basılı ise aynı işlemleri tekrarlayacaktır. Bu devrenin tasarı dosyasını ve jal komutlarını JAL ORNEK-1 den indirebilirsiniz.
Yorumlar