书签 分享 收藏 举报 版权申诉 / 39
上传文档赚钱

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

  • 上传人(卖家):晟晟文业
  • 文档编号:3703801
  • 上传时间:2022-10-06
  • 格式:PPT
  • 页数:39
  • 大小:240.60KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《Arduino技术及应用》课件—第3章Arduino语言及程序结构.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Arduino技术及应用 Arduino 技术 应用 课件 语言 程序结构
    资源描述:

    1、第3章 Arduino语言及程序结构目录目录2嵌入式系统应用1就业前景 Arduino语言 Arduino程序结构3.1 Arduino语言语言v Arduino语言是建立在C/C+基础上的,其实质是基础的C语言,Arduino语言把相关的一些参数设置都函数化,用户不用了解其底层,对于不了解AVR单片机(微控制器)的同学也能轻松上手,跨入Arduino语言的学习行列。3.1.1 描绘程序码的符号描绘程序码的符号v Arduino程序可以分为三个主要部分:结构,数值(变量与常量)和函数。一些描绘程序码的符号见下表3-1。结构数值函数程序结构常量数字 I/Osetup()loop()HIGH|LO

    2、WINPUT|OUTPUTtrue|falseinteger constantsf l o a t i n g p o i n t constantspinMode()digitalWrite()digitalRead()表3-1 一些描绘程序码的符号3.1.1 描绘程序码的符号描绘程序码的符号控制结构数据类型模拟 I/Oifif.elseforswitch casewhiledo.whilebreakcontinuereturngotoVoidbooleancharunsigned charbyteintunsigned intwordlongunsigned longfloatdouble

    3、string-char arrayString-objectarrayanalogReference()analogRead()analogWrite()-PWM3.1.1 描绘程序码的符号描绘程序码的符号进阶语法转换高级 I/O;(semicolon)(curly braces)/(single line comment)/*/(multi-line comment)#define#includechar()byte()int()word()long()float()tone()noTone()shiftOut()shiftIn()pulseIn()3.1.1 描绘程序码的符号描绘程序码的符

    4、号算术运算符 时间=(assignment)+(addition)-(subtraction)*(multiplication)/(division)%(modulo)millis()micros()delay()delayMicroseconds()3.1.1 描绘程序码的符号描绘程序码的符号比较运算符 数学=(equal to)!=(not equal to)(greater than)=(greater than or equal to)min()max()abs()constrain()map()pow()sqrt()3.1.1 描绘程序码的符号描绘程序码的符号布尔运算符 三角函数&(

    5、and)|(or)!(not)sin()cos()tan()复合运算符号 通信+(increment)-(decrement)+=(compound addition)-=(c o m p o u n d subtraction)*=(c o m p o u n d multiplication)/=(compound division)&=(compound bitwise and)|=(compound bitwise or)SerialStream3.1.2 注释、常量注释、常量v 1、注释v 程序的注释就是对代码的解释和说明,编写注释有助于程序设计师(或其他人)了解代码的功能。v Ar

    6、duino处理器在对程序码进行编译时会忽略注释的部份。v Arduino语言中的编写注释有两种方式:v 单行注释:/注释内容v 多行注释:v/*v 注释内容1v 注释内容2v */3.1.2 注释、常量注释、常量v 2、常量constantsv 常量是在Arduino语言里预定义的变量。它们被用来使程序更易阅读。我们按组将常量分类。v(1)逻辑层定义,true与false(布尔Boolean常量)v 在Arduino内有两个常量用来表示真和假:true和 false。v falsev 在这两个常量中false更容易被定义。false被定义为0(零)。v truev true通常被定义为1,这是

    7、正确的,但true具有更广泛的定义。在布尔含义(Boolean sense)里任何非零整数为true。所以在布尔含义内-1,2和-200都定义为ture。需要注意的是true和false常量,不同于HIGH,LOW,INPUT和OUTPUT,需要全部小写。v 注意:arduino是大小写敏感语言(case sensitive)。3.1.2 注释、常量注释、常量v(2)引脚电压定义,HIGH和LOWv 当读取(read)或写入(write)数字引脚时只有两个可能的值:HIGH和LOW。v HIGHv HIGH(参考引脚)的含义取决于引脚(pin)的设置,引脚定义为INPUT或OUTPUT时含义有

    8、所不同。当一个引脚通过pinMode被设置为INPUT,并通过digitalRead读取(read)时。如果当前引脚的电压大于等于3V,微控制器将会返回为HIGH。引脚也可以通过pinMode被设置为INPUT,并通过digitalWrite设置为HIGH。输入引脚的值将被一个内在的20K上拉电阻控制在HIGH上,除非一个外部电路将其拉低到LOW。当一个引脚通过pinMode被设置为OUTPUT,并digitalWrite设置为HIGH时,引脚的电压应在5V。在这种状态下,它可以输出电流。例如,点亮一个通过一串电阻接地或设置为LOW的OUTPUT属性引脚的LED。3.1.2 注释、常量注释、常

    9、量v LOWv LOW的含义同样取决于引脚设置,引脚定义为INPUT或OUTPUT时含义有所不同。当一个引脚通过pinMode配置为INPUT,通过digitalRead设置为读取(read)时,如果当前引脚的电压小于等于2V,微控制器将返回为LOW。当一个引脚通过pinMode配置为OUTPUT,并通过digitalWrite设置为LOW时,引脚为0V。在这种状态下,它可以倒灌电流。例如,点亮一个通过串联电阻连接到+5V,或到另一个引脚配置为OUTPUT、HIGH的的LED。3.1.2 注释、常量注释、常量v(3)数字引脚(Digital pins)定义,INPUT和OUTPUTv 数字引脚

    10、当作 INPUT 或 OUTPUT都可以。用pinMode()方法使一个数字引脚从INPUT到OUTPUT变化。v 引脚(Pins)配置为输入(Inputs)v Arduino(Atmega)引脚通过pinMode()配置为输入(INPUT)即是将其配置在一个高阻抗的状态。配置为INPUT的引脚可以理解为引脚取样时对电路有极小的需求,即等效于在引脚前串联一个100兆欧姆(Megohms)的电阻。这使得它们非常利于读取传感器,而不是为LED供电。3.1.2 注释、常量注释、常量v 引脚(Pins)配置为输出(Outputs)v 引脚通过pinMode()配置为输出(OUTPUT)即是将其配置在一

    11、个低阻抗的状态。v 这意味着它们可以为电路提供充足的电流。Atmega引脚可以向其他设备/电路提供(提供正电流positive current)或倒灌(提供负电流negative current)达40毫安(mA)的电流。这使得它们利于给LED供电,而不是读取传感器。输出(OUTPUT)引脚被短路的接地或5V电路上会受到损坏甚至烧毁。Atmega引脚在为继电器或电机供电时,由于电流不足,将需要一些外接电路来实现供电。3.1.2 注释、常量注释、常量v(4)整数常量integer constants v 整数常量是直接在程序中使用的数字,如123。默认情况下,这些数字被视为int,但可以通过U和

    12、L修饰符进行更多的限制。通常情况下,整数常量默认为十进制,但可以加上特殊前缀表示为其他进制。进制例子格式备注10(十进制)123无 2(二进制)B1111011前缀“B”只适用于8位的值(0到255)字符0-1有效8(八进制)0173前缀“0”字符0-7有效16(十六进制)0 x7B前缀“0 x”字符0-9,A-F,A-F有效表 3-2 整数常量不同进制表示3.1.2 注释、常量注释、常量v 小数是十进制数。如果一个数没有特定的前缀,则默认为十进制。v 二进制以2为基底,只有数字0和1是有效的。v 示例:v 101 /和十进制5等价(1*22+0*21+1*20)v 二进制格式只能是8位的,即

    13、只能表示0-255之间的数。如果输入二进制数更方便的话,你可以用以下的方式:v myInt=(B11001100*256)+B10101010;/B11001100 作为高位。v 八进制是以8为基底,只有0-7是有效的字符。前缀“0”(数字0)表示该值为八进制。v 0101 /等同于十进制数65 (1*82)+(0*81)+1)v 警告:八进制数0前缀很可能无意产生很难发现的错误,因为你可能不小心在常量前加了个“0”,结果就悲剧了。3.1.2 注释、常量注释、常量v 十六进制以16为基底,有效的字符为0-9和A-F。十六进制数用前缀“0 x”(数字0,字母爱克斯)表示。请注意,A-F不区分大小

    14、写,就是说你也可以用a-f。v 示例:v 0 x101 /等同于十进制257 (1*162)+(0*161)+1)v U&L 格式v 默认情况下,整型常量被视作int型。要将整型常量转换为其他类型时,请遵循以下规则:v u or U 指定一个常量为无符号型。(只能表示正数和0)例如:33uv l or L 指定一个常量为长整型。(表示数的范围更广)例如:100000Lv ul or UL 这个你懂的,就是上面两种类型,称作无符号长整型。例如:32767ul3.1.2 注释、常量注释、常量v 浮点常量 floating point constantsv 和整型常量类似,浮点常量可以使得代码更具可

    15、读性。浮点常量在编译时被转换为其表达式所取的值。v 例子:v n=.005;浮点数可以用科学记数法表示。E和e都可以作为有效的指数标志。浮点数被转换为被转换为10.0 102.34E52.34*10523400067E-1267.0*10-120.000000000067表 3-3 浮点常量的转换3.1.3 字元,位元组字元,位元组v 1、字元charv 字元(metacharacters)即字符,汉字是2个,字母和数字是1个。v 单一字元例如A,和一般的电脑做法一样Arduino 将字元储存成一个数字,即使你看到的明明就是一个文字。v 用数字表示一个字元时,它的值有效范围为-128到127。

    16、v 注意:有两种主流的电脑编码系统ASCII 和UNICODE。v ASCII 表示了127个字元,用来在序列终端机和分时计算机之间传输文字。v UNICODE可表示的字元量比较多,在现代电脑作业系统内它可以用来表示多国语言。v 在位元数需求较少的资讯传输时,例如意大利文或英文这类由拉丁文,阿拉伯数字和一般常见符号构成的语言,ASCII仍是目前主要用来交换资讯的编码法。3.1.3 字元,位元组字元,位元组v 2、位元组bytev 位元组即字节(byte),是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。v 一个位元组存储8位无符号数,储存的数值范

    17、围为0到255。如同字元一样,位元组型态的变数只需要用一个位元组(8位元)的内存空间储存。v 3、不同数量级间换算v 数据存储是以10进制表示,数据传输是以2进制表示的,所以1KB不等于1000B。3.1.3 字元,位元组字元,位元组v 1KB=1024B;1MB=1024KB=10241024B。其中1024=210。v 1B(byte,字节)=8 bit(比特);v 1KB(Kibibyte,千字节)=1024B=210 B;v 1MB(Mebibyte,兆字节,百万字节,简称“兆”)=1024KB=220 B;v 1GB(Gigabyte,吉字节,十亿字节,又称“千兆”)=1024MB=

    18、230 B;v 1TB(Terabyte,万亿字节,太字节)=1024GB=240 B;v 1PB(Petabyte,千万亿字节,拍字节)=1024TB=250 B;v 此处没有列举完全,更大单位的换算可自行查询。3.1.4 整数,长整数整数,长整数v 1、整数v(1)整数intv 整数是基本数据类型,占用2字节。整数的范围为-32,768到32,767(-215(215)-1)。v 整数类型使用2的补码方式存储负数。最高位通常为符号位,表示数的正负。其余位被“取反加1”。v 格式:int var=val;v var变量名v val赋给变量的值3.1.4 整数,长整数整数,长整数v 示例:in

    19、t ledPin=13;v 注意:v 当变量数值过大而超过整数类型所能表示的范围时(-32,768到32,767),变量值会“回滚”。v int x;v x=-32,768;v x=x-1;/x现在是32,767v x=32,767;v x=x+1;/x现在是-32,7683.1.4 整数,长整数整数,长整数v(2)无号整数unsigned intv 无符号整型(unsigned int)与整型数据同样大小,占据2字节。它只能用于存储正数而不能存储负数,范围065,535(216)-1)。v 无符号整型和整型最重要的区别是它们的最高位不同,既符号位。在Arduino整型类型中,如果最高位是1,

    20、则此数被认为是负数,剩下的15位为按2的补码计算所得值。v 格式:unsigned int var=val;v var无符号变量名称v val给变量所赋予的值3.1.4 整数,长整数整数,长整数v 例子:unsigned int ledPin=13;v 注意:v 当变量的值超过它能表示的最大值时它会“滚回”最小值,反向也会出现这种现象。v unsigned int x;v x=0;v x=x-1;/x现在等于65535-向负数方向滚回v x=x+1;/x现在等于0-滚回3.1.4 整数,长整数整数,长整数v 2、长整数v(1)长整数longv 长整数型变量是扩展的数字存储变量,它可以存储32位

    21、(4字节)大小的变量,从-2,147,483,648到2,147,483,647。v 格式:long var=val;v var长整型变量名v var赋给变量的值v 例子:long speedOfLight=186000L;/参见整数常量L的说明3.1.4 整数,长整数整数,长整数v(2)无号长整数unsigned longv 无符号长整型变量扩充了变量容量以存储更大的数据,它能存储32位(4字节)数据。与标准长整型不同无符号长整型无法存储负数,其范围从0到4,294,967,295(2 32-1)。v 格式:unsigned long var=val;v var你所定义的变量名v val给变

    22、量所赋的值3.1.5 浮点数,字串浮点数,字串v 1、浮点数v(1)浮点数floatv float,浮点型数据,就是有一个小数点的数字。浮点数经常被用来近似的模拟连续值,因为他们比整数更大的精确度。浮点数的取值范围在3.4028235 E+38 -3.4028235E+38。它被存储为32位(4字节)的信息。v float只有6-7位有效数字。这指的是总位数,而不是小数点右边的数字。与其他平台不同的是,在那里你可以使用double型得到更精确的结果(如15位),在Arduino上,double型与float型的大小相同。v 浮点数字在有些情况下是不准确的,在数据大小比较时,可能会产生奇怪的结果

    23、。例如6.0/3.0可能不等于2.0。你应该使两个数字之间的差额的绝对值小于一些小的数字,这样就可以近似的得到这两个数字相等这样的结果。3.1.5 浮点数,字串浮点数,字串v 浮点运算速度远远慢于执行整数运算,例如,如果这个循环有一个关键的计时功能,并需要以最快的速度运行,就应该避免浮点运算。程序员经常使用较长的程式把浮点运算转换成整数运算来提高速度。v 格式:float var=val;v var您的float型变量名称v val分配给该变量的值v 举例:v float myfloat;v float sensorCalbrate=1.117;v 示例代码:v int x;v int y;v

    24、 float z;v x=1;v y=x/2;/Y为0,因为整数不能容纳分数v z=(float)x/2.0;/Z为0.5(你必须使用2.0做除数,而不是2)3.1.5 浮点数,字串浮点数,字串v(2)doublev 双精度浮点数(double),占用4个字节。v 目前的arduino上的double实现和float相同,精度并未提高。v 注意:如果你从其他地方得到的代码中包含了double类变量,最好检查一遍代码以确认其中的变量的精确度能否在arduino上达到。3.1.5 浮点数,字串浮点数,字串v 2、字串stringv 字串用来表达文字信息,它是由多个ASCII字元组成(你可以透过序串

    25、端口发送一个文字信息或者将之显示在液晶显示器上)。字串中的每一个字元都用一个组元组空间储存,并且在字串的最尾端加上一个空字元以提示Ardunio处理器字串的结束。下面两种宣告方式是相同的:v char string1=Arduino;/7字元+1空字元v char string28=Arduino;/与上行相同3.2.1 void setup()v 在Arduino中程序运行时将首先调用setup()函数。用于初始化变量、设置针脚的输出输入类型、配置串口、引入类库文件等等。每次Arduino上电或重启后,setup函数只运行一次。v 示例:v int buttonPin=3;v void se

    26、tup()v v Serial.begin(9600);v pinMode(buttonPin,INPUT);v v void loop()v v /v 3.2.2 void loop()v 在setup()函数中初始化和定义了变量,然后执行loop()函数。顾名思义,该函数在程序运行过程中不断的循环,根据一些反馈,相应改变执行情况。通过该函数动态控制Arduino主控板。3.2.2 void loop()v 示例:v int buttonPin=3;v/setup 中初始化串口和按键针脚.v void setup()v v Serial.begin(9600);v pinMode(butto

    27、nPin,INPUT);v v/loop 中每次都检查按钮,如果按钮被按下,就发送信息到串口3.2.2 void loop()v void()v v if(digitalRead(buttonPin)=HIGH)v Serial.write(H);v elsev Serial.write(L);v delay(1000);v 3.3 本章小结本章小结v 本章主要介绍Arduino语言及其程序结构,为读者今后进行Arduino开发打下基础。从描绘程序码的符号、注释、常量、字元、位元组、整数、长整数、浮点数、字串等几个方面对Arduino语言做一些简单介绍。同时介绍了架构Arduino程序结构的两个主要函数setup()和loop()。Thank You!

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《Arduino技术及应用》课件—第3章Arduino语言及程序结构.ppt
    链接地址:https://www.163wenku.com/p-3703801.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库