كيفية عمل حاسبة رياضية بسيطة باستخدام Arduino

جرب أداة القضاء على المشاكل





في هذا المنشور ، سنقوم ببناء آلة حاسبة باستخدام Arduino ، والتي يمكن أن تؤدي عمليات حسابية معقدة للغاية مقارنة بالحاسبة العادية.



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

لهذا المشروع الممتع تحتاج فقط إلى كابل USB و Arduino من اختيارك. سنحصل على نتيجة حساباتنا عبر الشاشة التسلسلية لـ Arduino IDE. إذا كنت معتادًا على أساسيات لغة C ، فإن هذا المشروع عبارة عن قطعة من الكعكة ، ويمكنك إنشاء برامجك الخاصة التي تقوم بحسابات حسابية أكثر تعقيدًا. سنستخدم هنا ملف رأس #include والذي يحمل في ثناياه عوامل في مترجم Arduino IDE ، لذلك لن تحتاج إلى تنزيل أي مكتبة.



يمكننا حتى توصيل شاشة LCD ولوحة مفاتيح بـ Arduino وعمل آلة حاسبة علمية ، لكنها موضوع مقال آخر. إذا كنت معتادًا على 'Turbo C ++' ، فسيكون أحد برامجنا الأولى هو إضافة رقمين ، ويتم إجراء جميع الحسابات الحسابية داخل وحدة المعالجة المركزية للكمبيوتر. ولكن هنا ، يتم إجراء جميع الحسابات الحسابية في متحكم Arduino. لنبدأ بالجمع والطرح والقسمة والضرب.

هنا برنامج ذو متغيرين أ و ب ، باستخدام هذين المتغيرين يمكننا إجراء الحسابات المذكورة أعلاه باستخدام عوامل '+ ، - ، * /' ، وهي الجمع والطرح والضرب والقسمة على التوالي.

برنامج:

//-------------------Program Developed by R.Girish---------------//
#include
float a = 500
float b = 105.33
float add
float sub
float divide
float mul
void setup()
{
Serial.begin(9600)
Serial.println('Simple Arduino Calculator:')
Serial.println('n')
Serial.print('a = ')
Serial.println(a)
Serial.print('b = ')
Serial.println(b)
Serial.println('n')
Serial.print('Addition: ')
Serial.print('a + b = ') // add
add=a+b
Serial.println(add)
Serial.print('Multiplication: ')
Serial.print('a * b = ') // multiply
mul=a*b
Serial.println(mul)
Serial.print('Division: ')
Serial.print('a / b = ') // divide
divide=a/b
Serial.println(divide)
Serial.print('Subtraction: ')
Serial.print('a - b = ') // subtract
sub=a-b
Serial.println(sub)
}
void loop() // we need this to be here even though its empty
{
}
//-------------------Program Developed by R.Girish---------------//

انتاج:

في البرنامج أعلاه ، نستخدم 'Float' الذي يؤدي وظائف عشرية ، ونستخدم 'Serial.print ()' لطباعة القيم في الشاشة التسلسلية ، وبقية البرنامج توضيحيًا ذاتيًا. يمكنك تغيير المتغير a و b في البرنامج بقيمك الخاصة.

دعونا نقل شيء أكثر إثارة للاهتمام ، منطقة الدائرة. معادلة مساحة الدائرة هي: pi * radius ^ 2 أو pi ضرب نصف قطر مربع. نظرًا لأن قيمة pi ثابتة ، نحتاج إلى تخصيصها في البرنامج باستخدام 'float' نظرًا لأن قيمة pi هي 3.14159 حيث يتم تشغيل النقطة العشرية.

برنامج:

//-------------------Program Developed by R.Girish---------------//
#include
float pi = 3.14159
float radius = 50
float area
void setup()
{
Serial.begin(9600)
Serial.println('Arduino Area Calculator:')
Serial.print('n')
Serial.print('Radius = ')
Serial.print(radius)
Serial.print('n')
area = pi*sq(radius)
Serial.print('The Area of circle is: ')
Serial.println(area)
}
void loop()
{
// we need this to be here even though it is empty
}
//-------------------Program Developed by R.Girish---------------//

