القائمة الرئيسية

الصفحات

أخبار الرياضة

كيفية عمل ألة حاسبة بسيطة باستخدام الاردوينو للعمليات الحسابية

كيفية عمل ألة حاسبة بسيطة باستخدام الاردوينو للعمليات الحسابية




فكرة  مشروع الأردوينو

في هذا المشروع  سوف نقوم  ببناء آلة حاسبة خاصة بنا مع Arduino . يمكن إرسال القيم من خلال لوحة مفاتيح (4 × 4 لوحة مفاتيح) ويمكن عرض النتيجة على شاشة (LCD (16 × 2  . هذه الآلة الحاسبة   ” مشروع ألة حاسبة “ يمكن أن تؤدي عمليات بسيطة مثل الجمع والطرح والضرب والقسمة مع الأعداد الصحيحة. ولكن بمجرد فهمك للمفهوم ، يمكنك تنفيذ حتى الوظائف العلمية التي تعتقد أنها معقدة  من خلال وظائف الاردوينو المدمجة 

 

ماذا سنحتاج في مشروع الأردوينو  بناء الة حاسبة

 

  • اسلاك ذكر – ذكر
  • اسلاك ذكر – انثى
  • اردوينو اونو
  •  

  • شاشة LCD I2C 

  •  
  • كيباد 4 في4

  •  
  • بريد بورد صغير

  •  
  • بطارية 9 فولت

  •  
  • سلك بطارية 9 فولت

  • تركيب الدارة  

يمكنك تركيب الدارة كما في المثال التالي ، لكن لا بد من الأخذ  بالإعتبار أنني قمت بتغيير الحروف الموجودة على  كيباد 4 في4  إلى الرموز الرياضية + - * / 

وقد قمت بدلك كما يلي  ;

Assumed to be

“A”

Addition (+)

“B”

Subtraction (-)

“*”

Multiplication (*)

“D”

Division (/)

“C”

Clear (C)

“#”

Equals (=)

 

الكود البرمجي  لمشروع الة حاسبة بواسطة الأردوينو :



#include<Keypad.h>
#include<LiquidCrystal_I2C.h>
#include<Wire.h>

const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
  {'1', '2', '3', '+'},
  {'4', '5', '6', '-'},
  {'7', '8', '9', 'C'},
  {'*', '0', '=', '/'}
};

byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};

// Created instances
Keypad myKeypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
LiquidCrystal_I2C lcd(0x27, 16, 2);

boolean firstNumState = true;
String firstNum = "";
String secondNum = "";
float result = 0.0;
char operatr = ' ';

void setup() {
  lcd.init();                    
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Arduino Calculator");
  lcd.setCursor(0, 1);
  lcd.print("by ielectrony");
  delay(1000);
  scrollDisplay();
  clr();
}

void loop() {
  char newKey = myKeypad.getKey();
  if (newKey != NO_KEY && (newKey == '1' || newKey == '2' || newKey == '3' || newKey == '4' || newKey == '5' || newKey == '6' || newKey == '7' || newKey == '8' || newKey == '9' || newKey == '0')) {

    if (firstNumState == true) {
      firstNum = firstNum + newKey;

      lcd.print(newKey);
    }
    else {
      secondNum = secondNum + newKey;

      lcd.print(newKey);
    }
  }
  if (newKey != NO_KEY && (newKey == '+' || newKey == '-' || newKey == '*' || newKey == '/')) {
    if (firstNumState == true) {
      operatr = newKey;
      firstNumState = false;
      lcd.setCursor(15, 0);
      lcd.print(operatr);
      lcd.setCursor(5, 1);
    }
  }

  if (newKey != NO_KEY && newKey == '=') {
    if (operatr == '+') {
      result = firstNum.toFloat() + secondNum.toFloat();
    }

    if (operatr == '-') {
      result = firstNum.toFloat() - secondNum.toFloat();
    }

    if (operatr == '*') {
      result = firstNum.toFloat() * secondNum.toFloat();
    }

    if (operatr == '/') {
      result = firstNum.toFloat() / secondNum.toFloat();
    }
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(firstNum);
    lcd.print(operatr);
    lcd.print(secondNum);
    lcd.setCursor(0, 1);
    lcd.print("=");
    lcd.print(result);
    firstNumState = true;
  }

  if (newKey != NO_KEY && newKey == 'C') {
    clr();
  }
}

void scrollDisplay() {
  // scroll 13 positions (string length) to the left
  // to move it offscreen left:
  for (int positionCounter = 0; positionCounter < 3; positionCounter++) {
    // scroll one position left:
    lcd.scrollDisplayLeft();
    // wait a bit:
    delay(300);
  }
  delay(1000);

  // scroll 29 positions (string length + display length) to the right
  // to move it offscreen right:
  for (int positionCounter = 0; positionCounter < 3; positionCounter++) {
    // scroll one position right:
    lcd.scrollDisplayRight();
    // wait a bit:
    delay(300);
  }
  delay(2000);
}

void clr() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("1st: ");
  lcd.setCursor(12, 0);
  lcd.print("op ");
  lcd.setCursor(0, 1);
  lcd.print("2nd: ");
  lcd.setCursor(5, 0);
  firstNum = "";
  secondNum = "";
  result = 0;
  operatr = ' ';
}

الحاسبة آلة إلكترونية مكتبية تستخدم لإجراء العمليات الحسابية.

وتعد الآلة الحاسبة الجد الأكبر لعائلة الحواسيب، ويعد الشكل الذي وصلت له الآلة الحاسبة اليوم هو نتاج عمل باسكال حتى عام 1640 ميلادي، لكن قبل ذلك كانت هنالك الكثير من النماذج البسيطة للآلة الحاسبة. ويختلف حاسب الجيب عن الحاسوب بكونه ذو قدرة أصغر من الحاسوب العادي على حل المسائل الحسابية، وبأنّه صمّم خصيصًا ليجري به المستخدم حساباته بشكل مباشر دون أن يحتاج لأي قدرات في البرمجة، وأحيانًا دون أن تكون للآلة إمكانيات برمجة إطلاقًا.

تستخدم الآلة الحاسبة في جميع المجالات اليومية، وتوجد في عدة صور وأشكال، فهي بالإضافة إلى شكلها الأساسي، موجودة في كل جهاز محمول (هاتف نقال، حاسوب كفي)، هذا بالإضافة إلى الآلة الحاسبة العلمية التي يستخدمها الباحثون والرياضيون وطلاب المدارس والجامعات. 

 



reaction:

تعليقات

script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">