Arduino应用技术 课件 西电 arduino开发简介、第5章 Arduino的扩展库_第1页
Arduino应用技术 课件 西电 arduino开发简介、第5章 Arduino的扩展库_第2页
Arduino应用技术 课件 西电 arduino开发简介、第5章 Arduino的扩展库_第3页
Arduino应用技术 课件 西电 arduino开发简介、第5章 Arduino的扩展库_第4页
Arduino应用技术 课件 西电 arduino开发简介、第5章 Arduino的扩展库_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

四川文化传媒职业学院航空系高瞻Arduino开发平台Arduino开发平台介绍1

Arduino开发基础操作2

开发实例(用Arduino控制一个舵机)3Arduino开发平台Arduino开发平台介绍

1.什么是Arduino?Arduino项目起源于意大利,该名字在意大利是男性用名,音译为“阿尔杜伊诺”,意思为“强壮的朋友”。Arduino的出现并不是偶然,Arduino最初是为一些非电子工程专业的学生设计的。设计者最初为了寻求一个廉价好用的微控制器开发板从而决定自己动手制作开发板,Arduino一经推出,因其开源、廉价、简单易懂的特性迅速受到了广大电子迷的喜爱和推崇。几乎任何人,即便不懂电脑编程,利用这个开发板也能用Arduino做出炫酷有趣的东西,比如对感测器探测做出一些回应、闪烁灯光、控制马达等。Arduino开发平台介绍

1.什么是Arduino?Arduino应用(视频)Arduino开发平台介绍

Arduino是一块基于开放原始代码的Simplei/o平台,并且具有开发语言和开发环境都很简单、易理解的特点。让您可以快速使用Arduino做出有趣的东西。它是一个能够用来感应和控制现实物理世界的一套工具。它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成。Arduino开发平台介绍

Arduino是一个加载了微控制器的电路板,更是一个包含了硬件和软件的开发平台。将程序下载到主板Arduino开发平台介绍

Arduino硬件是一块完整的电路板,包含一块微控制器IC,一组排母用于连接到其它电路、若干个稳压器IC用于给整个电路提供合适的电源,一个USB接口用于连接计算机。Arduino开发平台介绍

Arduino软件是一个编程的开发环境。这个软件包含一个文本编辑器,可以在文本编辑编辑器中编写并修改程序,软件还包含一个自动上传器,可以将编写完成的程序发送到Arduino开发板。Arduino开发平台介绍

Arduino开发板上需要关注的重点:1.核心微控制器:ArduinoUno使用的是AtmelAVRATmega328P微控制器。Arduino开发平台介绍

Arduino开发板上需要关注的重点:2.外部连接排母。与外部交互的接口。Uno一共有28个。分成三组:(1)电源(2)模拟输入(3)数字输入/输出Arduino开发平台介绍

Arduino开发板上需要关注的重点:3.USB接口。三个重要功能:(1)程序上传(2)程序调试(Debug)(3)临时供电Arduino开发平台介绍

Arduino开发板上需要关注的重点:4.可用内存。(1)Flash内存:用于写入和保存数据,ATmega328提供32KFlash内存,其中0.5K用于保存特殊程序Bootloader。(2)静态RAM:运行时临时储存数据。大小为2K。RAM中的数据掉电之后丢失。(3)EEPROM(电可擦可编程只读存储器):用来保存程序的额外数据,如数学公式的值,或者Arduino读取到的传感器读数。掉电之后,它储存的数据不会丢失。Arduino开发平台介绍

Arduino开发板上需要关注的重点:5.Arduino工作速度。所有的微控制器,包括Arduino,都使用一个系统时钟产生的脉冲来进行工作。大部分Arduino的工作速度为16MHz,也就是说每秒能处理1600万条指令。Arduino开发平台介绍1

Arduino开发基础操作2

开发实例(用Arduino控制一个舵机)3Arduino开发平台Arduino开发基础操作

2.1搭建开发环境2.1.1交叉编译:

