- Gerekli malzemeler:
- Devre şeması:
- Arduino Hesap Makinesi Programı:
- Arduino Hesap Makinesinin Simülasyonu:
- Arduino Hesap Makinesinin Çalışması:
Programlama her zaman eğlencelidir ve Gömülü programlamaya yeni başlıyorsanız Arduino harika bir platformdur. Bu eğitimde Arduino ile kendi hesap makinemizi oluşturacağız. Değerler bir tuş takımı (4 × 4 tuş takımı) aracılığıyla gönderilebilir ve sonuç bir LCD ekranda (16 × 2 Nokta-matris) görüntülenebilir. Bu hesap makinesi, tam sayılarla Toplama, Çıkarma, Çarpma ve Bölme gibi basit işlemleri gerçekleştirebilir. Ancak kavramı anladıktan sonra, Arduino'nun yerleşik işlevleriyle bilimsel işlevleri bile uygulayabilirsiniz.
Bu projenin sonunda Arduino ile 16x2 LCD ve Tuş Takımının nasıl kullanılacağını ve ayrıca hazır kütüphaneleri kullanarak onlar için programlamanın ne kadar kolay olduğunu öğreneceksiniz. Ayrıca, Arduino'nuzu belirli bir görevi yerine getirmek için nasıl programlayacağınızı da anlayacaksınız.
Gerekli malzemeler:
- Arduino Uno (Herhangi bir sürüm çalışacaktır)
- 16 × 2 LCD Ekran
- 4 × 4 Tuş Takımı
- 9V Batarya
- Breadboard ve Bağlantı telleri
Devre şeması:
Bu Arduino Hesap Makinesi Projesinin tam devre şeması yukarıda verilmiştir. Devre şemasında gösterilen + 5V ve toprak bağlantısı, Arduino'nun 5V ve topraklama piminden elde edilebilir. Arduino'nun kendisi, dizüstü bilgisayarınızdan veya 12V adaptör veya 9V pil kullanılarak DC jakından çalıştırılabilir.
LCD'yi Arduino ile 4-bit modunda çalıştırıyoruz, böylece LCD'nin sadece son dört veri biti Arduino'ya bağlı. Klavye, yukarıda gösterildiği gibi pin 0'dan pin 7'ye bağlanması gereken 8 çıkış pinine sahip olacaktır. Arduino ile bağlantınızı doğrulamak için aşağıdaki bağlantı tablosunu kullanabilir, ayrıca Arduino ile 4x4 Keypad arayüzünü kontrol edebilirsiniz.
Arduino Pin Adı: |
Bağlı: |
D0 |
1 st klavyenin pimi |
D1 |
2 nd klavyenin pimi |
D2 |
3 rd klavyenin pimi |
D3 |
4 th klavyenin pimi |
D4 |
Klavyenin 5 inci pini |
D5 |
6 inci klavyenin pimi |
D6 |
7 inci klavyenin pimi |
D7 |
8 inci klavyenin pimi |
D8 |
LCD'nin seçme pinini kaydedin (pin 4) |
D9 |
LCD pinini etkinleştirin (pin 6) |
D10 |
Veri pini 4 (pim 11) |
D11 |
Veri pini 4 (pim 11) |
D12 |
Veri pini 4 (pim 11) |
D13 |
Veri pini 4 (pim 11) |
+ 5V |
LCD'nin Vdd pinine bağlı (pin 2) |
Zemin |
LCD'nin Vss, Vee ve RW pinlerine bağlı (pin 1,3 ve 5) |
Bazı Arduino kartları, pin 0 ve pin1'e bağlı herhangi bir şey varsa, programı yüklerken bir hata gösterebilir, bu nedenle herhangi bir sorunla karşılaşırsanız, programı yüklerken sadece tuş takımını çıkarın.
Bağlantılarınız tamamlandıktan sonra, donanımınız aşağıdaki gibi görünecektir.
Arduino Hesap Makinesi Programı:
Tam Arduino programı bu proje için bu projenin sonunda verilir. Kod küçük anlamlı parçalara bölünmüş ve aşağıda açıklanmıştır.
Daha önce de belirtildiği gibi, kütüphaneleri kullanarak bir LCD ve tuş takımı ile Arduino arasında arayüz oluşturacağız. Öyleyse önce onları Arduino IDE'mize ekleyelim. LCD kütüphanesi varsayılan olarak Arduino'nuza dahil edilmiştir, bu yüzden endişelenmemize gerek yoktur. Tuş takımı kitaplığı için Github'dan indirmek için bağlantıya tıklayın. Bir ZIP dosyası alacaksınız, ardından bu kitaplığı Sketch ile Arduino'ya ekleyeceksiniz -> Kitaplığı Dahil Et ->.ZIP dosyası ekle ve konumu bu indirilen dosyaya yönlendirin. Bittiğinde hepimiz programlama için hazırız.
Bir tuş takımı kullanmak için bir kitaplık kullanmış olsak da, Arduino'nun tuş takımı hakkında birkaç ayrıntıdan (aşağıda gösterilmiştir) bahsetmemiz gerekir. ROWS ve COLS değişkeni, tuş takımımızın kaç satır ve sütuna sahip olduğunu söyleyecektir ve tuş eşlemesi, tuşların klavyede mevcut olduğu sırayı gösterir. Bu projede kullandığım tuş takımı aşağıdaki gibi görünüyor, anahtar haritası da aynı şeyi temsil ediyor.
Aşağıda, değişken dizi rowPins ve colPins kullanılarak Keypad'in hangi pinlere bağlı olduğundan bahsetmiştik .
const bayt ROWS = 4; // Dört satırlık sabit bayt COLS = 4; // Üç sütun // Keymap karakter anahtarlarını tanımlayın = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, { '7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins = {0, 1, 2, 3}; // ROW0, ROW1, ROW2 ve ROW3 tuş takımını bu Arduino pinlerine bağlayın. bayt colPins = {4, 5, 6, 7}; // COL0, COL1 ve COL2 tuş takımını bu Arduino pinlerine bağlayın.
Ne tür bir tuş takımı kullandığımızı ve nasıl bağlandığını belirttikten sonra, aşağıdaki satırı kullanarak bu detayları kullanarak tuş takımını oluşturabiliriz.
Keypad kpd = Keypad (makeKeymap (anahtarlar), rowPins, colPins, ROWS, COLS); // Tuş Takımını Oluşturun
Benzer şekilde , LCD'nin Arduino'nun hangi pinlerine bağlı olduğunu da söylememiz gerekir. Devre şemamıza göre tanımlar aşağıdaki gibi olacaktır
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // LCD'nin bağlı olduğu pinler LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // LCD'yi oluştur
İçinde kurulum fonksiyonu, sadece projenin adını görüntülemek ve daha sonra döngü sırasında nerede ana proje yalanlara geçin.
Temel olarak, tuş takımına herhangi bir şey yazılıp yazılmadığını kontrol etmeliyiz, yazılırsa, yazılanları tanımalı ve ardından "=" tuşuna basıldığında bunu bir değişkene dönüştürmeliyiz, sonucu hesaplamalı ve sonunda görüntülemeliyiz LCD'de. Aşağıda gösterildiği gibi döngü işlevi içinde yapılan tam olarak budur.
anahtar = kpd.getKey (); // basılan anahtar değerini bir karakterde depolamak if (key! = NO_KEY) DetectButtons (); if (sonuç == true) CalculateResult (); DisplayResult ();
Her bir işlevin içinde neler olduğu, yorum satırları kullanılarak açıklanmıştır, aşağıdaki kodun tamamını gözden geçirin, gerçekte nasıl çalıştığını anlamak için bununla uğraşın. Belirli bir satır hakkında herhangi bir şüpheniz varsa, yorum bölümünü veya forumları kullanmaktan çekinmeyin.
Arduino Hesap Makinesinin Simülasyonu:
Projeyi Proteus yazılımını kullanarak simüle etmeyi de deneyebiliriz. Proteus'un kendi başına bir Arduino bileşeni yoktur, ancak kolayca indirilebilir ve kütüphanesine eklenebilir. Proteus üzerinde Arduino bileşenine sahip olduğunuzda, devre şemasında gösterildiği gibi bağlantıyı yapmak için Alfanümerik LCD ve Tuş Takımını eklemeniz yeterlidir.
Daha sonra hex dosyasını buradan indirin ve Proteus'taki karta çift tıklayarak Arduino'ya ekleyin ve "program dosyasını" indirilen bu hex dosyasına işaret edin. Simülasyonun anlık görüntüsü aşağıda gösterilmektedir, çalışmanın tamamı aşağıdaki videoda gösterilmektedir.
Not: Verilen hex dosyası aşağıda verilen programın orijinali ile aynı değildir. Simülasyon tuş takımının tuş eşlemesi ile gerçek donanım tuş takımının farklı olması nedeniyle olarak değiştirilmiştir.
Arduino Hesap Makinesinin Çalışması:
Bağlantıları devre şemasına göre yapın ve aşağıdaki kodu yükleyin. Hata gösteriyorsa, kitaplığı yukarıda verilen talimatlara göre eklediğinizden emin olun. Sorunun donanımınızda olup olmadığını kontrol etmek için simülasyonu da deneyebilirsiniz. Her şey olması gerektiği gibi yapılırsa, donanımınız aşağıdaki gibi görünecek ve LCD bunu görüntüleyecektir.
Burada kullanılan tuş takımının üzerinde uygun işaretler bulunmadığından Alfabelerin aşağıda listelendiği gibi işleçler olduğunu varsaydım.
Tuş Takımındaki Karakter |
Varsayılan |
"A" |
Toplama (+) |
"B" |
Çıkarma (-) |
"C" |
Çarpma işlemi (*) |
"D" |
Bölünme (/) |
"*" |
Temizle (C) |
"#" |
Eşittir (=) |
Her düğmenin gerçekte neyi temsil ettiğini yazmak için bir işaretçi kullanabilirsiniz.
Bunu yaptıktan sonra, doğrudan hesap makinesini kullanmaya başlayabilirsiniz. Numarayı yazın ve ikinci satırda görünecektir, operanda basın ve ikinci numaranızı yazın ve sonucunuzu almak için son olarak "#" tuşuna basın. Bu Dokunmatik Ekran tabanlı Arduino hesap makinesini oluşturmayı da deneyebilirsiniz.