手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

Arduino 程序数学运算

时间:2024-10-14 08:21:32

1、Arduino IDE 新建代码的方法,程序的上传方法,大家可以参考:http://jingyan.baidu.com/article/414eccf6a8fb9f6b431f0ab1.html来操作

Arduino 程序数学运算

2、常用的变量间数学运算例子程序输入代码://定义三个私网褡爸整型变量int val;int val1 = 21;int val2 = -31;void setup() { Serial.begin(9600); val = 6 + 3; //加法 Serial.println(val); val = 6 * 3; //乘法 Serial.println(val); val = 6 / 3; //除法 Serial.println(val); val = 6 - 3; //减法 Serial.println(val); val = 6 + 6 / 3 * 3; //复合运算 Serial.println(val); val += 3; //自加 3 Serial.println(val); val -= 3; //自减 3 Serial.println(val); val1 = val1 % 10; //除以 10 取余数 Serial.println(val1); val2 = abs(val2); //取绝对值 Serial.println(val2); Serial.println(pow(3,2));//求 3 的 2 次方并打印 Serial.println(sqrt(9)); //求 9 的平方根并打印}void loop() {}

Arduino 程序数学运算

3、串口输出结果如下图所示,在复合运算中,还可以使用括号来改变运算的优先级

Arduino 程序数学运算

4、一定范围内取值int val = 150;int val1 = 300;int val2 = 50;void setup() { Serial.beg足毂忍珩in(9600); int value = constrain(val,100,200);//100<val<200,输出 val Serial.println(value); int value1 = constrain(val1,100,200);//val1>200,输出 200 Serial.println(value1); int value2 = constrain(val2,100,200);//val2<100,输出 50 Serial.println(value2); int value3 = min(50,200);//输出两个数中的最小值 Serial.println(value3); int value4 = max(50,200);//输出两个数中的最大值 Serial.println(value4);}void loop() {}

Arduino 程序数学运算

5、代码输出结果如下图所示,运算主要用于数值之间的比较输出,例如可以读取两个模拟接口的数值,然后比较输出

Arduino 程序数学运算

6、浮点数的操作Arduino 中有两个语句可以选择最靠近某个浮点墙绅褡孛数的整数floor(x):传回小于等于 x 的最大整数ceil(x):传回大于等于 x 的最小整数输入代码:float val = 1.9;void setup() { Serial.begin(9600); Serial.println(floor(1)); Serial.println(floor(1.1)); Serial.println(floor(0)); Serial.println(floor(.1)); Serial.println(floor(-1)); Serial.println(floor(-1.1)); Serial.println(ceil(1)); Serial.println(ceil(1.1)); Serial.println(ceil(0)); Serial.println(ceil(.1)); Serial.println(ceil(-1)); Serial.println(ceil(-1.1)); Serial.println(int(val)); Serial.println(ceil(val));}void loop() { // put your main code here, to run repeatedly:}

Arduino 程序数学运算

7、在编写程序的时候也可以使用强制类型转换(Serial.println(int(val));)来取整数,但是当要取得与 float 最接近的整数,有时强制类型转换是错误的,就可以使用 floor 或者 ceil 来找出与 float 最近的整数值。

Arduino 程序数学运算

8、关于三角函数的操作输入代码:float deg = 30; //定义角度为 30void setup() { Serial.begin(9600); float rad = deg * PI / 180; //将角度转换为弧度 Serial.println(rad); //打印弧度值 Serial.println(sin(rad)); //输出 sin 值 Serial.println(cos(rad)); //输出 cos 值 Serial.println(tan(rad)); //输出 tan 值}void loop() { // put your main code here, to run repeatedly:}

Arduino 程序数学运算

9、输出结果如下图所示,输出结果为两位小数,是因为 Serial.print 只会显示到小数点后的第二位

Arduino 程序数学运算

10、产生随机数输入代码:int randNumber挢旗扦渌;void setup(){ Serial.begin(9600);//撸赳咸米产生没有 seed 值的随机数 Serial.println("Print 20 random numbers between 0 and 9"); for(int i=0; i < 20; i++) { randNumber = random(10); Serial.print(randNumber); Serial.print(" "); } Serial.println(); Serial.println("Print 20 random numbers between 2 and 9"); for(int i=0; i < 20; i++) { randNumber = random(2,10); Serial.print(randNumber); Serial.print(" "); } // 产生相同 seed 的随机数 randomSeed(1234); Serial.println(); Serial.println( "Print 20 random numbers between 0 and 9 after constant seed "); for(int i=0; i < 20; i++) { randNumber = random(10); Serial.print(randNumber); Serial.print(" "); } // 产生不同 seed 的随机数 randomSeed(analogRead(0)); //读取模拟口 A0 的值,作为随机种子 Serial.println(); Serial.println( "Print 20 random numbers between 0 and 9 after floating seed "); for(int i=0; i < 20; i++) { randNumber = random(10); Serial.print(randNumber); Serial.print(" "); } Serial.println(); Serial.println();}void loop(){}

Arduino 程序数学运算

11、输出结果如下图,如果按下 Arduino 控制器的复位按键,前三行的随机数是不会变的,只有最后一行在每次复位再执行时会改变,因为它每次都使用了不同的seed,即每次的乱数序列不同,就可以产生不同的随机数

Arduino 程序数学运算
© 手抄报圈