就是在一个平台上生成另一个平台上可以执行的代码。开发人员在电脑上将程序写好,编译生成单片机执行的程序,就是一个交叉编译的过程。很多嵌入式系统需要从一台计算机上编程,将写好的程序下载到开发板中进行测试和实际运行。因此跨平台开发在嵌入式系统软件开发中很常见。因为单片机上不具备直接编程的环境,因此利用Arduino编程需要两台计算机:Arduino单片机和PC。

2.1搭建开发环境2.1.2在windows上安装IDE

给Arduino编程需要用到IDE(集成开发环境),这是一款免费的软件。在这款软件上编程需要使用Arduino的语言,这是一种解释型语言,写好的程序被称为sketch,编译通过后就可以下载到开发板中。在Arduino的官方网站上可以下载这款官方设计的软件及源码、教程和文档。Arduino开发基础操作Arduino开发基础操作

2.1搭建开发环境2.1.2在windows上安装IDE(注意USB驱动,JavaFramework,查看端口,选择主板类型)Arduino开发基础操作

2.1搭建开发环境2.1.2在windows上安装IDEArduino开发基础操作

2.2常用的Arduino第三方软件介绍2.2.1图形化编程软件ArduBlock

Arduino开发基础操作

2.2常用的Arduino第三方软件介绍2.2.2Arduino仿真软件VirtualbreadboardArduino开发基础操作

2.2常用的Arduino第三方软件介绍2.2.2Arduino仿真软件Virtualbreadboard

Virtualbreadboard是一款专门的Arduino仿真软件,简称VBB,中文名为“虚拟面包板”。这款软件主要通过单片机实现嵌入式软件的模拟和开发环境,它不但包括了所有Arduino的样例电路,可以实现对面包板电路的设计和布置,非常直观地显示出面包板电路,还可实现对程序的仿真调试。Arduino开发基础操作

2.2常用的Arduino第三方软件介绍2.2.2Arduino仿真软件Virtualbreadboard

VBB可以模拟Arduino连接各种电子模块,例如液晶屏、舵机、逻辑数字电路、各种传感器以及其他的输入/输出设备。这些部件都可以直接使用,也可以通过组合,设计出更复杂的电路和模块。使用VBB可以直观的了解电路设计,能够在设计出原型后快速实现。而且虚拟面板具有可视性和模拟交互效果,可以实时地在软件上看到LED、LCD等可视模块的变化,同时可以确保安全,因为不是实物操作不会引起触电或者烧毁芯片等问题。Arduino开发基础操作

2.3第一个程序2.3.1LED闪光灯编写第一个程序控制开发板上的LED灯闪烁,修改参数调整闪烁时间。(ArduinoIDE和blink)Arduino开发基础操作

2.3第一个程序2.3.1LED闪光灯程序解析

/*BlinkTurnsonanLEDonforonesecond,thenoffforonesecond,repeatedly.*/注释,并非程序的内容Arduino开发基础操作

2.3第一个程序2.3.1LED闪光灯程序解析

intLEDPin=13;//declarevariable声明变量Arduino开发基础操作

2.3第一个程序2.3.1LED闪光灯程序解析

//thesetupfunctionrunsoncewhenyoupressresetorpowertheboardvoidsetup(){//initializedigitalpin13asanoutput.pinMode(LEDPin,OUTPUT);}设置数字引脚13为输出,INPUT和OUTPUT是ArduinoIDE已经预先定义好的变量Arduino开发基础操作

2.3第一个程序2.3.1LED闪光灯程序解析

//theloopfunctionrunsoverandoveragainforevervoidloop(){digitalWrite(LEDPin,HIGH);//settheledondelay(1000)//waitforaseconddigitalWrite(LEDPin,LOW);//settheledoffdelay(1000);//waitforasecond}digitalWrite是内建函数,改变数字引脚输出状态是ON还是OFF,它需要两个参数。Delay是内建的延迟函数。Arduino开发平台介绍

2.3.3函数库和程序架构介绍

