- 6
- 0
- 约1.65万字
- 约 23页
- 2020-06-20 发布于浙江
- 举报
arduino语法
精品文档
精品文档
收集于网络,如有侵权请联系管理员删除
收集于网络,如有侵权请联系管理员删除
精品文档
收集于网络,如有侵权请联系管理员删除
2.4 Arduino语法——变量和常量
加载第一个程序后,要想写出一个完整的程序,需要了解和掌握Arduino语言,本节将对Arduino语言做一个初步讲解,首先介绍变量和常量。
2.4.1 变量
变量来源于数学,是计算机语言中能储存计算结果或者能表示某些值的一种抽象概念。通俗来说可以认为是给一个值命名。当定义一个变量时,必须指定变量的类型。如果要变量全是整数,这种变量称为整型(int),那么如果要定义一个名为LED的变量值为11,变量应该这样声明:
int led 11;
一般变量的声明方法为类型名+变量名+变量初始化值。变量名的写法约定为首字母小写,如果是单词组合则中间每个单词的首字母都应该大写,例如ledPin、ledCount等,一般把这种拼写方式称为小鹿拼写法(pumpy case)或者骆驼拼写法(camel case)。
变量的作用范围又称为作用域,变量的作用范围与该变量在哪儿声明有关,大致分为如下两种。
(1)全局变量:若在程序开头的声明区或是在没有大括号限制的声明区,所声明的变量作用域为整个程序。即整个程序都可以使用这个变量代表的值或范围,不局限于某个括号范围内。
(2)局部变量:若在大括号内的声明区所声明的变量,其作用域将局限于大括号内。若在主程序与各函数中都声明了相同名称的变量,当离开主程序或函数时,该局部变量将自动消失。
使用变量还有一个好处,就是可以避免使用魔数。在一些程序代码中,代码中出现但没有解释的数字常量或字符串称为魔数(magic number)或魔字符串(magic string)。魔数的出现使得程序的可阅读性降低了很多,而且难以进行维护。如果在某个程序中使用了魔数,那么在几个月(或几年)后将很可能不知道它的含义是什么。
为了避免魔数的出现,通常会使用多个单词组成的变量来解释该变量代表的值,而不是随意给变量取名。同时,理论上一个常数的出现应该对其做必要地注释,以方便阅读和维护。在修改程序时,只需修改变量的值,而不是在程序中反复查找令人头痛的“魔数”。
【示例1】 带变量的闪灯程序
在接下来的程序2-4里会用到ledPin这个变量,通过它来做一个带变量的闪灯程序。
程序2-4:带变量的闪灯程序
int ledPin = 13;
int delayTime = 1000;
void setup()
{
pinMode(ledPin,OUTPUT);
}
void loop()
{
digitalWrite(ledPin,HIGH);
delay(delayTime); //延时1s
digitalWrite(ledPin,LOW);
delay(delayTime); //延时1s
}
这里还使用了一个名为延时的delayTime变量,在延时(delay)函数中使用的参数单位为毫秒,用到delay函数中,即延时1000毫秒。
【示例2】 改变闪烁频率的闪灯程序
如果希望小灯闪烁快些,将延时函数值改小就可以了,读者可以尝试将delayTime改成500,可以看到小灯闪烁的频率变大了。如果在程序的后面再加上1行代码“delayTime=delayTime+100;”可以发现小灯闪烁的频率越来越小,即小灯闪烁的越来越慢了。当按下“重置”按钮后,小灯闪烁又重新变快了,如下面程序2-5所示。
程序2-5:改变闪烁频率的闪灯程序
int ledPin = 13;
int delayTime = 1000;
void setup()
{
pinMode(ledPin,OUTPUT);
}
void loop()
{
digitalWrite(ledPin,HIGH);
delay(delayTime); //延时
digitalWrite(ledPin,LOW);
delay(delayTime);
delayTime=delayTime+100; //每次增加延时时间0.1s
}
2.4.2 常量
常量是指值不可以改变的量,例如定义常量const float pi = 3.14,当pi = 5时就会报错,因为常量是不可以被赋值的。编程时,常量可以是自定义的,也可以是Arduino核心代码中自带的。下面就介绍一下Arduino核心代码中自带的一些常用的常量,以及自定义常量时应该注意的问题。
1.逻辑常量(布尔常量):false和true
false的值为零,true通常情况下被定义为1,但true具有更广泛的定义。在布尔含义(Boolean Sense)里任何非零整数为true。
您可能关注的文档
- ANCA相关性血管炎诊治中值得关注的问题教学提纲.pptx
- Android应用开发-数据存储电子教案.pptx
- ANSYSLS-DYNA数值模拟霍普金森压杆试验资料.docx
- Ansys压电分析复习进程.doc
- ANSYS的软件介绍与安装培训资料.doc
- APM全部参数表讲课教案.doc
- APP推广方案教程文件.docx
- app设计计划书上课讲义.doc
- APP运营维护服务合同演示教学.doc
- Arcgis-等值线图简单步骤复习进程.docx
- 宣贯培训(2026年)《NYT 4512-2025 非洲菊疫病抗性鉴定技术规程》.pptx
- 宣贯培训(2026年)《NYT 4514-2025木薯副产物综合利用导则》.pptx
- 宣贯培训(2026年)《NYT 4513-2025木薯全程机械化生产技术规范》.pptx
- 宣贯培训(2026年)《NYT 4470-2025全株玉米青贮质量分级》.pptx
- 宣贯培训(2026年)《NYT 4468-2025玉米供需平衡表编制规范》.pptx
- 宣贯培训(2026年)《NYT 4469-2025全株玉米青贮质量评定 综合指数法》.pptx
- 宣贯培训(2026年)《NYT 4474-2025东北地区玉米-大豆轮作生产技术规程》.pptx
- 宣贯培训(2026年)《NYT 4472-2025玉米耐盐碱鉴定评价技术规程》.pptx
- 宣贯培训(2026年)《NYT 4473-2025玉米抗旱性鉴定评价技术规程》.pptx
- 宣贯培训(2026年)《NYT 4478-2025甘薯收获技术规程》.pptx
最近下载
- 新版湘少版四年级下册英语教案全册.doc
- 教科版小学六年级下册综合实践活动主题二 第2课 我给学校提建议(课件).pptx VIP
- FR-WI-08-23 环境管理物质执行标准 A21.xls VIP
- 比亚迪环境管理物质标准A6.pdf VIP
- 大数据视角下小学生学习能力评价与提升策略实践教学研究课题报告.docx
- 2025年落实上级统计督察整改工作情况的报告范文.docx VIP
- HSF001--A1环境管理物质管理标准.doc VIP
- 外军管理概论题库及答案.doc VIP
- T SHJNXH 0021—2025 电化学储能电站运行综合能效等级及评价.pdf VIP
- 2025年外军管理概论试题及答案.docx VIP
原创力文档

文档评论(0)