前言
上期分享我们初步认识了Arduino中的两种注释方法以及主要的两个函数作用,这期我给大家介绍引脚设置与变量的知识。
pinMode和digitalWrite
在【Blink】代码示例的setup函数中有一条程序指令,loop函数中有四条程序指令,它们都有各自的功能。
setup函数中的程序指令叫做pinMode,它用于设置Arduino控制板的引脚模式。Arduino控制板有很多个引脚,我们以后再讨论,这里先讨论13号引脚。13号引脚比较特殊,它连接着板子上的LED小灯,pinMode这段程序是设置13号脚为“输出”模式,小灯的闪烁,其实是一种输出,即“OUTPUT”。
在以后的例子中,我们还会看到引脚的输入模式,比如我们用感应器接收外部的信息就属于输入模式,这个以后再讨论,loop函数中的digitalWrite是“数字输出”的意思,"数字"是在Arduino的世界中非常重要的概念,另外还有一个概念就是“模拟”,“模拟”的概念复杂些,我们也放在后面讨论。
“数字”比较简单,就像开关一样,只有2个值,即开和关,也叫做高电平和低电平,程序上用HIGH和LOW表示,也可以用1和0表示,digitalWrite(13,HIGH) 的意思是设置13号脚输出,且输出为“高电平”,13号脚连接着LED小灯,所以这条指令会点亮小灯。digitalWrite(13,LOW)输出“低电平”,“低电平”相当于给小灯断电。
展开全文
中间的delay用于时间暂停,这里1000代表的是1000毫秒,1000毫秒等于1秒钟,所以整段代码的意思是,点亮小灯,暂停一秒,熄灭小灯,暂停一秒,然后在loop函数中反复执行,我们看到的效果就是小灯每隔一秒亮灭一次。
变量
在loop函数中,delay的作用是暂停时间,它括号中的数值我们称之为“参数”。现在这个参数是1000,意思是暂停时间1000毫秒,也就是1秒。
这里我们先假定希望控制板上的小灯,它的亮灭是匀速的,这需要两个delay中的参数要一样。
如果我们希望小灯闪烁的频率快一些,比如将间隔的时间从1000毫秒降到500毫秒,那我们要同时修改两处参数在代码并不是很多的时候,这个工作量并不大,但往往在复杂的项目中,代码是海量的,同时修改的地方可能多达上百处,这个工作量就非常巨大了。
所以有经验的程序员在设计程序的时候,都会对可能需要变化的数值,使用用一种替代方案,这就是“变量”。
在这个例子中,我们可以在loop函数的最开始处设置变量。int delayTime = 1000;(这是完整的程序语句,我们用分号结束)这段代码的意思是将1000赋值给delayTime,此时delayTime就代表了数值1000。
我们可以把delay中的参数替换成这个变量,当我们修改delayTime的数值(如将1000修改成500),这样做,相当于将两处delay的参数都修改成了500。
上传代码到Arduino控制板后,我们就可以看到小灯的闪烁频率快了一倍。
变量的命名
在程序中,我们可以随便为变量取名字,但要符合变量的命名规范。
C语言中,允许变量以字母或下划线开头,后接任意数量的字母,数字或下划线,但不能以数字和特殊符号开头。
如果你的变量不符合规范(比如我们用数字开头),在“上传”或者“验证”的时候,IDE都会显示错误
除了使用符合规范的变量名,我们还应该尽量使变量名有可读性,比如在上个例子中,我们使用delayTime作为变量名,容易联想到是暂停时间用的,便于对程序的理解。
注:如果你对英文不是特别熟悉,用拼音也是可以得,比如我们可以把delayTime改成zanTingShiJian,目的只有一个,便于理解。
我们常将变量的首词母小写,之后单词的首字母大写,以区分不同的单词。这种变量的命名方法叫做“驼峰命名法”,其目的也是便于人们理解变量的含义。还有一种常见的变量命名方法,是在不同单词之间用下划线分割。使用哪种方法根据你的喜好决定,但要尽量保持一致性。
值得一提的是,如果变量名和C语言的保留字冲突,那也是非法变量。我们不需要现在就了解有哪些C语言保留字,随着学习与应用,我们都会一一接触。如果你的变量名符合规范,但却无法通过编译,可能的原因是你使用了保留字,换一个变量名即可。
结束语
本期分享我们讨论了引脚设置与变量。下期,我们会讨论Arduino串口监示器的知识。
谢谢大家,欢迎关注微信公众号“极乐coder饭”,为您献上有趣有用的原创编码技巧知识。