Arduino程序的架构大体可分为3个部分。(1)声明变量及接口的名称。(2)setup()。在Arduino程序运行时首先要调用setup()函数,用于初始化变量、设置针脚的输出/输入类型、配置串口、引入类库文件等等。每次Arduino上电或重启后,setup()函数只运行一次。(3)loop()。在setup()函数中初始化和定义变量,然后执行loop()函数。顾名思义,该函数在程序运行过程中不断地循环,根据反馈,相应地改变执行情况。通过该函数动态控制Arduino主控板。Arduino开发平台介绍1

Arduino开发基础操作2

开发实例(用Arduino控制一个舵机)3Arduino开发平台Arduino开发实例

3用Arduino控制一个舵机3.1舵机基本工作原理舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由单片机发出信号给舵机,与舵机内部的基准信号比较,获得电压差输出,驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到达定位,此过程中电机通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。舵适用于那些需要角度不断变化并可以保持的控制系统。Arduino开发实例

Arduino开发板上需要关注的重点:1.核心微控制器:ArduinoUno使用的是AtmelAVRATmega328P微控制器。Arduino开发实例

3.1舵机有很多规格,但所有的舵机都有外接三根线,分别用棕、红、橙三种颜色进行区分,由于舵机品牌不同,颜色也会有所差异,棕色为接地线,红色为电源正极线,橙色为信号线。Arduino开发实例

3.1舵机的转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的,由于舵机牌子不同,对于同一信号,不同牌子的舵机旋转的角度也会有所不同。Arduino开发实例

Arduino开发实例

这是Sketch源码:#include<Servo.h>Servoduoji;voidsetup(){duoji.attach(9);}Arduino开发实例

voidloop(){duoji.write(90);delay(2000);duoji.write(180);delay(2000);duoji.write(0);delay(2000);}Arduino开发实例

Sketch分析:这个Sketch精悍,它的工作原理如下:

#include<Servo.h>Sketch第一行指向Arduino的一个库文件,Servo库文件提供了专门用于操作舵机的指令集。库文件可以极大的简化编程任务。Arduino开发实例

Sketch分析:这个Sketch精悍,它的工作原理如下:

Servoduoji;使用Servo类创建一个对象duoji.编程语言中,类是指一个封装了数据的封包,包含了对这个数据进行处理的各种机制。(举例)Arduino开发实例

Sketch分析:这个Sketch精悍,它的工作原理如下:

voidsetup(){duoji.attach(9);}Attach是一个方法,可以被用于duoji对象。在这个例子中,attach告诉Arduino主板,将舵机连接到数字引脚9。Arduino开发实例

Sketch分析:voidloop(){duoji.write(90);delay(2000);duoji.write(180);delay(2000);duoji.write(0);delay(2000);}Write是另一个方法,指示舵机按照参数旋转。参数范围为0-180。第5章Arduino的扩展库本章内容:

Arduino扩展库创建自己的函数库

DHT11温湿度传感器自定义函数库dht的使用

5.1Arduino扩展库1、什么是Arduino扩展库

使用C++类将Arduino的某一类外设的复杂应用,尤其是将硬件底层的具体实现封装起来,对外提供标准的、统一的接口,使得用户对开发Arduino的应用变得十分容易。由现有的这样的一系列的C++类就组成了Arduino的扩展库。Arduino扩展库作用:

将硬件底层的应用封装起来;

针对具体应用编写相应的库;

Arduino扩展库EEPROM库SoftwareSerial库HardwareSerial库OneWire库Wire库SPI库Servo库Stepper库LiquidCrystal库数据存储数据通信舵机控制步进电机液晶显示XBee库无线通信TLC5940库PWM扩展Ethernet库以太网络图1Arduino类库结构示意图2、Arduino扩展库的使用

Arduino扩展库的使用分三步:(1)要确定Arduino开发环境目录下的libraries文

件夹包含要使用的库,如果是从网络上下载

的其它扩展库,也要复制到该目录下。(2)要了解扩展库的成员,一般在扩展库文件夹

下有个Example,可帮助我们理解类成员函

数的使用。(3)导入函数库。开发环境的菜单Sketch→imp-ortLibrary→选择具体的库。

