在这篇文章中,我们将使用Arduino构建一个计算器,它可以执行比普通计算器复杂得多的算术计算。
这篇文章的座右铭不是用Arduino做一个计算器,而是展示Arduino的运算能力,它可以从传感器和其他外围设备执行各种复杂的数据解释和计算。
对于这个有趣的项目,你只需要一个USB线和Arduino你的选择。我们将通过Arduino IDE的串行监视器得到我们计算的结果。如果你熟悉基本的C语言,这个项目是一块蛋糕,你可以创建自己的程序,做更复杂的算术计算。在这里,我们将使用一个头文件#include
我们甚至可以将LCD显示器和键盘连接到Arduino上,制作一个科学计算器,但这是另一篇文章的主题。如果你熟悉“Turbo c++”,我们的第一个程序之一将是两个数字的加法,所有的算术计算都在计算机的CPU内进行。但在这里,所有的算术计算都是在Arduino微控制器中执行的。让我们从加法、减法、除法和乘法开始。
这是一个有两个变量a和b的程序,使用这两个变量,我们可以使用“+,-,* /”操作符来完成上述的计算,它们分别是加,减,乘,除。
计划:
//------------------- 项目由R.Girish ---------------//
# include < math.h >
浮点数a = 500;
浮点数b = 105.33;
浮动增加;
浮动接头;
浮动分裂;
mul浮动;
无效的设置()
{
Serial.begin (9600);
系列。println(“简单的Arduino计算器:”);
以“n”);
系列。打印(" = ");
以(一);
系列。打印(" b = ");
以(b);
以“n”);
系列。打印(“补充:”);
系列。Print ("a + b = ");/ /添加
添加= a + b;
以(添加);
系列。打印(“乘法:”);
系列。Print ("a * b = ");/ /把
mul = a * b;
以(mul);
系列。打印(“部门:”);
系列。Print ("a / b = ");/ /分
分= a / b;
以(分);
系列。打印(“减法:”);
系列。Print ("a - b = ");/ /减
子= a - b;
以(子);
}
Void loop() //我们需要在这里,即使它是空的
{
}
//------------------- 项目由R.Girish ---------------//
输出:

在上面的程序中,我们使用执行十进制函数的“Float”,我们使用“serial .print();”在串行监视器中打印值,程序的其余部分是自解释的。你可以用你自己的值来改变程序中的变量a和b。
让我们移动一些更有趣的东西,圆的面积。圆的面积公式是:π *半径的平方或π乘以半径的平方。由于pi的值是常量,我们需要在程序中使用“float”来赋值,因为pi的值是3.14159,其中小数点起作用。
计划:
//------------------- 项目由R.Girish ---------------//
# include < math.h >
浮动PI = 3.14159;
浮动半径= 50;
浮区;
无效的设置()
{
Serial.begin (9600);
系列。println(“Arduino计算器领域:”);
并同时“n”);
系列。打印("半径= ");
并同时(半径);
并同时“n”);
面积=π*平方(半径);
系列。print(“The Area of circle is:”);
以(区域);
}
无效循环()
{
//我们需要这个在这里,即使它是空的
}
//------------------- 项目由R.Girish ---------------//
输出:
同样,您可以在程序中更改自己的值。我们用的是" sq() "它对括号中的数字进行平方。现在让我们进入下一个阶段。在这个程序中,我们将使用毕达哥拉斯定理来计算三角形的斜边。这背后的公式是:“hyp=sqrt(底)+底(高);或(底方+高方)的平方根。
计划:
//------------------- 项目由R.Girish ---------------//
# include < math.h >
浮动基数= 50.36;
浮动高度= 45.336;
浮动忧郁;
无效的设置()
{
Serial.begin (9600);
系列。println(“Arduino毕达哥拉斯计算器:”);
并同时“n”);
系列。打印(“基础= ");
以(基地);
系列。打印("高度= ");
并同时(高度);
并同时“n”);
忧郁=√平方(基地)+平方(高度));
系列。print("The斜边是:");
并同时(忧郁);
}
无效循环()
{
//我们需要这个在这里,即使它是空的
}
//------------------- 项目由R.Girish ---------------//
输出:
您可以在程序中使用自己的值更改base和height的值。我们使用了“sqrt()”,它在圆括号内执行平方根函数值。现在让我们做一个流行的程序,我们在C语言课程的开始学过的,斐波那契数列。
简而言之,斐波那契数列是前两个数的加法,然后是下一个数,以此类推,它总是从0,1开始。例如:0,1。0 + 1 = 1;下一个级数是0 1 1。所以,1 + 1 = 2。下一个级数是,0 1 1 2.....等等。这里写的程序是为了找到第n位的斐波那契数。你可以在程序中改变' n '的值来得到想要的斐波那契级数。
计划:
//------------------- 项目由R.Girish ---------------//
# include < math.h >
int n = 6;
Int first = 0;
int Second = 1;
int下;
int c;
无效的设置()
{
Serial.begin (9600);
系列。print("Fibonacci数列为第一");
并同时(n);
系列。打印(“数字是:神经网络”);
For (c = 0;C < n;c++)
{
If (c <= 1)
下一个= c;
其他的
{
next = first + Second;
第一次=第二;
第二个=下一个;
}
以(下);
}
}
无效循环()
{
//把你的主代码放在这里,重复运行:
}
//------------------- 项目由R.Girish ---------------//
输出:
所以,这将给你的大脑足够的剂量,并混淆了一些设计来控制硬件外围设备正在做一些无意义的数学计算,如果是这样,你并不孤单。
数学在电子学中扮演着重要的角色,这就是为什么我们的教科书中充满了数学方程,我们甚至不理解,这就是计算器来拯救我们的地方。
如果您使用Arduino对这个简单的计算器电路有任何查询,您可以通过任何有价值的注释来表达它们。
我是你博客的常客,一定要表扬你的好工作。
拜托,我正在做一个严肃的项目"从12vdc到230vac,
500 w - 1000 w,无变压器的逆变器”。在所有的财富中
你网站上的电路,就是缺少这种设计。请帮我
有了它,
它很紧急。如果您能尽快回复我,我将不胜感激。如果可以的话,请分享你的直拨电话........请。
的问候。
这是不可能的,除非有巨大的电容器和二极管