在这篇文章中,我们将使用Arduino构造一个计算器,它可以执行比普通计算器复杂得多的算术计算。
这篇文章的主旨不是用Arduino做一个计算器,而是展示Arduino的算术能力,它可以通过传感器和其他外围设备进行各种复杂的数据解释和计算。
对于这个有趣的项目,你只需要一根USB连接线和Arduino。我们将通过Arduino IDE的串行监视器得到我们计算的结果。如果您熟悉C语言的基础知识,那么这个项目就是小菜一碟,您可以创建自己的程序来进行更复杂的算术计算。这里我们将使用头文件#include
我们甚至可以将液晶显示器和键盘连接到Arduino上,制作一个科学计算器,但这是另一篇文章的主题。如果你熟悉“Turbo c++”,我们的第一个程序之一将是两个数字的加法,所有的算术计算都在计算机的CPU中进行。而在这里,所有的算术计算都是在Arduino微控制器上进行的。让我们从加法、减法、除法和乘法开始。
这里有一个带有两个变量a和b的程序,使用这两个变量,我们可以使用“+,-,* /”操作符来进行上述计算,这些操作符分别是加法,减法,乘法,除法。
计划:
//------------------- 项目由R.Girish ---------------//
# include < math.h >
Float 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 >
Float PI = 3.14159;
浮动半径= 50;
浮区;
无效的设置()
{
Serial.begin (9600);
系列。println(“Arduino计算器领域:”);
并同时“n”);
系列。打印("半径= ");
并同时(半径);
并同时“n”);
面积=π*平方(半径);
系列。print("The Area of circle is: ");
以(区域);
}
无效循环()
{
//我们需要这个在这里,即使它是空的
}
//------------------- 项目由R.Girish ---------------//
输出:
同样,您可以在程序中更改自己的值。我们使用了“sq()”,它在括号中对数字进行平方运算。现在让我们进入下一个阶段。在这个程序中,我们将使用毕达哥拉斯定理来计算三角形的斜边。背后的公式是:“hyp=根号(sq(底)+ sq(高));或(底平方+高平方)的平方根。
计划:
//------------------- 项目由R.Girish ---------------//
# include < math.h >
浮动基数= 50.36;
浮动高度= 45.336;
浮动忧郁;
无效的设置()
{
Serial.begin (9600);
系列。println(“Arduino毕达哥拉斯计算器:”);
并同时“n”);
系列。打印(“基础= ");
以(基地);
系列。打印("高度= ");
并同时(高度);
并同时“n”);
忧郁=√平方(基地)+平方(高度));
系列。print("The斜边is: ");
并同时(忧郁);
}
无效循环()
{
//我们需要这个在这里,即使它是空的
}
//------------------- 项目由R.Girish ---------------//
输出:
您可以在程序中使用您自己的值来更改基数和高度的值。我们使用了“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 series for first ");
并同时(n);
系列。打印(“数字是:神经网络”);
For (c = 0;C < n;c++)
{
If (c <= 1)
下一个= c;
其他的
{
next = first + Second;
第一次=第二;
第二个=下一个;
}
以(下);
}
}
无效循环()
{
//把你的主代码放在这里,重复运行:
}
//------------------- 项目由R.Girish ---------------//
输出:
所以,这可能会给你的大脑带来足够的剂量,让你感到困惑,因为设计来控制硬件外围设备的东西正在做一些无意义的数学计算,如果是这样,你不是一个人。
数学在电子学中扮演着重要的角色这就是为什么我们的课本里有很多数学方程,我们甚至不理解这一点,计算器来拯救我们,它在这里。
如果您对这个使用Arduino的简单计算器电路有任何疑问,您可以通过任何有价值的评论来表达它们。
我是你的博客的一个定期追随者,必须赞扬你的好工作。
请,我正在做一个严肃的项目“12vdc到230vac,
500 w - 1000 w,无变压器的逆变器”。在所有的财富之中
在你的网站上,这个设计却不见了。请帮我
有了它,
它很紧急。如果你能尽快回复我,我将不胜感激。如果可能的话,你能分享一下你的直接号码........吗请。
的问候。
这是不可能的,除非涉及到巨大的电容器和二极管