Merhaba Arkadaşlar
Bu ayki yazımızda bir şifre uygulaması yaptık ve sizlerin beğenisine
sunduk. Devre belirlenen bir şifrenin klavyeden girilmesi ile role'yi tetikliyor.
Şimdi sistemin genel çalışma prensibi üzerinde biraz duralım. Programın
ana döngüsü klavyeden girilen şifreyi LCD'de görüntülüyor, doğruluğunu
kontrol ediyor ve eğer doğru şifre girilmiş ise role'yi tetikliyor. Yanlış
ise tekrar başa dönüyor. Burada dikkat edilmesi gereken husus, eğer klavyede
mekanik düğme kullanırsanız, düğmenin basılıp basılmadığını okurken mutlaka
bir süre bekleme döngüsü kullanmanız gerektiğidir. Eğer bekleme döngülerini
ihmal ederseniz, siz düğmeye bir defa basmış olsanız bile program 3-4 defa
basılmış gibi işlem yapar. Mesela şifrenin 1782 olduğunu varsayalım. Siz
şifreyi girmek için sırasıyla "1", "7", "8" ve "2" ye tekabül eden düğmelere
basarsınız ama program girdiğiniz sayıyı "1117" veya "1177" gibi bir değer
olarak algılar ve şifre doğru girilse bile role tetiklenmez. Bunun sebeplerini,
mikro kontrollerin çok hızlı çalışması ve mekanik düğmelerin ark yapması
olarak sıralayabiliriz. Mikro kontroller beklediğinizden çok hızlı çalışırlar.
Örneğin 4 MHZ'de çalışan bir mikro kontrol saniyede 1.000.000 adet işlem
yapar. (Neden 4 milyon değil de bir milyon? Çünkü saat darbeleri dahili
olarak işlemci içinde dörde bölünür.) buradan şu neticeyi çıkarabiliriz;
siz düğmeye basıp bırakana kadar mikro kontrol çok fazla işlem yapar ve
birden fazla basılmış gibi işlem görür. Mekanik düğmelerin ark yapması
ise şöyle izah edelim; düğmeyi bırakırken elektronların atlamasından dolayı
düğme ark yapar ve voltaj dalgalanmaları meydana gelir, bu da mikro kontrol
tarafından düğmeye birden fazla basılmış gibi algılanır. Tüm bu sebeplerden
dolayı düğme basılma durumunu okurken mutlaka bir miktar bekleme sağlanması
gerekir. Bu bekleme miktarını siz çeşitli denemeler yaparak tespit edebilirsiniz.
Yalnız bu beklemeyi çok uzatmanın da düğme basışlarını kaybedebileceğini
hatırınızda bulundurun. Kolay gelsin.
Şemayı görmek için buraya tıklayın.
Şifre.hex dosyasini almak için buraya
tıklayın.