İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Hey, son zamanlarda farklı kod türlerinin bir devreye nasıl uygulanacağını araştırıyordum. Bir hesap makinesi yapmanın "vaka" ve ilginç bulduğum diğer kod biçimlerini uygulamak için harika bir yol olacağını buldum. Geçmişte doğrudan koddan hesap makineleri yaptım, ancak bunun için bir devre yapmak ilgimi çekti. Özellikle de neredeyse tüm gün bilgisayar başında olduğum bu karantina döneminde. Proje, matematiksel işlemlerin bir LCD ekranda uygulanmasıdır.
Adım 1: Malzemeler
Devre için:
- LCD 16x2
- Arduino Uno R3
- 4x4 tuş takımı
- Küçük Ekmek Tahtası
- Potansiyometre (250 kΩ)
- Direnç (1kΩ)
- x26 Atlama telleri
Adım 2: 4x4 Tuş Takımını Bağlama
4x4 tuş takımındaki 4 sıra pini Arduino pinleri 4-7'ye bağlayın ve 4 kolon pinini Arduino pinleri 0-3'e bağlayın.
Adım 3: Breadboard'a Güç Sağlayın ve LCD'yi Bağlayın
Breadboard için 5'lik bir güç voltajı kullandım. Gücü ve toprağı breadboard'a bağladım. LCD devre tahtasına yerleştirilir ve tüm pinleri devre tahtasına bağlanacak şekilde yerleştirilir.
Adım 4: Güç ve Topraklamayı LCD'ye bağlayın
LCD'ye bağlanmak için gereken 3 pin toprak olacaktır. Biri LCD'nin kendi toprağına bağlanacak, diğeri LCD'nin LED'ine bağlanacak ve sonuncusu RW'ye bağlanacak. LCD'nin VCC'si ve led'in bağlanması için güç gerekir. Bununla birlikte, LED'in gücü, bu durumda bağlı bir direnç gerektirecektir, 1kΩ direnç kullandım.
Adım 5: Potansiyometrenin Bağlanması
Potansiyometreyi 3 boş sütunla breadboard'a bağlayın. 3 pini olacaktır, terminal 1 pinini içeren kolonun kendisine verilen topraklamaya ihtiyacı olacaktır. Terminal 2 pinini içeren kolonun kendisine verilen güce ihtiyacı olacaktır. Ardından silicinin sütununda LCD'nin VO'suna bağlanan bir atlama teli olacaktır.
Adım 6: Arduino'yu LCD'ye Bağlama
Arduino üzerindeki 8-13 pinleri LCD'ye bağlanacaktır. Arduino üzerindeki 8-11 pinleri sırasıyla D8(7-4)'e bağlanacaktır. Daha sonra Arduino'nun 12 pini LCD'nin Etkinleştirmesine bağlanacak ve Arduino'daki 13 pini LCD kaydına bağlanacaktır.
Adım 7: Kodu Uygulayın
Tuş takımı ve LCD ile matematiksel işlemleri kullanmak için kod gerekecektir. Aşağıdaki, kullandığım kod olacak, ancak daha temiz ve daha iyi hale getirmek için birden fazla değişiklik hala uygulanabilir. Bu yüzden onunla biraz oynamaktan çekinmeyin.
#include #include
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
önce uzun = 0;
uzun saniye = 0;
çift toplam = 0;
int konum = 0;
char özelKey;
const bayt SATIRLAR = 4;
const bayt COLS = 4;
karakter tuşları[ROWS][COLS] = {
{'1', '2', '3', '/'}, {'4', '5', '6', '*'}, {'7', '8', '9', '-'}, {'C', '0', '=', '+'} };
byte rowPins[ROWS] = {7, 6, 5, 4};
bayt colPins[COLS] = {3, 2, 1, 0};
Tuş takımı özelKeypad = Tuş takımı(makeKeymap(tuşlar), rowPins, colPins, ROWS, COLS);
geçersiz kurulum(){
lcd.başla(16, 2);
lcd.setCursor(5, 0);
lcd.clear(); }
boşluk döngüsü () {
customKey = customKeypad.getKey();
geçiş (özel anahtar) {
durum '0' … '9':
lcd.setCursor(0, 0);
ilk = ilk * 10 + (özelKey - '0');
lcd.print(ilk);
konum++;
kırmak;
durum '+':
birinci = (toplam != 0 ? toplam: birinci);
lcd.setCursor(konum, 0);
lcd.print("+");
konum++;
saniye = İkinciSayı();
toplam = birinci + ikinci;
lcd.setCursor(1, 1);
lcd.print(toplam);
ilk = 0, saniye = 0;
konum=0;
kırmak;
durum '-':
birinci = (toplam != 0 ? toplam: birinci);
lcd.setCursor(konum, 0);
lcd.print("-");
konum++;
saniye = İkinciSayı();
toplam = birinci - ikinci;
lcd.setCursor(1, 1);
lcd.print(toplam);
ilk = 0, saniye = 0;
konum=0;
kırmak;
durum '*':
birinci = (toplam != 0 ? toplam: birinci);
lcd.setCursor(konum, 0);
lcd.print("*");
konum++;
saniye = İkinciSayı();
toplam = birinci * saniye;
lcd.setCursor(1, 1);
lcd.print(toplam);
ilk = 0, saniye = 0;
konum=0;
kırmak;
durum '/':
birinci = (toplam != 0 ? toplam: birinci);
lcd.setCursor(konum, 0);
lcd.print("/");
konum++;
saniye = İkinciSayı(); lcd.setCursor(1, 1);
saniye == 0 ? lcd.print("Hata"): toplam = (kayan)ilk / (kayan)saniye;
lcd.print(toplam);
ilk = 0, saniye = 0;
konum=0;
kırmak;
'C' durumu:
toplam = 0;
ilk = 0;
saniye = 0;
konum = 0;
lcd.clear();
kırmak; }
}
uzun SecondNumber() {
süre(1) {
customKey = customKeypad.getKey();
if(customKey >= '0' && customKey <= '9') {
saniye = saniye * 10 + (özelKey - '0');
lcd.setCursor(konum, 0);
lcd.print(saniye); }
if(customKey == 'C') {
toplam = 0;
ilk = 0;
saniye = 0;
konum = 0;
lcd.clear();
kırmak; }
if(customKey == '='){
lcd.setCursor(0, 1);
lcd.print("=");
konum = toplam;
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("=");
kırmak; }
}
ikinci dönüş;}
8. Adım: Sonuç
Umarım hepiniz bu öğreticiyi beğenmişsinizdir. Okuduğunuz için teşekkürler!
Saim.