انتاج:

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

مرة أخرى ، يمكنك تغيير القيم الخاصة بك في البرنامج. نحن نستخدم 'sq ()' الذي يقوم بتربيع العدد بين الأقواس. الآن دعنا ننتقل إلى المستوى التالي. سنستخدم في هذا البرنامج نظرية فيثاغورس لحساب وتر المثلث. الصيغة الكامنة وراء ذلك هي: 'hyp = sqrt (sq (base) + sq (height))' أو الجذر التربيعي لـ (القاعدة + مربع الارتفاع).

برنامج:

//-------------------Program Developed by R.Girish---------------//
#include
float base = 50.36
float height = 45.336
float hyp
void setup()
{
Serial.begin(9600)
Serial.println('Arduino Pythagoras Calculator:')
Serial.print('n')
Serial.print('base = ')
Serial.println(base)
Serial.print('height = ')
Serial.print(height)
Serial.print('n')
hyp=sqrt(sq(base) + sq(height))
Serial.print('The hypotenuse is: ')
Serial.print(hyp)
}
void loop()
{
// we need this to be here even though its empty
}
//-------------------Program Developed by R.Girish---------------//

انتاج:

يمكنك تغيير قيم القاعدة والارتفاع بقيمك الخاصة في البرنامج. استخدمنا 'sqrt ()' الذي يقوم بعمل قيم دالة الجذر التربيعي داخل الأقواس. لنقم الآن ببرنامج شائع كنا نتعلمه في بداية دورة لغة سي ، سلسلة فيبوناتشي.

باختصار ، سلسلة فيبوناتشي هي إضافة رقمين سابقين مما يعطي الرقم التالي وهكذا ، يبدأ دائمًا بالرقم 0 ، 1. على سبيل المثال: 0 ، 1. إذن 0 + 1 = 1 السلسلة التالية هي 0 ، 1 ، 1. إذن ، 1 + 1 = 2. السلسلة التالية هي ، 0 ، 1 ، 1 ، 2… .. وهكذا. البرنامج المكتوب هنا هو إيجاد رقم فيبوناتشي لأول رقم ن. يمكنك تغيير قيمة 'n' في البرنامج للحصول على سلسلة فيبوناتشي المطلوبة.

برنامج:

//-------------------Program Developed by R.Girish---------------//
#include
int n=6
int first = 0
int Second = 1
int next
int c
void setup()
{
Serial.begin(9600)
Serial.print('Fibonacci series for first ')
Serial.print(n)
Serial.print(' numbers are:nn')
for ( c = 0 c {
if ( c <= 1 )
next = c
else
{
next = first + Second
first = Second
Second = next
}
Serial.println(next)
}
}
void loop()
{
// put your main code here, to run repeatedly:
}
//-------------------Program Developed by R.Girish---------------//

انتاج:

لذلك ، كان هذا من شأنه أن يعطي جرعات كافية لعقلك ويشوش أن شيئًا ما مصممًا للتحكم في الأجهزة الطرفية يقوم ببعض الحسابات الحسابية غير المنطقية ، إذا كان الأمر كذلك ، فأنت لست وحدك.

تلعب الرياضيات دورًا رئيسيًا في الإلكترونيات وهذا هو السبب في أن كتابنا المدرسي مليء بالمعادلات الرياضية ، التي لا نفهمها حتى ، وهذه النقطة حيث تأتي الآلات الحاسبة لإنقاذنا وها هي.

إذا كان لديك أي استفسارات بخصوص دائرة الآلة الحاسبة البسيطة هذه باستخدام Arduino ، فيمكنك التعبير عنها من خلال التعليقات القيمة دائمًا.




السابق: 0-60V LM317HV دائرة إمداد الطاقة المتغيرة التالي: كيفية توليد الكهرباء من بيزو