5.2创建自己的Arduino库1、类的定义

C++类定义的形式如下,MorseCode为类名。classMorseCode{

private:

//定义私有数据成员和函数;

public:

//定义公有数据成员和函数;

protected:

//定义保护数据成员和函数;}

一般的,C++的类分两个部分,类的定义部分放在一个后缀名为“.h”的头文件中,类的实现部分放在一个后缀名为“.cpp”的文件中。

本例的类文件分别保存为Morse.h、MorseCode-.cpp。2、引入自定义函数库

在代码库(libraries)目录下,创建一个文件夹,名字为“Morse”,并将MorseCode.h、MorseCode.cpp两个文件拷贝到“Morse”文件夹下。

启动ArduinoIDE,打开Sketch→ImportLibrary菜单,此时应能看到Morse菜单项。3、使用自定义函数库

目前Arduino的IDE无法自动识别自定义函数库里的内容,所以需要给Arduino一点帮助:在Morse的文件夹里,创建一个叫keywords.txt文件。Morse KEYWORD1Dash KEYWORD2dot KEYWORD2ET

LITERAL1OT

LITERAL1

注意:类名的类型是KEYWORD1,公共函数的类型是KEYWORD2,常量的类型是LITERAL1。4、对象的创建及成员函数的调用

对象的创建就象变量定义一样简单。

#include<Morse.h>MorseCodemorse;

morse.dot();

6.3DTH11温湿度传感器1、产品概述

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC

测温元件,并与一个高性能8位单片机相连接。如图2所示。图2DTH11温湿度传感器实物图2、应用范围

暖通空调、除湿器、测试及检测设备、消费品、汽车、自动控制、数据记录器、气象站、家电、湿度调节器、医疗、其他相关湿度检测控制。3、产品参数

(1)相对湿度

分辨率:0.1%RH16Bit

重复性:±1%RH

精度:25℃±2%RH

响应时间:25℃6s

(2)温度分辨率:0.1%RH16Bit重复性:±0.2℃量程范围:25℃±0.2℃

-40~80℃±1℃响应时间:1/e(63%)10S

(3)电气特性供电:DC3.5-5.5V供电电流:测量0.3mA待机60μA采样周期:大于2秒/次

(4)引脚说明

VDD供电3.5-5.5VDC

DATA串行数据,单总线

GND接地,电源负极

NC空脚4、串行通信

DHT11器件采用简化的单总线通信。单总线即只有一根数据线,系统中的数据交换、控制均由单总线完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线;单总线通常要求外接一个约5.1kΩ的上拉电阻,这样,当总线闲置时,其状态为高电平。◎采用单总线传输的数据格式,一次传送40位数据

,高位先出。

8bit湿度整数数据+8bit湿度小数数据+

8bit温度整数数据+8bit温度小数数据+

8bit校验位

◎校验位数据定义为前四部分之和的后8位。

示例一:接收到的40位数据为:0011010100000000000110000000000001001101

湿度高8位湿度低8位温度高8位温度低8位校验位

00110101+00000000+00011000+00000000=01001101

接收数据正确:湿度:00110101=35H=53%RH温度:00011000=18H=24℃实践操作:参考图3所示电路原理图,测量当前环境下的温度和湿度。注意DHT11外接电源和地取自Arduino的5V电源和Gnd,数据线外接一个5K的上拉电阻,并将数据线连接在Arduino数字端口的4号上。图3DTH11测量温湿度电路连接示意图系统运行结果如图4所示。图4DTH11测量温湿度结果参考代码:#include<dht.h>

dhtDHT;

#defineDHT11_PIN5

voidsetup(){Serial.begin(9600);Serial.println("DHTTESTPROGRAM");Serial.print("LIBRARYVERSION:");

Serial.println(DHT_LIB_VERSION);Serial.println();Serial.println("Type,\tstatus,\tHumidity(%),\tTemperature(C)");

pinMode(DHT11_PIN,INPUT);}voidloop(){

Serial.print("DHT11,\t"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论