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

类型《Arduino技术及应用》课件—第10章Inputoutput高级应用.pptx

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

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

    特殊限制:

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

    关 键  词:
    Arduino技术及应用 Arduino 技术 应用 课件 10 Inputoutput 高级
    资源描述:

    1、目录110.1调声函数调声函数tone()主要使用在Arduino连接蜂鸣器或扬声器发生的场合,其实质是输出一个频率可调的方波,以此驱动蜂鸣器或扬声器振动发声。1.tone()功能:在一个引脚上产生一个特定频率的方波(50%占空比)。语法:tone(pin,frequency)tone(pin,frequency,duration)参数:pin,需要输出方波的引脚。frequency,输出的频率,单位Hz,类型unsigned int。duration,频率持续的时间,单位毫秒。类型unsigned long。返回值:无。10.1调声函数2.noTone()功能:停止由tone()产生的方波。

    2、如果没有使用tone()将不会有效果。语法:noTone(pin)参数:pin,所要停止产生声音的引脚。返回值:无。注意:如果你想在多个引脚上产生不同的声音,你要在对下个引脚使用tone()前对刚才的引脚调用。10.1调声函数图10-1 无源蜂鸣器模块3.无源蜂鸣器模块无源蜂鸣器模块(图10-1)是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、报警器和电子玩具等电子设备中。如果使用的是模块,则可直接连接到扩展板;如果使用的是独立扬声器或者蜂鸣器,则只需在其正极与Arduino数字引脚之间连接一个100的限流电阻即可,连接方法如图10-2所示。图10-2 扬声器、蜂鸣器模块使用

    3、连接示意图10.2脉冲宽度测量函数及超声波测距Arduino提供的pulseIn()函数用于检测指定引脚上脉冲信号的宽度。10.2.1 脉冲宽度测量函数其应用有如下特点:u 功能:检测指定引脚上的脉冲信号宽度。例如,当要检测高电平脉冲时,pulseIn()函数会等待指定引脚输入的电平变高,在变高后开始计时,直到输入电平变低时,计时停止。pulseIn()函数会返回此脉冲信号持续的时间,即该脉冲的宽度。pulseIn()函数还可以设定超时时间。如果超过设定时间仍未检测到脉冲,则会退出pulseIn()函数并返回0。当没有设定超时时间时,pulseIn()函数会默认1秒钟的超时时间。u 语法:pu

    4、lseIn(pin,value)pulseIn(pin,value,timeout)10.2.1 脉冲宽度测量函数参数:pin,需要读取脉冲的引脚。value,需要读取的脉冲类型,为HIGH或LOW。timeout,超时时间,单位为微秒,数据类型为无符号长整型。返回值:换行返回脉冲宽度,单位为微秒,数据类型为无符号长整型。如果在指定时间内没有检测到脉冲,则返回0。10.2.2 超声波测距 超声波是频率高于20000Hz的声波,它的指向性强,能量消耗缓慢,在介质中传播的距离较远,因而经常用于测量距离。超声波传感器的型号众多,这里介绍一款常见的超声波传感器。10.2.2 超声波测距1.SR04超声

    5、波传感器SR04(图10-5)是利用超声波特性检测距离的传感器。其带有两个超声波探头,分别用做发射和接收超声波。其测量范围是3-450cm。1图10-5 SR04超声波传感器10.2.2 超声波测距2.超声波测距的工作原理如图10-6所示,超声波发射器向某一方向发射超声波,在发射的同时开始计时;超声波在空气中传播,途中碰到障碍物则立即返回,超声波接收器收到反射波则立即停止计时。声波在空气中的传播速度为340m/s,根据计时器记录的时间C,即可计算出发射点距障碍物的距离s,即s=340m/st/2。这就是所谓的时间差测距法。图10-6 超声波发射/接收示意图10.2.2 超声波测距3.超声波模块

    6、引脚SR04超声波模块有4个引脚,各功能如表10-1所列。表10-1 SR04超声波模块引脚引脚名称说明Vcc电源5VTrig触发引脚Echo回馈引脚Gnd地10.2.2 超声波测距4.超声波模块的使用方法及时序图如图10-7所示,使用Arduino的数字引脚给SR04模块的Trig引脚至少10的高电平信号,触发SR04模块的测距功能。如图10-8所示,触发测距功能后,樓块会自动发送8个40kHz的超声波脉冲,并自动检测是否有信号返回。如图10-9所示,若有信号返回,则Echo引脚会输出高电平,高电平持续的时间就是超声波从发射到返回的时间。此时可以使用PulseIn()函数获取测距的结果,并计

    7、算出距被测物体的实际距离。这一步由模块内部自动完成。图10-7 Arduino发送触法信号图10-8 超声波模块发出超声波脉冲10.2.2 超声波测距图10-9 超声波模块返回测距结果10.2.2 超声波测距5.连接示意图超声波测距示例连接示意图如图10-10所示。如图10-10所示,本示例将超声波模块的Trig引脚连接到Arduino的2号引脚,Echo引脚连接到Arduino的3号引脚。图10-10 超声波测距示例连接示意图10.3 简易电子琴例子图10-12 简易电子琴项目连接示意图如图10-12所示,本项目使用7个按键分别连接7个引脚,并给每个引脚加上10K的下拉电阻以稳定引脚上的电平

    8、。Arduino通过依次检查各按键的状态来控制10号引脚上输出的方波,以驱动蜂鸣器发出各种不同的音调。10.4 设置ADC参考电压 基础 概念在使用analogRead()函数读取模拟输入口的电压时,函数返回值的计算方法为analogRead(pin)函数返回值=当用户没有设置参考电压时,Arduino会默认使用工作电压作为参考电压。大多数Arduino控制器的工作电压都为5V,所以默认参考电压也为5V。当要测量的电压较小时或对测量精度要求较高时,可以通过降低参考电压来使测量结果更精准。Arduino提供了内部参考电压,但内部参考电压并不准确,如果使用的话反而会使精度降低。在实际应用中,一般通

    9、过输人高精度的外部参考电压来提高检测精度。在Arduino控制器上有一个AREF引脚,可以从该引脚给Arduino输人外部参考电压,同时需要使用analogReference()函数来设置Arduino使用外部参考电压。其调用形式为:analogReference(type);1023被 测 电 压参 考 电 压10.4 设置ADC参考电压 其中参数type的可用选项如表10-2所列。选项说明DEFAULT默认当前Arduino工作电压作为参考电压INTERNAL使用内部参考电压(当前使用UNO时为1.1V,当前使用ATmega8时为2.56V)该设置并不适用于Arduino MEGAINTE

    10、RNAL1V1使用内部1.1V参考电压(仅适用于Arduino MEGA)INTERNAL2V56使用内部2.56V参考电压(仅适用于Arduino MEGA)EXTERNAL使用从AREF引脚输入的外部参考电压表10-2 ADC参考电压可用配置10.5 外部中断程序运行过程中时常需要监控一些事件的发生,如对某一传感器的检测结果做出反应。使用轮询的方式进行检测时效率较低,等待时间较长,而使用中断方式进行检测则可以达到实时检测的效果。图10-13 中断结构10.5.1 外部中断的使用1.中断引脚与中断编号在不同型号的Arduino控制器上,中断引脚的位置也不相同,只有中断信号发生在带有外部中断功

    11、能的引脚上,Arduino才能捕获到该中断信号并做出响应,表10-3列举了Arduino常见型号控制器的中断引脚所对应的外部中断编号。Arduino型号int0int1int2int3int4int5UNO23-MEGA2321201918Leonardo3201-Due所有引脚均可使用外部中断表10-3 常见Arduino控制器时中断编号10.5.1 外部中断的使用2.中断模式为了设置中断模式,还需要了解设备触发外部中断的输入信号类型。中断模式也就是中断触发的方式。在大多数Arduino上支持表10-4中的四种中断触发方式。模式名称说明LOW低电平触发CHANGE电平变化触发,即高电平变低电

    12、平、低电平变高电平RISING上升沿触发,即低电平变高电平FALLING下降沿触发,即高电平变低电平表10-4 可用的中断触发模式10.5.1 外部中断的使用3.中断函数除了设置中断模式外,还需要编写一个响应中断的处理程序中断函数,当中断被触发后,便可以让Arduino运行该中断函数。中断函数就是当中断被触发后要去执行的函数,该函数不能带有任何参数,且返回类型为空,如:void Hello()Serial.println(hello);当中断被触发后,Arduino便会执行该函数中的语句。10.5.1 外部中断的使用这些准备工作完成后,还需要在setup()中使用attachInterrupt

    13、()函数对中断引脚进行初始化配置,以开启Arduino的外部中断功能,其用法如下。(1)attachInterrupt(interrupt,function,mode)功能:对中断引脚进行初始化配置。参数:Interrupt,中断编号,注意,这里的中断编号并不是引脚编号。function,中断函数名,当中断被触发后即会运行此函数名称所代表的中断函数。mode,中断模式。(2)detachInterrupt(interrupt)功能:禁用外部中断。参数:interrupt,需要禁用的中断编号。10.5.2 外部中断触发蜂鸣器报警数字红外障碍传感器(图1014)是一种通过红外光反射来检测障碍物的传

    14、感器。检测模块会发出调制过的38kHz红外光,红外光经障碍物反射后由一体化接收头接收。当检测范围内有障碍物时,模块输出低电平;当无障碍物时,模块输出高电平。图10-14 数字红外障碍传感器10.6 本章小结本章主要介绍了Arduino I/O口的高级应用,首先介绍了调声函数,其主要使用在Arduino连接蜂鸣器或扬声器发生的场合,其实质是输出一个频率可调的方波,以此驱动蜂鸣器或扬声器振动发声。其次介绍了脉冲宽度测量函数其功能是检测指定引脚上的脉冲信号宽度,利用pulseIn()函数和超声波传感器来测量距离,使用analogRead()函数读取模拟输入口的电压,外部中断主要介绍了一些常见的Arduino控制器的中断编号,利用中断函数进行中断。通过本篇的讲述可以更好的了解I/O口的使用。Thank You!

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

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


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


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

    163文库