top of page

HESAP MAKİNASI

  • Yazarın fotoğrafı: muhammed ali balkaya
    muhammed ali balkaya
  • 28 Kas 2018
  • 2 dakikada okunur



Proje Amacı


Toplama, çıkarma, çarpma, bölme olmak üzere toplam 4 işlem yapabilen 16 basamaklı makina ile istenilen hesaplamalar yapılabilmektedir.



Proje Kodu


#include <Keyboard.h>


#include <Keypad.h>

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 9, 8, 7);


long num1,num2 ;

double sonuc;

char hesaplama,button;


const byte satir = 4;

const byte sutun = 4;


char tus_takimi[satir][sutun] = {

{'1','2','3','+'},

{'4','5','6','-'},

{'7','8','9','*'},

{'C','0','=','/'}

};

byte satir_pins[satir] = {A0, A1, A2, A3};

byte sutun_pins[sutun] = {A4, A5, 3, 2};

Keypad tuss_takimi = Keypad(makeKeymap(tus_takimi), satir_pins, sutun_pins, 4, 4);



byte customChar9[8] = { //YÜKLENME EFEKTİ İÇİN OLUŞTURULAN ÖZEL KARAKTERLER

0b11111,

0b11111,

0b11111,

0b11111,

0b11111,

0b11111,

0b11111,

0b11111

};

byte customChar8[8] = {

0b11110,

0b11110,

0b11110,

0b11110,

0b11110,

0b11110,

0b11110,

0b11110

};

byte customChar7[8] = {

0b11100,

0b11100,

0b11100,

0b11100,

0b11100,

0b11100,

0b11100,

0b11100

};

byte customChar6[8] = {

0b11000,

0b11000,

0b11000,

0b11000,

0b11000,

0b11000,

0b11000,

0b11000

};

byte customChar5[8] = {

0b10000,

0b10000,

0b10000,

0b10000,

0b10000,

0b10000,

0b10000,

0b10000

};





void setup() {

lcd.createChar(6, customChar6);

lcd.createChar(7, customChar7);

lcd.createChar(8, customChar8);

lcd.createChar(9, customChar9);

lcd.begin(16, 2); // LCD BEGAN

lcd.clear(); //Clear screen

lcd.clear();

lcd.setCursor(1, 0);

lcd.print("ARDUINO HOCAM");

for (int i = 1; i <= 13; i++)

{



for (int k = 6; k <= 9; k++)

{

lcd.setCursor(i, 1); lcd.write((uint8_t)k);

delay(100);


}


}


lcd.clear();

lcd.setCursor(0, 0);

lcd.print("Arduino Hocam");

lcd.setCursor(0, 1);

lcd.print("HESAP MAKINESI");

delay(2000);

lcd.clear();


lcd.begin(16,2);

}


void loop()

{

lcd.cursor();

lcd.blink();

while(1) //İlk döngü 1.numarayı almak için.işlem işareti girilene kadar çalışıyor ya da C yapılana kadar

{


button = tuss_takimi.getKey(); // Butonu okuduk.

if (button=='C') // Eğer yazarken resetleemk istenirse

{

num1=0;

num2=0;

sonuc=0;

hesaplama=0;

lcd.clear();

}

if (button >='0' && button <='9') // basılan nümerik değerler

{

num1 = num1*10 + (button -'0'); // ASCII tablosu

lcd.setCursor(0,0); // Select first row on lcd

lcd.print(num1); //

}

if (num1 !=0 && (button=='-' || button=='+' || button=='*' || button=='/')) // Eğer numara girişi bitmişse

{

hesaplama = button; // matematiksel işlemi seçiyoruz

lcd.setCursor(0,1);

lcd.print(hesaplama);

break;

}


}

while(1) // Kullanıcı '=' ya da 'C' işlemini yapana kadar çalışıyor

{

if (button =='C'){break;} // İşlem operatörüne bastıktan sonra da sıfırlamak için

button = tuss_takimi.getKey();

if (button=='C') // Sıfırlamayı kesinleştiriyoruz

{

num1=0;

num2=0;

sonuc=0;

hesaplama=0;

lcd.clear();

break;

}

if (button >='0' && button <='9')

{

num2 = num2*10 + (button -'0');

lcd.setCursor(1,1);

lcd.print(num2);

}

if (button == '=' && num2 !=0)// Eğer '=' e basılırısa artık işlemler bitiyor ve fonksiyonu cağırıyor.

{

islem();

break;

}

}

while(1)

{

//bunlardan sonra yine C ye basılırsa temizliyor ....

if (button =='C'){break;}

button = tuss_takimi.getKey();

if (button =='C')

{

lcd.clear();

lcd.setCursor(0,0);

num1=0;

num2=0;

sonuc=0;

hesaplama=0;

break;

}

}


}

void islem() // Yaptırılacak fonksiyon.

{

switch(hesaplama)

{

case '+': // toplama

sonuc = num1+num2;

break;

case '-': // Çıkarma

sonuc = num1-num2;

break;

case '/': //Bölme

sonuc = (float)num1/(float)num2;

break;

case '*': // Çarpma

sonuc = num1*num2;

break;

}

lcd.clear();

lcd.setCursor(0,1);

lcd.print('=');

lcd.setCursor(1,1);

lcd.print(sonuc);

}

 
 
 

Én kommentar


www.ibrahimeti
01. des. 2018

kolay gelsin

Lik

© 2023 by Parenting Blog

Proudly created with MAB.com

  • YouTube Sosyal Simge
  • Facebook Black Round
  • Twitter Black Round

BURSA / OSMANGAZİ

Mail listemize katılın

bottom of page