Hello!uu们,这是Arduino学习之路的第四次学习,今天我们学习的内容比较简单,内容也是基于小灯的最后一个掌握和控制它的一个小示例,其次我们要掌握的便是判断语句、数据类型、常量和变量等知识点,因为在下一节中,我们会接触到第一次的现实问题的解决,所以,uu们,开始今天的学习吧!
一、判断语句
在这里的时候,我相信如果学过C语言的同学一定会认出这些判断和语句,没错!就你想的那样,我们在第一节中说过Arduino语言还是要具备一定的C语言基础的原因也是如此,其实判断语句是一种条件,就好比一个路口,你选的方向不同,你所抵达的目的地也不同,机器也是这样,你给出的判断条件也决定了它要做什么事情,没学过C语言的同学也没关系,博主会慢慢解释这些东西,让我们开始学习今天的知识点吧。
1)if:if语句是最常用的选择结构实现方式,当给定表达式为真时,就会运行if内的语句
( 关于真假判断的结论:关系运算符和逻辑运算符用“真”和“假”表示运算的结果,非0的值在关系运算中被视为“真”,0表示“假”。逻辑运算的结果用整型数据1表示“真”,用整型数据0表示“假”。
关系运算符和逻辑运算符我们接下来会讲到)
示例:
2)if…else:若这个表示式为真,语句1部分的代码就会被执行。若这个表示式为假,则执行紧接着else之后的语句2部分代码。(其实和if语句差不多,就是多了一种情况下要运行的代码)
示例:
3)if…else if:若这个表示式1为真,语句1部分的代码就会被执行。若这个表示式1为假,则紧接着判断else if之后的表达式2,如果表达式2为真,则执行语句2 ,否则依次往下循环。如果 else if 成功,将不会测试剩余的else if或else语句。
示例:
4)switch…case: switch … case 通过允许程序员指定应在各种条件下执行的不同代码来控制程序的流程。 switch 语句将变量的值与 case 语句中指定的值进行比较。当发现一个case语句的值与变量的值匹配时,运行case语句中的代码。如果所有的case都不符合switch的表达式 则执行default语句中的代码,同时可使程序代码看起来比较简洁。
示例:
注意:1.Switch后的表达式结果只能是整形或字符型。
2.该语句使用 break 关键字退出,通常在case语句的结尾使用。如果没有break语句,switch语句将继续执行后续的表达式(“fall-through”),直到到达break语句或达到switch语句的结尾。
二、关系运算符和逻辑运算符
1)关系运算符和逻辑运算符
2)Arduuino复合运算符
1)*+= , -= , = , /= (对一个变量和另一个参数或变量完成一个数学运算。+=(以及其他)可以缩短语法长度。)
2)Syntax语法
x += y; // 等价于 x = x + y;
x -= y; // 等价于 x = x - y;
x *= y; // 等价于 x = x * y;
x /= y; // 等价于 x = x / y;
x++; // 将x的值加1并返回原来的x的值。
++x; // 将x的值加1并返回现在的x的值。
x-- ; // 将x的值减1并返回原来的x的值。
–x ; // 将x的值减1并返回现在的x的值。
(这里就像C语言中的累加等操作一样,很简单的)
3)Parameters参数
x:任何变量类量 y:任何变量类型或常数
4)Returns返回
返回变量原始值或增加/消耗后的新值。
三、数据类型
1)整型:
2)boolean 布尔类型
布尔类型的值只能为真(true)或是假(false),boolean会占用1个字节的内存空间。
3)byte 字节类型
储存的数值范围为0到255。如同字符一样字节型态的变量只需要用一个字节(8位)的内存空间储存。
4)浮点型
就是小数,在Arduino中有float和double两种浮点类型,float类型占用4个字节(32位)内存空间,而double类型占用8个字节(64位)内存空间。可表达最大值为 1.7976931348623157 x 10308)
注意:
float 和double 都不能为0
5)字符型(char)
用于存储字符数据 单一字符例如 A 占用一个字节内存空间,存储字符时,字符需要用单引号引用Arduino使用ASCII 码来存储字符数据 用数字表示一个字符时,它的值有效范围为 -128 到127。同时char只能表示一个字符,如果需要多个字符的话,就需要用到String(字符串)
它是由多个ASCII字符组成 可以用来保存多个字符
如:
但是使用String类型定义字符串会占用更多的存储空间。
6)数组(Array)
数组是由一组相同数据类型的数据构成的集合。数组概念的引入,使得在处理多个相同类型的数据时,程序更加清晰和简洁。
示例:
7)数据类型转换
在这里我感觉这里就像是C语言中的强制类型转换一样,比方说将一个float字符类型强制转化为int整数类型
格式:(想要转换的格式)(string)
示例:
char()
byte()
int()
long()
float()
注意:由高精度想低精度转换,就会出现数据缺失的情况
8)常量和变量
1.常量:在Arduino语言中事先定义了一些具特殊用途的保留字。 其值不能改变,可以用const关键字来定义常量(const 类型 常量名 = 常量值)
示例:
还可以用宏定义来定义常量(#define 宏名 值)
示例:
2.变量:变量可以用来储存各种类型数据,并且可以更改数据,其定义方法(类型 变量名);
3. Arduino使用的C语言中的变量具有名为scope(范围)的属性。scope是程序的一个区域,有三个地方可以声明变量。它们是:局部变量、形式参数、全局变量。
(1)局部变量:在函数或代码块中声明的变量是局部变量。局部变量只能在其函数内使
(2)形式参数:作为函数的参数来使用,用来传递其他变量的值
(3)全局变量:全局变量在所有函数之外定义,通常位于程序的顶部。全局变量将在程序的整个生命周期中保持其价值,全局变量可以被任何函数访问,一个全局变量可以在中声明后整个程序中使用。
在Arduino中定义了许多常量,是不可修改的,也是我们常用的,比如:1.Arduino核心库中已定义的常数PI(就是圆周率,无论在python、C、C++中都有) 2.true | false:true 表示真(1),false表示假(0)。
其他的我们需要时可以自己去查。
四、演示数字输入程序
1)目的:让按钮在按下时让LED灯亮半秒钟。
2)电路图:
3)源程序代码:
ps:今天会留两个版本的代码,相当于思考题一样,两个代码都有什么功能。
提示:第一个是本次实验的代码
第一个示例代码
第二个示例代码
好了 ,uu们,这便是Arduino对于LED灯部分的学习,还是那样,我们不贪多,但要学会,所以希望大家好好的消化这一节的知识,为我们接下来的设计LED实战做好打基础的准备。
uu们加油,博主有一句话送给大家:
这是博主大学课本上的某位不知名的前辈写的,但是它却很有道理欧,希望借此也鼓励大家,uu们,快过年了,作为本文的结尾博主也祝大家新年快乐,龙年吉祥吧!我们下一节再见!