《Arduino技术及应用》课件—第3章 Arduino语言及程序结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数学 min( ) max( ) abs( ) constrain( ) map( ) pow( ) sqrt( )
3.1.1 描绘程序码的符号
布尔运算符 &&(and) ||(or) !(not) 复合运算符号 ++(increment) --(decrement) +=(compound addition) -=(compound subtraction) *=(compound multiplication) /=(compound division) &= (compound bitwise and) |= (compound bitwise or)
❖ 浮点常量 floating point constants ❖ 和整型常量类似,浮点常量可以使得代码更具可读性。浮点常量在编译时被
转换为其表达式所取的值。 ❖ 例子: ❖ n = .005; 浮点数可以用科学记数法表示。'E'和'e'都可以作为有效的指数标志。
表 3-3 浮点常量的转换
浮点数 10.0
你看到的明明就是一个文字。 ❖ 用数字表示一个字元时,它的值有效范围为-128到127。 ❖ 注意:有两种主流的电脑编码系统ASCII 和UNICODE。 ❖ ASCII 表示了127个字元,用来在序列终端机和分时计算机之间传输文字。 ❖ UNICODE可表示的字元量比较多,在现代电脑作业系统内它可以用来表示多国
例子
格式
备注
10(十进制)
123

2(二进制) 8(八进制)
B1111011 0173
前缀“B” 只适用于8位的值(0到255)
字符0-1有效
前缀“0”
字符0-7有效
16(十六进制)
0x7B
前缀“0x” 字符0-9,A-F,A-F有效
3.1.2 注释、常量
❖ 小数是十进制数。如果一个数没有特定的前缀,则默认为十进制。 ❖ 二进制以2为基底,只有数字0和1是有效的。 ❖ 示例: ❖ 101 //和十进制5等价(1*2^2 + 0*2^1 + 1*2^0) ❖ 二进制格式只能是8位的,即只能表示0-255之间的数。如果输入二进制数更方
2.34E5 67E-12
被转换为
2.34 * 10^5 67.0 * 10^-12
被转换为 10
234000 0.000000000067
3.1.3 字元,位元组
❖ 1、字元char ❖ 字元(metacharacters)即字符,汉字是2个,字母和数字是1个。 ❖ 单一字元例如A,和一般的电脑做法一样Arduino 将字元储存成一个数字,即使
3.1.1 描绘程序码的符号
❖ Arduino程序可以分为三个主要部分:结构,数值(变量与常量)和函数。一 些描绘程序码的符号见下表3-1。
表3-1 一些描绘程序码的符号
结构 程序结构 setup( ) loop( )
数值
函数
常量
数字 I/O
HIGH | LOW
pinMode( )
INPUT | OUTPUT digitalWrite( )
三角函数 sin( ) cos( ) tan( ) 通信 Serial Stream
3.1.2 注释、常量
❖ 1、注释 ❖ 程序的注释就是对代码的解释和说明,编写注释有助于程序设计师(或其他
人)了解代码的功能。 ❖ Arduino处理器在对程序码进行编译时会忽略注释的部份。 ❖ Arduino语言中的编写注释有两种方式: ❖ 单行注释://注释内容 ❖ 多行注释: ❖ /* ❖ 注释内容1 ❖ 注释内容2 ❖ */
便的话,你可以用以下的方式: ❖ myInt = (B11001100 * 256) + B10101010; // B11001100 作为高位。 ❖ 八进制是以8为基底,只有0-7是有效的字符。前缀“0”(数字0)表示该值为
八进制。 ❖ 0101 // 等同于十进制数65 ((1 * 8^2) + (0 * 8^1) + 1) ❖ 警告:八进制数0前缀很可能无意产生很难发现的错误,因为你可能不小心在常
3.1.2 注释、常量
❖ 2、常量constants ❖ 常量是在Arduino语言里预定义的变量。它们被用来使程序更易阅读。我们按组将常
量分类。 ❖ (1)逻辑层定义,true与false(布尔Boolean常量) ❖ 在Arduino内有两个常量用来表示真和假:true和 false。 ❖ false ❖ 在这两个常量中false更容易被定义。false被定义为0(零)。 ❖ true ❖ true通常被定义为1,这是正确的,但true具有更广泛的定义。在布尔含义(Boolean
3.1.2 注释、常量
❖ (3)数字引脚(Digital pins)定义,INPUT和OUTPUT ❖ 数字引脚当作 INPUT 或 OUTPUT都可以。用pinMode( )方法使一个数字引脚
从INPUT到OUTPUT变化。 ❖ 引脚(Pins)配置为输入(Inputs) ❖ Arduino(Atmega)引脚通过pinMode( )配置为输入(INPUT)即是将其配置
3.1.1 描绘程序码的符号
进阶语法
转换
;(semicolon)
char( )
{}(curly braces) byte( )
//(single line int( )
commentmulti-line long( )
comment)
float( )
#define
#include
sense)里任何非零整数为true。所以在布尔含义内-1,2和-200都定义为ture。需要注 意的是true和false常量,不同于HIGH,LOW,INPUT和OUTPUT,需要全部小写。 ❖ 注意:arduino是大小写敏感语言(case sensitive)。
3.1.2 注释、常量
❖ (2)引脚电压定义,HIGH和LOW ❖ 当读取(read)或写入(write)数字引脚时只有两个可能的值:HIGH和LOW。 ❖ HIGH ❖ HIGH(参考引脚)的含义取决于引脚(pin)的设置,引脚定义为INPUT或
语言。 ❖ 在位元数需求较少的资讯传输时,例如意大利文或英文这类由拉丁文,阿拉伯
数字和一般常见符号构成的语言,ASCII仍是目前主要用来交换资讯的编码法。
3.1.3 字元,位元组
❖ 2、位元组byte ❖ 位元组即字节(byte),是计算机信息技术用于计量存储容量的一种计量单
位,也表示一些计算机编程语言中的数据类型和语言字符。 ❖ 一个位元组存储8位无符号数,储存的数值范围为0到255。如同字元一样,位
OUTPUT时含义有所不同。当一个引脚通过pinMode被设置为INPUT,并通过 digitalRead读取(read)时。如果当前引脚的电压大于等于3V,微控制器将会返 回为HIGH。引脚也可以通过pinMode被设置为INPUT,并通过digitalWrite设置为 HIGH。输入引脚的值将被一个内在的20K上拉电阻控制在HIGH上,除非一个外 部电路将其拉低到LOW。当一个引脚通过pinMode被设置为OUTPUT,并 digitalWrite设置为HIGH时,引脚的电压应在5V。在这种状态下,它可以输出电 流。例如,点亮一个通过一串电阻接地或设置为LOW的OUTPUT属性引脚的 LED。
3.1.2 注释、常量
❖ LOW ❖ LOW的含义同样取决于引脚设置,引脚定义为INPUT或OUTPUT时含义有所
不同。当一个引脚通过pinMode配置为INPUT,通过digitalRead设置为读取( read)时,如果当前引脚的电压小于等于2V,微控制器将返回为LOW。当一 个引脚通过pinMode配置为OUTPUT,并通过digitalWrite设置为LOW时,引脚 为0V。在这种状态下,它可以倒灌电流。例如,点亮一个通过串联电阻连接 到+5V,或到另一个引脚配置为OUTPUT、HIGH的的LED。
数据类型 Void boolean char unsigned char byte int unsigned int word long unsigned long float double string - char array String - object array
模拟 I/O analogReference( ) analogRead( ) analogWrite( ) PWM
以下规则: ❖ 'u' or 'U' 指定一个常量为无符号型。(只能表示正数和0)例如: 33u ❖ 'l' or 'L' 指定一个常量为长整型。(表示数的范围更广)例如:100000L ❖ 'ul' or 'UL' 这个你懂的,就是上面两种类型,称作无符号长整型。例如:
32767ul
3.1.2 注释、常量
态。 ❖ 这意味着它们可以为电路提供充足的电流。Atmega引脚可以向其他设备/电路
提供(提供正电流positive current)或倒灌(提供负电流negative current)达 40毫安(mA)的电流。这使得它们利于给LED供电,而不是读取传感器。输 出(OUTPUT)引脚被短路的接地或5V电路上会受到损坏甚至烧毁。Atmega 引脚在为继电器或电机供电时,由于电流不足,将需要一些外接电路来实现 供电。
Arduino技术及应用
第3章 Arduino语言及程序结构
目录
1
Arduino语言
2
Arduino程序结构
就嵌业入前式景系统应用
3.1 Arduino语言
❖ Arduino语言是建立在C/C++基础上的,其实质是基础的C语言, Arduino语言把相关的一些参数设置都函数化,用户不用了解其底层 ,对于不了解AVR单片机(微控制器)的同学也能轻松上手,跨入 Arduino语言的学习行列。
在一个高阻抗的状态。配置为INPUT的引脚可以理解为引脚取样时对电路有 极小的需求,即等效于在引脚前串联一个100兆欧姆(Megohms)的电阻。这使 得它们非常利于读取传感器,而不是为LED供电。
3.1.2 注释、常量
❖ 引脚(Pins)配置为输出(Outputs) ❖ 引脚通过pinMode( )配置为输出(OUTPUT)即是将其配置在一个低阻抗的状
量前加了个“0”,结果就悲剧了。
3.1.2 注释、常量
❖ 十六进制以16为基底,有效的字符为0-9和A-F。十六进制数用前缀“0x”(数字 0,字母爱克斯)表示。请注意,A-F不区分大小写,就是说你也可以用a-f。
❖ 示例: ❖ 0x101 // 等同于十进制257 ((1 * 16^2) + (0 * 16^1) + 1) ❖ U & L 格式 ❖ 默认情况下,整型常量被视作int型。要将整型常量转换为其他类型时,请遵循
true | false
digitalRead( )
integer constants
floating
point
constants
3.1.1 描绘程序码的符号
控制结构 if if...else for switch case while do... while break continue return goto
3.1.2 注释、常量
❖ (4)整数常量integer constants
❖ 整数常量是直接在程序中使用的数字,如123。默认情况下,这些数字被视为 int,但可以通过U和L修饰符进行更多的限制。通常情况下,整数常量默认为 十进制,但可以加上特殊表前3-缀2 表整示数为常其量他不进同制进。制表示
进制
时间 millis( ) micros( ) delay( ) delayMicrosecon ds( )
3.1.1 描绘程序码的符号
比较运算符 ==(equal to) !=(not equal to) <(less than) >(greater than) <=(less than or equal to) >=(greater than or equal to)
高级 I/O tone( ) noTone( ) shiftOut( ) shiftIn( ) pulseIn( )
3.1.1 描绘程序码的符号
算术运算符 = (assignment) + (addition) - (subtraction) * (multiplication) / (division) % (modulo)
相关文档
最新文档