版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
应用实践——Arduino编程基础Arduino语言通常我们说的Arduino语言,是指Arduino核心库文件提供的各种应用程序编程接口(ApplicationProgrammingInterface,简称API)的集合。这些API是对更底层的单片机支持库进行二次封装所形成的。传统开发方式中,需要理清楚每个寄存器的意义及之间的关系,然后通过配置多个寄存器来达到目的。而在Arduino中,使用了清楚明了的API替代繁杂的寄存器配置过程。Arduino语言代码pinMode(13,OUTPUT);digitalWrite(13,HIGH);pinMode(13,OUTPUT)即是设置引脚的模式,这里设定了13脚为输出模式;而digitalWrite(13,HIGH)是让13脚输出高电平数字信号。这些封装好的API,使得程序中的语句更容易被理解,我们不用理会单片机中繁杂的寄存器配置,就能直观的控制Arduino,增强程序的可读性的同时,也提高了开发效率。Arduino程序的基本结构Arduino程序的基本结构Arduino程序基本结构由setup()和loop()两个函数组成。Arduino控制器通电或复位后,即会开始执行setup()函数中的程序,该部分只会执行一次。通常我们会在setup()函数中完成Arduino的初始化设置,如配置I/O口状态,初始化串口等操作。在setup()函数中的程序执行完后,Arduino会接着执行loop()函数中的程序。loop()函数是一个循环,其中的程序会不断的重复运行。通常我们会在loop()函数中完成程序的主要功能,如驱动各种模块,采集数据等。特殊标点及符号Arduino语言运用了一些符号来描绘程序代码,例如,注释和程序部分。
;(分号)
Arduino每条指令(代码行)都以分号结束。这样的语法可以让你自由安排代码,甚至可以将两条指令放在同一行,只要你用一个分号把它们隔开就行了(然而,这样做会让你的程序代码更难以阅读)。
例如:
delay(100);大括号{}(大括号)
用来注释程序代码的分区。例如,当你为loop()函数编写代码时,必须把编码的前后用大括号括起来。
例如:
voidloop(){
serial.println(“TSRobot”);
}注释注释
这是Arduino程序编译中忽略的一部分,但是它有助于提醒你自己或别人这小段程序代码的功能。
在Arduino里有两种形式的注释。
//单行注释:这行会被忽略掉
/*多行注释:
你可以
在这里
写出
一整首诗
*/
常量常量
Arduino语言有一些特殊意义的关键字。
例如:
HIGH和LOW用来表示打开或关闭(高电平或者低电平);
Arduino的一个引脚(pin),INPUT和OUTPUT用来设定某个特定引脚是输入接口还是输出接口;
True和False,像它们的字面意思一样;表示一个条件或一个运算是真还是假。
变量变量
变量保存在Arduino内存中,它可以用来保存数据,你可以应用这个变量的数据来计算或者将这个数据应用到程序中。变量在程序中是可以更改的。因为Arduino是一个非常简单的微处理器,所以当你声明一个变量时,还必须指定它的类型。这意味着告诉处理器为你所要存储的数据留出多大的空间。
变量范围有三个地方可以声明变量。它们是:•在函数或代码块内部,称为局部变量。•在函数参数的定义中,称为形式参数。•在所有函数之外,称为全局变量。局部变量在函数或代码块中声明的变量是局部变量。它们只能由该函数或代码块中的语句使用。局部变量不能在它们自己之外运行。全局变量全局变量在所有函数之外定义,通常位于程序的顶部。全局变量将在程序的整个生命周期中保持其价值。全局变量可以被任何函数访问。也就是说,一个全局变量可以在整个程序中声明后使用。字符串字符串用于存储文本。它们可用在LCD或ArduinoIDE串口监视器窗口中显示文本。字符串也可用于存储用户输入。例如,用户在连接到Arduino的键盘上键入的字符。字符串的定义方式有两种,一种是以字符型数组方式定义,char字符串名称[字符个数];另一种是使用String类型定义。String
字符串名称;数组array(数组)
数组就是通过索引存取的变量列表,它们用来建立数值的表格。例如,如果你想存储不同亮度的LED值,你固然可以创立6个变量,分别为light01、light02等,但更好的方法是用一个如下的数组intlight[6]={0,20,50,75,100,150};
变量类型Boolean(布尔)真,假char(字符)-128到127占用一字节
byte(字节)0-255一字节int(整型)-32768到32767两字节unsignedint(无符号整型)0-65535short(短整型)–32768到32767long(长整型)-2147483648到2417483647float(浮点型)占4个字节,很大double(双精度浮点型)占8个字节,非常大运算符运算符名称运算符简写描述例子赋值运算符
=将等号右侧的值存储在等号左边的变量中。A=B加号+两个操作数相加A+B将得出30
减号-从第一个操作数中减去第二个操作数A-B将得出-10
乘号*将两个操作数相乘A*B将得出200
除号/用分母除分子B/A将得出2
模数%模数运算符和整数除后的余数B%A将得出0运算符运算符名称运算符简写描述例子等于==检查两个操作数的值是否相等,如果相等,则条件为真(true)。(A==B)不为真不等于!=检查两个操作数的值是否相等,如果值不相等,则条件为真。(A!=B)为真小于<检查左操作数的值是否小于右操作数的值,如果是,则条件为真。(A<B)为真大于>检查左操作数的值是否大于右操作数的值,如果是,则条件为真。(A>B)不为真小于或等于<=检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为真。(A<=B)为真大于或等于>=检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真。(A>=B)不为真运算符运算符名称运算符简写描述例子and(与)&&称为逻辑运算符与。如果两个操作数都是非零,那么条件为真。(A&&B)为真or(或)||称为逻辑运算符或。如果两个操作数中的任何一个是非零,则条件为真。(A||B)为真not(非)!称为逻辑运算符非。用于反转其操作数的逻辑状态。如果条件为真,则逻辑运算符非将为假。!(A&&B)为假位运算符运算符名称运算符简写描述例子and(与)&如果同时存在于两个操作数中,二进制AND运算符复制一位到结果中。(A&B)将得出12,即00001100or(或)|如果存在于任一操作数中,二进制OR运算符复制一位到结果中。(A|B)将得出61,即00111101xor(异或)^如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制XOR运算符复制一位到结果中。(A^B)将得出49,即00110001not(非)~二进制NOT运算符是一元运算符,具有"翻转"位效果。(〜A)将得出-60,即11000011shiftleft(左移)
<<二进制左移运算符。左操作数的值向左移动右操作数指定的位数。A<<2将得出240,即11110000shiftright(右移)
>>二进制右移运算符。左操作数的值向右移动右操作数指定的位数。A>>2将得出15,即00001111复合运算符运算符名称运算符简写描述例子自增++自增运算符,将整数值增加1A++将得出11
自减--自减运算符,将整数值减1A--将得出9复合加
+=加且赋值运算符。把右边操作数加上左边操作数的结果赋值给左边操作数。B+=A等效于B=B+A复合减
-=减且赋值运算符。把左边操作数减去右边操作数的结果赋值给左边操作数。B-=A等效于B=B-A复合乘
*=乘且赋值运算符。把右边操作数乘以左边操作数的结果赋值给左边操作数。B*=A等价于B=B*A复合除
/=除且赋值运算符。把左边操作数除以右边操作数的结果赋值给左边操作数。B/=A等效于B=B/A复合模数
%=求模且赋值运算符。求两个操作数的模赋值给左边操作数B%=A等效于B=B%A复合按位或|=按位或且赋值运算符A|=2与A=A|
2相同复合按位与&=按位与且赋值运算符A&=2与A=A&
2相同时间函数Arduino提供四种不同的时间操作函数。序号函数和描述delay()函数delay()函数的工作方式非常简单。它接受单个整数(或数字)参数。此数字表示时间(以毫秒为单位)。delayMicroseconds()函数delayMicroseconds()函数接受单个整数(或数字)参数。一毫秒内有一千微秒,一秒内有一百万微秒。millis()函数此函数用于返回Arduino板开始运行当前程序时的毫秒数。micros()函数micros()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 延续护理服务模式的护士创新服务包推广策略案例
- 康复期心理教育对术后抑郁的缓解
- 庞贝病患者基因治疗的个体化方案设计
- 干细胞基础研究向青光眼临床应用的转化策略
- 荆职院护理学基础课件08患者入院和出院的护理
- 帕金森病DBS术后异动症的防治策略
- 临床病理诊断技术探讨
- 屈光参差性弱视术后早期干预策略
- 儿科护理特色服务模式研究
- 人工智能辅助下的病理诊断系统
- 2025年统战工作自查报告
- 教育信息化促进乡村教育振兴
- DB45-T 2854-2024 侗族服饰标准规范
- CTD申报资料:创新药IND模块一-行政文件和药品信息
- 人教版四年级数学上册数与代数专项复习卷(含答案)
- 改善重症心肌梗死患者预后仍任重道远
- 呼吸道疾病健康知识讲座
- 离婚登记申请受理回执单模板
- 抑郁自评量表-SDS
- GA 1809-2022城市供水系统反恐怖防范要求
- 防爆电气设备的安装课件
评论
0/150
提交评论