mBlock ile Arduino! Keypad ve Lcd Ekran ile Şifre Kontrol
mBlock programının ne olduğunu, STEM kavramını, algoritma mantığını ve benzeri bir sürü konuyu bu serimizde birlikte görmüş olduk. Artık adım adım mBlock serimizin sonuna yaklaşmaktayız. Tabii ki siz bu seri sayesinde öğrenmiş olduğunuz bilgilerle, ileride çok daha farklı projeleri gerçekleştirmeye çalışabilirsiniz. Önemli olan tek şey istemek ve onun için çalışmak…
Bugün sizlerle birlikte Keypad kullanımını öğrenmek istiyorum. Ardından ise LCD ve LED yardımları ile şifre kontrol ve güvenlik uygulaması yapacağız.
Membran Tuş Takımı Nedir?
Daha detaylı incelemeden önce klavyenin kavramının anlamını iyice oturtmamız lazımdır. Klavye, üzerinde harf, rakam veya farklı farklı semboller bulunduran ve bunları bağlandığı ortamda giriş birimi olarak kullanan bir donanımdır. Biz bugün ki projemizde ise özellikle Membrane Tuş Takımı ve çeşitlerine odaklanacağız. Membrane switch, bir devreyi açıp kapatmak gibi birçok işlemi gerçekleştirmek için kullanılan elektrik switchdir. İleri seviye teknolojiye hızlıca ulaşmaları, Uygun fiyat, basit ve hızlı montaj olmaları, onların bu alanda seçilmelerinde büyük katkı sağlamıştır. Günümüzde de Türkiye’de kullanımı gittikçe artmaktadır.
Bizim de bugün ki projemizde kullanacağımız 4×4 Membran Tuş Takımı, aşağıda gördüğünüz gibidir.
Bizim kullandığımız tuş takımımızın 8 adet giriş pini bulunmaktadır. Bunların siyah olan 4 adet pini satırlar ve geri kalan beyaz olan 4 adet pin sütunlardır. Bağlantı şemasını kurarken bu duruma dikkat ederek kuracağız.
Uygulama
Bugünkü uygulamamızda hem bağlantı şeması biraz daha karmaşık hem de algoritma mantığı daha karışık bir proje yapacağız. Bu yüzden uygulamayı adım adım gerçekleştirirken, bir tık yavaş olmamız gerekmektedir. Uygulamamızın çalışma mantığı, şifre kontrol ve güvenlik mantığı üzerine olacaktır. Uygulamamızda iki adet ilerleyebileceğimiz işlem olacaktır. Bunlardan biri klasik olarak şifrenizi girdiğiniz ve doğru ise mavi LED’i yaktığınız (yanlış olursa kırmızı yanacaktır)işlem olacaktır. İkinci işlem ise istediğiniz zaman şifrenizi değiştirebileceğiniz süreçtir. O zaman uygulamamıza yavaş yavaş geçelim.
Gereken Malzemeler
- Arduino UNO
- Membran Tuş Takımı
- 2×16 Lcd
- LED (kırmızı ve mavi)
- Potansiyometre(isteğe bağlı)
- Jumper kablo
- Breadboard
Bağlantı Şeması
Öncelikle LCD bağlantımızı gerçekleştiriyoruz
- Vss-GND
- Vcc-5V
- VEE (Kontrast ayarı)- potansiyometre orta bacağı
- RS-8 numaralı pin
- RW-GND
- E-9 numaralı pin
- D4-4 numaralı pin
- D5-5 numaralı pin
- D6-6 numaralı pin
- D7-7 numaralı pin
- A-5V
- K-GND
Hemen ardından Keypad’in bağlantısını gerçekleştiriyoruz. Önceden de belirttiğim gibi 4 adet satır ve 4 adet sütun bağlantısı bulunmaktadır. Bunları bağlarken dikkat ediyoruz. Bağlantıyı kurarken siyah pin kısmından sırası ile bağlıyoruz.
• 1 numaralı siyah pin-10
• 2 numaralı siyah pin-11
• 3 numaralı siyah pin-12
• 4 numaralı siyah pin-13
• 5 numaralı beyaz pin-14
• 6 numaralı beyaz pin-15
• 7 numaralı beyaz pin-16
• 8 numaralı beyaz pin-17
Kod Blok Yapısı
Öncelikle bugün ki kod yapımız biraz karmaşık gözükecektir. Aslında o kadar zor bir yapıya sahip değil, sadece algoritmayı kafanızda iyi oturtmanız gerekiyor. Programlamaya başlamadan önce ilk olarak LCD ve keypad uzantısı indirmemiz gerekmektedir. Bunun için mBlock ara yüzünden uzantı sekmesine girerseniz hemen halledebilirsiniz.
Artık kodlamaya başladığımıza göre “Arduino Programı” adlı kod bloğuyla başlayabiliriz. Devamında 2 adet değişken oluşturmamız gerekmektedir. Size en başta bahsettiğim gibi biri “işlem” adlı değişken olacaktır. Onun sayesinde, ona vereceğimiz değere göre yapacağımız işlemi seçebileceğiz. Diğeri ise “şifre durumu” adlı değişken olacaktır. Bu da şifre üzerinde değişiklik yapmak istediğimizde kullanacağız. O zaman değişken oluşturduğumuza göre devam edebiliriz. “Arduino Programı” adlı bloğun altına garanti olsun diye işimiz “lcd clear” sürüklüyoruz. Devamında ise keypad bağlantılarını yaptığımız pinleri isteyen bloğu atıyoruz. Ardından iki değişkenimizi de “0”a eşitliyoruz. Bu sayede onları değiştirdiğimizde, sorgulatarak işlemimize karar verebiliriz. Devamında şifremizi içine koyacağımız ve ona ekstra olarak içi boş iki adet string oluşturuyoruz (boş string için sadece iki adet çift tırnak kullanıyoruz”. Bu sayede şifre üzerinde oynama yapma şansını elde etmiş oluyoruz. String(2)’nin kullanım amacı yeni girdiğiniz şifreyi oraya geçici olarak kaydetmektir(Şifre değiştirme durumunda kullanılır). String(3) ise girdiğimiz karakterleri tutmamızı ve ana şifre ile karşılaştırmamızı sağlar.
Tabii ki ana kod yapımıza geçmeden önce ilk önemli seçimi yapmamız gerekmektedir. Bunlar kullanıcıdan ‘A’ veya ‘B’ tuşlarını basmasını istemek olacaktır. Eğer ‘A’ya basarsa şifre değiştirme işlemine girmesini, ‘B’ye basarsa şifre kontrol işlemine bağlı led yakma işlemine geçmesini istemekteyiz. Bunu yapmak için “eğer ise” adlı bloğun içine 2 adet daha “eğer ise” bloğundan koyuyoruz. Ardından gereken blokları yerleştiriyoruz.
Şimdi ikinci adıma geçtiğimize göre ilk yapmamız gereken şey, ikinci bir ayrı kod blok yapısı oluşturmaktır. Yine bu yapımıza “Arduino Programı” adlı kod bloğuyla başlayabiliriz. Ardından sürekli tekrarla bloğu koyup, içine eğer ise bloğu sürüklüyoruz. İçine de “Tuş basılı mı?” adlı bloğu koyup onu değerlendiriyoruz. Ardında içine 2 adet eğer ise bloğu koyuyoruz ve “işlem” adlı değişkeni sorguluyoruz. Eğer 1’e eşit ise ilk döngüye girmektedir, eğer 2’ye eşitse ikinci döngüye girmektedir. En son koyduğumuz bloğun içinede “eğer ise-değilse” bloğunu sürüklemekteyiz. Bu sayede programa baktığımızda görürüz ki sistem ‘#’ tuşuna basıldığı algılarsa şifre girme işlemini kesmektedir ve şifre kontrol adımına geçmektedir. Fakat bastığınız tuş (‘#’ ‘*’ ‘A’ ‘B’ ‘C’ ‘D’) bunlardan biri değil ise ve sayı girmeye devam etmekteyseniz bunu LCD’nin alt satırına anlık olarak girmektedir.
Şifre durumu 0 ise bunun anlamı şifre üzerinde işlem yapılmamaktadır. İlk olarak o döngünün içine girildiğinde ilk olarak bizden şifremizi girmemizi istemektedir. Devamında yukarıda bahsettiğim gibi ‘#’ basmamızla birlikte şifre kontrol edilip buna göre tepki verilmektedir. Eğer doğru ise bizden yeni şifre istemektedir. Bu anda işlem yapıldığı için “şifre durumu” 1’e dönüştürülmektedir. Ardından şifre durumu 1 olduğu için o döngünün değilse kısmına bizi otomatik atmaktadır. Orada Şifremiz sistemde oluşturduğumuz string(2)’nin yardımı ile kaydedilmektedir. Şifrenin, sisteme kaydı sağlandıktan sonra tekrardan şifre durumu otomatik olarak 0’a çevrilmektedir. Yanlış girmişsek şifre durumu değişmediği için bizi döngünün başına tekrar atmaktadır bu sayede sistem kusursuz ilerlemektedir. Döngü bu şekilde ilerlemektedir.
Ardından işlem 2’ye geçmek gerekirse, bu da çok basittir. İşlem ikide biz LED kullanmayı tercih ettik ama sizler servo motor vb istediğiniz araçları kullanabilirsiniz. Bu nokta sizin hayal gücünüze bağlıdır. Her B tuşuna bastığınızda, bizi otomatik işlem 2’ye atmaktadır. Devamında bizden şifremizi girmemizi istemektedir ve buna bağlı olarak LED kontrolümüz gerçekleşmektedir. Yanlışken kırmızı, doğru girersek mavi yanmaktadır. Mantığı bu kadar basittir. Program kısmıda basittir. İlk olarak “LCD clear” yapıyoruz ve ekran temizleniyor. İlk satıra “şifrenizi girin” yazıyoruz. Devamında “eğer ise” koşul koyma bloğu koyuyoruz. “Gelen tuş kodu” sayesinde sisteme biz şifremizi girmekteyiz ve her karakteri teker teker kontrol edebilmekteyiz. İşlem birdeki gibi (‘#’ ‘*’ ‘A’ ‘B’ ‘C’ ‘D’) tuşlarına basmadığınız sürece rakamlarla istediğiniz sayıyı girebilirsiniz. En son olarak ‘#’ tuşuna bastığınız an, “eğer gelen tuş kodu ‘#’ ise” adlı bloğun içine girmekteyiz. Artık sistem içinde girdiğimiz şifre ile hali hazırda olan şifremiz karşılaştırılmaktadır. Ona göre LED yakmaktadır. Programlamamız bu kadardır. Tek yapmanız gereken, bu kodu tekrar tekrar yazmak, çizmek.
Simülasyon
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.