




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、arduino入门很简单(上)1.1 Arduino的起源Arduino开始于2005年伊夫雷亚交互设计院(Interaction Design Institute Ivrea)的一个学生项目。现在,Arduino是一个开源项目,它的所有设计资料都可以在它的官网免费得到。Arduino官方开发板在30美元左右,而相关的“克隆”版本已经低至9美元。1.2 术语Arduino的含义1.2.1 Arduino的硬件1.2.2 Arduino的软件1.2.3 Arduino的社区1.2.1 Arduino的硬件Arduino的硬件开发板有许多种型号。它是一个单片机集成电路,它的核心就是一个单片机,开发
2、板上的其他电路用来供电和转换信号。官方Arduino使用的是megaAVR系列的芯片,特别是ATmega8、ATmega168、ATmega328、ATmega1280以及ATmega2560,还有一小部分使用的是Arduino兼容的处理器。1.2.2 Arduino的软件Arduino IDE是专门为Arduino开发板量身定做的集成开发环境。1.2.3 Arduino的社区Arduino为用户提供了Arduino社区。它的网址是http:/forum.arduino.cc/。1.3 Arduino的硬件产品主板1.3.1 Arduino UNO1.3.2 Arduino Leonardo1
3、.3.3 Arduino Due1.3.4 Arduino Yn1.3.5 Arduino Tre1.3.6 Arduino Micro1.3.7 Arduino Robot1.3.8 Arduino Esplora1.3 Arduino的硬件产品主板1.3.9 Arduino Mega系列1.3.10 Arduino Ethernet1.3.11 Arduino Mini1.3.12 LiLyPad Arduino系列1.3.13 Arduino Nano1.3.14 Arduino Pro系列1.3.15 Arduino Fio1.3.16 Arduino Zero1.3.1 Arduin
4、o UNOArduino Uno开发板基于ATmega328。1.3.2 Arduino LeonardoArduino Leonardo是基于ATmega32U4的微控制器。1.3.3 Arduino DueArduino Due是一个基于Atmel SAM3X8E ARM Cortex-M3 CPU的微控制器。它是第一个基于32位ARM核心微控制器的Arduino板。1.3.4 Arduino YnArduino Yn是一个基于ATmega32U4和Atheros AR9331的微控制器版。1.3.5 Arduino TreArduino Tre是第一个在美国制造的Arduino板。它使用
5、的是1GHz的Sitara AM335x处理器。1.3.6 Arduino MicroArduino Micro是一个基于ATmega32U4的微控制器板,它是与Adafruit联合开发的。1.3.7 Arduino RobotArduino Robot是官方推出的第一个原型板子。1.3.8 Arduino EsploraArduino Esplora是源自Arduino Leonardo的微控制器板。1.3.9 Arduino Mega系列1.Arduino Mega2.Arduino Mega 25603.Arduino Mega ADK1.Arduino MegaArduino Mega
6、是基于ATmega1280的微控制器板。2.Arduino Mega 2560Arduino Mega 2560是为替代Arduino Mega而设计的。3.Arduino Mega ADKArduion Mega ADK在Mega 2560的基础上增加了一个USB接口。1.3.10 Arduino EthernetArduino Ethernet是基于ATmega328的微控制器板。1.3.11 Arduino MiniArduino Min最初是基于ATmega168的微控制器板,现在已经改用ATmega328。1.3.12 LiLyPad Arduino系列1.LiLyPad Ardui
7、no2.LilyPad Arduino Simple3.LilyPad Arduino SimpleSnap4.LilyPad Arduino USB1.LiLyPad ArduinoLiLyPad Arduino是为可穿戴和电子织物而设计的。2.LilyPad Arduino SimpleLilyPad Arduino Simple相对LiLyPad Arduino来说只有9个数字输入输出针脚(其中5个拥有PWM输出能力。3.LilyPad Arduino SimpleSnapLilyPad Arduino SimpleSnap大部分与LilyPad Arduino Simple类似。4.L
8、ilyPad Arduino USBLilyPad Arduino USB是基于ATmega32u4的微控制器板。1.3.13 Arduino NanoArduino Nano是一个小巧、完整、面包板友好的基于ATmega328(第3版)或ATmega168(第2版)的微控制器板。1.3.14 Arduino Pro系列1.Arduino Pro2.Arduino Pro Mini1.Arduino ProArduino Pro是基于ATmega168或ATmega328的微控制器板。2.Arduino Pro Mini它是Arduino Pro的迷你版本。1.3.15 Arduino Fio
9、Arduino Fio是基于Atmega328P的微控制器板,运行在3.3V/8MHz下。1.3.16 Arduino ZeroArduino Zero是由Arduino UNO衍生而来的32位扩展版本。1.4 Arduino的硬件产品盾板1.4.1 Arduino GSM盾板1.4.2 Arduino Ethernet盾板1.4.3 Arduino WiFi盾板1.4.4 Arduino Wireless SD盾板1.4.5 Arduino Motor盾板1.4.6 Arduino Wireless Proto盾板1.4.7 Arduino Proto盾板1.4.1 Arduino GSM盾
10、板Arduino GSM盾板可以使你的Arduino使用GPRS无线网络连接到因特网。1.4.2 Arduino Ethernet盾板通过Arduino Ethernet盾板可以连接到因特网。1.4.3 Arduino WiFi盾板Arduino WiFi可以让Arduino板通过WiFi连接到因特网。1.4.4 Arduino Wireless SD盾板Arduino Wireless SD盾板允许Arduino板使用无线模块进行无线通讯,它基于的是Xbee模块。1.4.5 Arduino Motor盾板Arduino Motor盾板基于L298,它是设计用来驱动像继电器、螺线管、直流电机和
11、步进电机这样的感性负载。1.4.6 Arduino Wireless Proto盾板Arduino Wireless Proto盾板与Arduino Wireless SD盾板非常类似。1.4.7 Arduino Proto盾板Arduino Proto盾板就是一块完全的原型板。1.5 Arduino硬件产品新手套件新手套件是为欠缺经验的Arduino爱好者准备的,它将通过让你亲手实践的方式来学会Arduino板的基本使用。1.6 Arduino硬件产品附件1.6.1 TFT LCD屏幕1.6.2 微型USB/Serial适配器1.6.1 TFT LCD屏幕LCD屏幕在Arduino做的项目中
12、一直占有很大的比重,因此,官方提供了这个附件。在这个LCD屏幕上,你可以使用官方提供的TFT库来绘制文字、图片以及图像。1.6.2 微型USB/Serial适配器Arduino官方提供了USB/Serial适配器来简少为这类Arduino板编程的麻烦。1.7 Arduino UNO1.7.1 Arduino UNO上的主要元器件1.7.2 Arduino UNO上的端口1.7.1 Arduino UNO上的主要元器件1.7.2 Arduino UNO上的端口Arduino UNO共有两排两排端口,按功能主要分为数字I/O、模拟I/O口和电源接口。1.数字I/O口数字I/O口可以输入和输出数字信
13、号。数字信号只有两种形态,高电平和低电平。2.模拟I/O口模拟I/O口可以输入模拟信号和数字信号,但是不能输出模拟信号。它可以测量连接在它上面的电压以供程序使用。3.电源接口电源端口部分有多个不同名字的接口:IOREFRESET3.3V和5V两个GNDVin1.8 Arduino可以做什么前面的内容事无巨细地介绍了Arduino的方方面面,就差告诉读者它到底能做什么了。概括地来说,它可以通过传感器和致动器来让你控制物理世界。第2章 电路设计软件Fritzing2.1 Fritzing基础2.2 Fritzing的元件库2.3 编辑元件2.4 画出手电筒的电路图2.1 Fritzing基础2.1
14、.1 Fritzing的下载与安装2.1.2 认识Fritzing的主面板2.1.1 Fritzing的下载与安装1.下载对应的FritzingFritzing的官方网址是,下载页面地址是/download/。2.安装Fritzing2.1.2 认识Fritzing的主面板1.菜单栏2.主工作区3.元件栏4.指示栏5.快捷操作栏6.提示信息栏2.2 Fritzing的元件库2.2.1 元件的组织形式2.2.2 导入元件库2.2.3 导出元件库2.2.1 元件的组织形式Fritzing并不是将所有的元件都无规律地放在一起的,而是以各种规则组织为不同的库。Fritzing最主要的是CORE库和MI
15、NE库。Fritzing中的库可以通过元件栏中的标签选择。2.2.2 导入元件库得益于开源和开放的优势,Fritzing的元件增加和更新的速度还是比迅速的。而Fritzing每个版本又不可能包含所有的元件,并且包含太多元器件也会造成软件相应缓慢。那么,在后期势必需要有方法来更新或者添加元件,Fritzing提供了导入功能来实现。1.下载元件库/p/fritzing/issues/detail?id=2753;/p/fritzing/issues/detail?id=875。2.导入元件库2.2.3 导出元件库导出元件库是与导入元件库对应的。你在互联网下载到的库文件是别人导出的元件库,而你自己制
16、作的库(制作方法见2.3)也可以导出后分析给他人,如图2.19所示为一些自制的元件。2.3 编辑元件2.3.1 Fritzing的元件编辑器2.3.2 制作元件的面包板视图2.3.3 制作元件的原理图视图2.3.4 制作元件的PCB视图2.3.5 元件编辑器的图标和元数据视图2.3.6 关联所有视图的针脚2.3.1 Fritzing的元件编辑器在当前版本中(0.8.7),Fritzing规定了不可以从头开始制作一个元件,所以要打开元件编辑器需要以一个元件为基础。下面以按钮为基础来总体介绍一下Fritzing的元件编辑器。2.3.2 制作元件的面包板视图“面板板”视图可能是Fritzing用户使
17、用的最多的一个视图。1.选择一个类似的元件2.编辑SVG文件3.导入SVG文件2.3.3 制作元件的原理图视图2.3.4 制作元件的PCB视图推荐的做法是使用Fritzing中设计的的PCB然后使用SVG编辑器进行微调,因为这样可以避免去查阅PCB相关的规范。2.3.5 元件编辑器的图标和元数据视图元件编辑器的图标视图和元数据视图并不需要其他的辅助工具,而且他们也非常容易理解和实现。1.图标视图图标视图用来编辑元件在元件选择器中显示的图标,通常情况下它是与面包板视图相同的,而且在元件编辑器中也提供了对应的选项。2.元数据视图元数据视图用来编辑元件的元数据如标题、日期、作者等信息。2.3.6 关
18、联所有视图的针脚做好面包板、原理图和PCB视图只是完成了整个制作过程的一部分,现在的元件还不能正常使用,因为Fritzing并不知道你的元件哪里可以进行连接,即使针脚就明显地摆在那里。这就需要各种视图与Fritzing之间做一些关联。2.4 画出手电筒的电路图1.选择元件2.连接电路第3章 Arduino IDE安装与使用3.1 Arduino IDE安装3.2 Windows7下的Arduino驱动安装3.3 在Arduino上运行程序3.4 Arduino IDE编码流程3.5 高级的Arduino IDEMariaMole3.1 Arduino IDE安装3.1.1 Arduino ID
19、E安装包下载3.1.2 使用二进制安装包安装Arduino IDE3.1.3 使用压缩包形式安装Arduino IDE3.1.4 Arduino IDE中文化3.1.1 Arduino IDE安装包下载Arduino IDE的安装包可以从Arduino官网很方便地下载,其下载链接为:http:/arduino.cc/en/Main/Software。3.1.2 使用二进制安装包安装Arduino IDEArduino IDE的二进制安装包应该是以“.exe”为后缀的文件。3.1.3 使用压缩包形式安装Arduino IDEArduino IDE的安装的压缩包应该是以“.zip”为后缀的文件。3
20、.1.4 Arduino IDE中文化默认的Arduino IDE语言是英语。如果读者想要使用简体中文或者其他语言,可以在Arduino IDE的“File”菜单项目中的“Preferences”中修改。3.2 Windows7下的Arduino驱动安装3.2.1 自动安装Arduino驱动3.2.2 手动安装Arduino驱动3.2.1 自动安装Arduino驱动在Windows 7操作系统下可以在设备管理器中右键单击对应的设备来为其安装驱动。3.2.2 手动安装Arduino驱动手动安装需要准备Arduino的驱动。在Arduino IDE的安装包中就提供了驱动文件,相关文件就放在driv
21、ers目录下。3.3 在Arduino上运行程序3.3.1 Arduino IDE主界面简介3.3.2 运行一个闪烁LED示例程序3.3.3 运行一个控制台输出示例程序3.3.1 Arduino IDE主界面简介3.3.2 运行一个闪烁LED示例程序这个示例程序可以通过依次选择“文件”-“示例”-“01.Basics”-“Blink”命令打开。3.3.3 运行一个控制台输出示例程序在有些情况下Arduino版子要与主机做一些交互。例如,输出调试信息等。这些信息可以通过串口来传输到主机,在主机中通过串口软件就可以读取到Arduino开发板发出的信息。Arduino IDE提供了一个简易的串口监视
22、器。3.4 Arduino IDE编码流程3.4.1 创建、保存和打开源文件3.4.2 编辑源文件3.4.3 校验源文件3.4.4 下载程序到开发板3.4.1 创建、保存和打开源文件新建源文件可以通过菜单栏中的“文件”-“新建”命令、快捷按钮或快捷键Ctrl+N完成。存储文件可以通过菜单栏中的“文件”-“保存”、快捷按钮或快捷键Ctrl+S保存,Arduino IDE程序会将文件默认保存为以“.ino”为后缀的文件。如果需要修改以前编写的源代码,可以通过菜单栏中的“文件”-“打开”命令、快捷按钮或快捷键Ctrl+O完成。3.4.2 编辑源文件在Arduino IDE中做的大部分工作就是编辑源文
23、件。编辑源文件时只需要将期望的代码写入编辑区域即可。3.4.3 校验源文件校验源文件就是通过编译源代码来检查代码中是否有错误。校验可以通过菜单栏中的“程序”-“校验/编译”命令、快捷按钮或快捷键Ctrl+R完成。3.4.4 下载程序到开发板下载的作用就是将编译好的二进制程序文件传输到Arduino开发板中。可以通过菜单栏中的“文件”-“下载”命令、快捷按钮和快捷键Ctrl+U完成。3.5 高级的Arduino IDEMariaMoleMariaMole可以从其官网免费下载到,其网址为:。第4章 Arduino编程语言基础4.1 Arduino程序必要的setup()和loop()4.2 程序中
24、的值4.3 运算符4.4 语法进阶4.5 控制结构4.6 函数4.7 C+语言的类和对象4.8 库4.1 Arduino程序必要的setup()和loop()如下是一段可以正确被下载到Arduino开发板并运行的程序:void setup() void loop() setup()函数中的代码只会被运行一次,通常用来做一些初始化工作;loop()中的代码会被无限次地重复运行,程序的主体部分会写在这里。4.2 程序中的值4.2.1 变量和常量4.2.2 变量类型4.2.3 变量的作用域和修饰符4.2.4 获取变量大小的工具sizeof()4.2.5 变量类型转换4.2.1 变量和常量常量非常容易
25、理解,它是一个字面量,它只可以表示一个特定的量。常量名说明false逻辑假true逻辑真HIGH高电平LOW低电平INPUT输入模式INPUT_PULLUP输入模式(激活上拉电阻)OUTPUT输出模式4.2.2 变量类型类型存储空间占用(字节)取值范围byte10255int2-3276832767unsigned int2065535word2065535long4-2147483648 2147483647unsigned long404294967295short2-3276832767boolean1取值为false和truechar1-128127unsigned char10255
26、float43.4028235E+383.4028235E+38double43.4028235E+383.4028235E+38string-根据具体情况确定String-根据具体情况确定array-根据具体情况确定void0只是一个标识符,不占用存储空间4.2.3 变量的作用域和修饰符变量的作用域是用来限制其可以被使用的范围,而变量的修饰符用来改变变量的一些特性。1.变量的作用域2.变量的修饰符1.变量的作用域作用域即作用范围,Arduino语言中的变量是有确定的作用范围的。变量的作用域是被限制在语句块中的。在变量作用域之外的位置无法访问到该变量。2.变量的修饰符在Arduino语言中,有
27、static、volatile和const三个变量修饰符。static和const的作用是修改变量的存储位置以适应不同的需求:4.2.4 获取变量大小的工具sizeof()通过sizeof()来获取指定变量的大小。4.2.5 变量类型转换Arduino语言提供了一些函数可以将指定的值转换为特定的类型。函数作用char()将指定值转换为char类型byte()将指定值转换为byte类型int()将指定值转换为int类型word()将指定值转换为word类型long()将指定值转换为long类型float()将指定值转换为float类型4.3 运算符4.3.1 数学运算符4.3.2 比较运算符4.
28、3.3 布尔运算符4.3.4 指针运算符4.3.5 位运算符4.3.6 复合运算符4.3.1 数学运算符数学运算符包括四则运算符以及取模运算符。运算符名称作用+加法对操作数执行加法运算-减法对操作数执行减法运算*乘法对操作数执行乘法运算/除法对操作数执行除法运算%求余对操作数进行取模运算=赋值将右操作数中的值赋给左操作数4.3.2 比较运算符比较运算符的结果是boolean类型的true或false。运算符名称作用大于判断左操作数是否大于右操作数=大于等于判断左操作数是否大于或者等于右操作数=小于等于判断左操作数是否小于或者等于右操作数!=不等于判断左操作数是否不等于右操作数4.3.3 布尔运
29、算符布尔运算符用来对两个布尔表达式进行运算,运算的结果仍然为布尔值。运算符名称作用&逻辑与对两个操作数进行逻辑与运算|逻辑或对两个操作数进行逻辑或运算!逻辑非对两个操作数进行逻辑非运算4.3.4 指针运算符指针运算符包括&(引用)和*(间接引用)。&运算符用来引用变量或者函数的地址,*则是通过地址间接地引用指定地址中的内容。4.3.5 位运算符位运算符用来按位操作数据。运算符名称作用&按位与按位进行逻辑与操作|按位或按位进行逻辑或操作按位异或按位进行异或操作按位非按位进行逻辑非操作按位右移按位进行右移操作4.3.6 复合运算符复合操作运算符是部分数学运算符、位运算符与赋值运算的一种简写形式。运
30、算符名称说明+递增对操作数进行加1运算-递减对操作数进行减1运算+=加等将左右操作数之和赋值给左操作数-=减等将左右操作数之差赋值给左操作数*=乘等将左右操作数之积赋值给左操作数/=除等将左右操作数之商赋值给左操作数&=与等将左右操作数按位与的结果赋值给左操作数|=或等将左右操作数按位或的结果赋值给左操作数4.4 语法进阶4.4.1 预定义命令#define和#include4.4.2 语句和语句块4.4.3 注释4.4.1 预定义命令#define和#include预处理的语句是在编译器的预处理步骤进行处理。预处理命令#define用来定义一个常量,它的语法形式如下:#define cons
31、tantName value4.4.2 语句和语句块1.语句2.语句块1.语句Arduino将分号(;)视为一条语句的结束符号:2.语句块两个花括号之间的语句称为语句块,它有两个作用:将多条语句作为一个整体和形成一个作用域。同时,语句块又是一个独立的作用域,因此其中定义的变量a无法在语句块之外使用。4.4.3 注释注释用来对代码所实现的功能做一些描述,当然也可以用来做一些相关说明。Arduino语言提供了两种注释方法。“/*/”为多行注释,在“/*”和“*/”之间的内容就是注释内容:4.5 控制结构4.5.1 条件判断语句if和ifelse4.5.2 跳转语句break、continue、re
32、turn和goto4.5.3 分支语句switch case4.5.4 循环语句while和dowhile4.5.5 循环语句for4.5.1 条件判断语句if和ifelseif和ifelse可以根据不同的条件来执行不同的语句。if(条件)语句1后续语句if(条件)语句1else语句2后续语句4.5.2 跳转语句break、continue、return和gotobreak用于跳出switch、while、dowhile和for结构;continue用于在while、dowhile和for循环结构中结束当前循环;return用于立即结束当前程序执行;goto用于将程序执行流程跳转到指定位置后继
33、续执行。4.5.3 分支语句switch caseswitchcase结构可以根据变量不同的值而执行不同的语句:switch(var)case value1:语句1break;case value2:语句2break;case value3:语句3break;.default:语句break;后续语句4.5.4 循环语句while和dowhile通过while结构就可以使计算机重复地执行一些语句,直到所要求的条件不满足为止,其语法结构如下:while(条件)语句后续语句dowhile结构与while结构的执行过程类似,但dowhile结构会保证其中的“语句”会执行一次:do语句while(条件
34、)后续语句4.5.5 循环语句forfor结构用来在满足指定条件的情况下循环执行语句,其语法结构如下:for(语句1;语句2;语句3)语句后续语句4.6 函数4.6.1 系统函数4.6.2 调用函数4.6.3 自定义函数4.6.1 系统函数系统函数是Arduino语言默认提供的函数,这些函数可以直接拿来使用而不需要定义。系统函数类型作用数字I/O设置针脚属性和进行I/O操作模拟I/O设置针脚属性和进行I/O操作高级I/O操作波形和比特数据等时间输出时间和暂停程序等数学数学操作函数,如求绝对值等三角进行sin、cos和tan运算随机数产生随机数位和比特操作位和比特的函数外部中断响应或者关闭外部中
35、断内部中断响应或者关闭内部中断通信主机与Arduino设备之间进行通信USB(只有Leonardo和Due具备)使用USB键盘和鼠标4.6.2 调用函数调用函数就是要使用函数的功能,可以使用如下语法进行调用:funcname(arg1,arg2)4.6.3 自定义函数定义函数的语法如下:typeSpecifier functionName(argList)语句4.7 C+语言的类和对象4.7.1 类4.7.2 对象4.7.1 类类是C+语言中的一种类型,即类类型。它也常被称为抽象数据类型。抽象数据类型将数据(即常听说的成员变量)和作用于数据的操作(即常听说的成员函数)视为一个单元。4.7.2 对象对象是类的一个实例,对象可以以如下的任意一种方式定义:将类的名字直接用作类型名;使用关键字class或struct。Stepper stepper1;class Stepper stepper1;4.8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互联网企业数据隐私保护协议(GDPRCCPA合规)
- 建设工程项目全程法律服务合同
- 机电安全培训体系构建
- 宠物用品品牌特许经营与专业物流配送服务合同
- 人工智能企业核心团队股权绑定与技术创新协议
- 国际学生行李保险与全球托运质量监控合同
- 咯血与便血护理学
- 脊椎治疗原则
- 动脉神经损伤护理
- 护理创新实践感悟与思考
- 2024年延安通和电业有限责任公司招聘笔试真题
- 液压油供应合同协议
- 2025-2030煤油产业规划专项研究报告
- 香港劳务服务合同协议
- 园林喷洒器企业数字化转型与智慧升级战略研究报告
- GB/T 9065.2-2025液压传动连接软管接头第2部分:24°锥形
- 道路运输汛期教育培训
- 患者投诉处理与护理试题及答案
- 期中考试考后分析总结主题班会《全员出动寻找消失的分数》
- 房地产市场报告 -2025年第一季度青岛写字楼和零售物业市场概况报告
- 2025轨道车司机(技师)重点考试题库及答案(浓缩300题)
评论
0/150
提交评论