Arduino语法手册变量部分

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Arduino语法手册=arduino:arduino_language_reference变量部分常量constantsHIGH|LOWINPUT|OUTPUTtrue|falseconstants是在Arduino语言里预定义的变量。它们被用来使程序更易阅读。我们按组将常量分类。逻辑层定义,true与false(布尔Boolean常量)在Arduino内有两个常量用来表示真和假:true和false。false在这两个常量中false更容易被定义。false被定义为0(零)。truetrue通常被定义为1,这是正确的,但true具有更广泛的定义。在布尔含义(Booleansense)里任何非零整数为true。所以在布尔含义内-1,2和-200都定义为ture。需要注意的是true和false常量,不同于HIGH,LOW,INPUT和OUTPUT,需要全部小写。——这里引申一下题外话arduino是大小写敏感语言(casesensitive)。引脚电压定义,HIGH和LOW当读取(read)或写入(write)数字引脚时只有两个可能的值:HIGH和LOW。HIGHHIGH(参考引脚)的含义取决于引脚(pin)的设置,引脚定义为INPUT或OUTPUT时含义有所不同。当一个引脚通过pinMode被设置为INPUT,并通过digitalRead读取(read)时。如果当前引脚的电压大于等于3V,微控制器将会返回为HIGH。引脚也可以通过pinMode被设置为INPUT,并通过digitalWrite设置为HIGH。输入引脚的值将被一个内在的20K上拉电阻控制在HIGH上,除非一个外部电路将其拉低到LOW。当一个引脚通过pinMode被设置为OUTPUT,并digitalWrite设置为HIGH时,引脚的电压应在5V。在这种状态下,它可以输出电流。例如,点亮一个通过一串电阻接地或设置为LOW的OUTPUT属性引脚的LED。LOWLOW的含义同样取决于引脚设置,引脚定义为INPUT或OUTPUT时含义有所不同。当一个引脚通过pinMode配置为INPUT,通过digitalRead设置为读取(read)时,如果当前引脚的电压小于等于2V,微控制器将返回为LOW。当一个引脚通过pinMode配置为OUTPUT,并通过digitalWrite设置为LOW时,引脚为0V。在这种状态下,它可以倒灌电流。例如,点亮一个通过串联电阻连接到+5V,或到另一个引脚配置为OUTPUT、HIGH的的LED。数字引脚(Digitalpins)定义,INPUT和OUTPUT数字引脚当作INPUT或OUTPUT都可以。用pinMode()方法使一个数字引脚从INPUT到OUTPUT变化。引脚(Pins)配置为输入(Inputs)Arduino(Atmega)引脚通过pinMode()配置为输入(INPUT)即是将其配置在一个高阻抗的状态。配置为INPUT的引脚可以理解为引脚取样时对电路有极小的需求,即等效于在引脚前串联一个100兆欧姆(Megohms)的电阻。这使得它们非常利于读取传感器,而不是为LED供电。引脚(Pins)配置为输出(Outputs)引脚通过pinMode()配置为输出(OUTPUT)即是将其配置在一个低阻抗的状态。这意味着它们可以为电路提供充足的电流。Atmega引脚可以向其他设备/电路提供(提供正电流positivecurrent)或倒灌(提供负电流negativecurrent)达40毫安(mA)的电流。这使得它们利于给LED供电,而不是读取传感器。输出(OUTPUT)引脚被短路的接地或5V电路上会受到损坏甚至烧毁。Atmega引脚在为继电器或电机供电时,由于电流不足,将需要一些外接电路来实现供电。integerconstants整数常量整数常量是直接在程序中使用的数字,如123。默认情况下,这些数字被视为int,但你可以通过U和L修饰符进行更多的限制(见下文)。通常情况下,整数常量默认为十进制,但可以加上特殊前缀表示为其他进制。进制例子格式备注10(十进制)123无2(二进制)B1111011前缀'B'只适用于8位的值(0到255)字符0-1有效8(八进制)0173前缀”0”字符0-7有效16(十六进制)0x7B前缀”0x”字符0-9,A-F,A-F有效小数是十进制数。这是数学常识。如果一个数没有特定的前缀,则默认为十进制。二进制以2为基底,只有数字0和1是有效的。示例:101//和十进制5等价(1*2^2+0*2^1+1*2^0)二进制格式只能是8位的,即只能表示0-255之间的数。如果输入二进制数更方便的话,你可以用以下的方式:myInt=(B11001100*256)+B10101010;//B11001100作为高位。八进制是以8为基底,只有0-7是有效的字符。前缀“0”(数字0)表示该值为八进制。0101//等同于十进制数65((1*8^2)+(0*8^1)+1)警告:八进制数0前缀很可能无意产生很难发现的错误,因为你可能不小心在常量前加了个“0”,结果就悲剧了。十六进制以16为基底,有效的字符为0-9和A-F。十六进制数用前缀“0x”(数字0,字母爱克斯)表示。请注意,A-F不区分大小写,就是说你也可以用a-f。示例:0x101//等同于十进制257((1*16^2)+(0*16^1)+1)U&L格式默认情况下,整型常量被视作int型。要将整型常量转换为其他类型时,请遵循以下规则:'u'or'U'指定一个常量为无符号型。(只能表示正数和0)例如:33u'l'or'L'指定一个常量为长整型。(表示数的范围更广)例如:100000L'ul'or'UL'这个你懂的,就是上面两种类型,称作无符号长整型。例如:32767ulfloatingpointconstants浮点常量和整型常量类似,浮点常量可以使得代码更具可读性。浮点常量在编译时被转换为其表达式所取的值。例子n=.005;浮点数可以用科学记数法表示。'E'和'e'都可以作为有效的指数标志。浮点数被转换为被转换为10.0102.34E52.34*10^523400067E-1267.0*10^-120.000000000067数据类型voidvoidvoid只用在函数声明中。它表示该函数将不会被返回任何数据到它被调用的函数中。例子//功能在“setup”和“loop”被执行//但没有数据被返回到高一级的程序中voidsetup(){//...}voidloop(){//...}boolean布尔一个布尔变量拥有两个值,true或false。(每个布尔变量占用一个字节的内存。)例子intLEDpin=5;//LED与引脚5相连intswitchPin=13;//开关的一个引脚连接引脚13,另一个引脚接地。booleanrunning=false;voidsetup(){pinMode(LEDpin,OUTPUT);pinMode(switchPin,INPUT);digitalWrite(switchPin,HIGH);//打开上拉电阻}voidloop(){if(digitalRead(switchPin)==LOW){//按下开关-使引脚拉向高电势delay(100);//通过延迟,以滤去开关抖动产生的杂波running=!running;//触发running变量digitalWrite(LEDpin,running)//点亮LED}}char描述一个数据类型,占用1个字节的内存存储一个字符值。字符都写在单引号,如'A'(多个字符(字符串)使用双引号,如“ABC”)。字符以编号的形式存储。你可以在ASCII表中看到对应的编码。这意味着字符的ASCII值可以用来作数学计算。(例如'A'+1,因为大写A的ASCII值是65,所以结果为66)。如何将字符转换成数字参考serial.println命令。char数据类型是有符号的类型,这意味着它的编码为-128到127。对于一个无符号一个字节(8位)的数据类型,使用byte数据类型。例如charmyChar='A';charmyChar=65;//bothareequivalentunsignedcharunsignedchar描述一个无符号数据类型占用1个字节的内存。与byte的数据类型相同。无符号的char数据类型能编码0到255的数字。为了保持Arduino的编程风格的一致性,byte数据类型是首选。例子unsignedcharmyChar=240;bytebyte描述一个字节存储8位无符号数,从0到255。例子byteb=B10010;//B是二进制格式(B10010等于十进制18)返回主菜单intint简介整数是基本数据类型,占用2字节。整数的范围为-32,768到32,767(-2^15~(2^15)-1)。整数类型使用2的补码方式存储负数。最高位通常为符号位,表示数的正负。其余位被“取反加1”(此处请参考补码相关资料,不再赘述)。Arduino为您处理负数计算问题,所以数学计算对您是透明的(术语:实际存在,但不可操作。相当于“黑盒”)。但是,当处理右移位运算符(»)时,可能有未预期的编译过程。示例intledPin=13;语法intvar=val;var-变量名val-赋给变量的值提示当变量数值过大而超过整数类型所能表示的范围时(-32,768到32,767),变量值会“回滚”(详情见示例)。intxx=-32,768;x=x-1;//x现在是32,767。x=32,767;x=x+1;//x现在是-32,768。返回主菜单unsignedint描述unsignedint(无符号整型)与整型数据同样大小,占据2字节。它只能用于存储正数而不能存储负数,范围0~65,535(2^16)-1)。无符号整型和整型最重要的区别是它们的最高位不同,既符号位。在Arduino整型类型中,如果最高位是1,则此数被认为是负数,剩下的15位为按2的补码计算所得值。例子unsignedintledPin=13;语法unsignedintvar=val;var-无符号变量名称val-给变量所赋予的值编程提示当变量的值超过它能表示的最大值时它会“滚回”最小值,反向也会出现这种现象。unsignedintxx=0;x=x-1;//x现在等于65535--向负数方向滚回x=x+1;//x现在等于0--滚回返回主菜单wordword(字符)描述一个存储一个16字节无符号数的字符,取值范围从0到65535,与unsignedint相同。例子wordw=10000;longlong描述长整数型变量是扩展的数字存储变量,它可以存储32位(4字节)大小的变量,从-2,147,483,648到2,147,483,647。例子longspeedOfLight=186000L;//参见整数常量‘L’的说明语法longvar=val;var-长整型变量名var-赋给变量的值unsignedlong描述无符号长整型变量扩充了变量容量以存储更大的数据,它能存储32位(4字节)数据。与标准长整型不同无符号长整型无法存储负数,其范围从0到4,294,967,295(2^32-1)。例子unsignedlongtime;voidsetup(){Serial.begin(9600);}voidloop(){Serial.print(Time:);time=millis();//程序开始后一直打印时间Serial.println(time);//等待一秒钟,以免发送大量的数据delay(1000);}语法unsignedlongvar=val;var-你所定义的变量名val-给变量所赋的值floatfloat描述float,浮点型数据,就是有一个小数点的数字。浮点数经常被用来近似的模拟连续值,因为他们比整数更大的精确度。浮点数的取值范围在3.4028235E+38~-3.402

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功