完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
欢迎来到Arduino的世界,本文主要介绍Arduino是什么,为什么Arduino广受欢迎,如何选择一款适合自己的Arduino控制器、Arduino开发工具、Arduino的数据类型、变量和常量,结合Arduino常用的基本函数,就可以制作各种小作品。想要了解更多信息,请进入Arduino官网。1 什么是Arduino Arduino是一个能够用来感应和控制现实物理世界的一套工具。它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发软件组成。它的硬件包含一个以 Atmel AVR 单片机为核心的开发板和其他各种 I/O 板;软件包括一个标准编程语言开发环境和在开发板上运行的烧录程序。Arduino 主要是为业余爱好者的使用而设计的,被设计成一个小型计算机的形式,可以作为嵌入式计算机平台,所以说它是一个交互系统,可以通过硬件和软件与它的环境进行互动。例如,它可以读取大量的开关和传感器信号,可以检测到光线的有无和强弱、可以检测到手指按下按键、甚至可以检测到微信上的新消息;并将这些感受到的“信号”转换为动作 比如电机动一下、LED 灯的打开或关闭、在互联网上发布一条信息等;Arduino也可以开发出与 PC 相连的周边装置,能在运行时与 PC 上的软件进行通信。 Arduino 本质上就是一块单片机,但它抛开了传统硬件开发的复杂操作,不需要了解硬件的内部结构和寄存器设置(如果是单片机开发,是需要了解寄存器并且设置各个寄存器),也不需要过多的电子知识和编程知识,开发者只需要通过简单学习,了解各个引脚和函数的作用,便可利用它开发出各种出色的项目。 2 为什么选择Arduino作为开发平台 目前市场上还有许多其他的单片机和单片机平台,例如51单片机、STM32单片机等。但他们对于普通开发者来说门槛相对较高,需要有一定编程和硬件相关基础,内部寄存器较为繁杂,主流开发环境Keil配置相对麻烦,特别是对于STM32的开发,即使使用官方库也少不了环境配置,还有就是开发环境是收费的。 Arduino 不但简化了使用单片机工作的流程,同时还为教师、学生以及兴趣爱好者提供了一些其他系统不具备的优势: 1、性价比高 相比于其他单片机平台而言,Arduino生态的各种开发板性价比相对较高,也可以自己动手制作开发板。 2、跨平台 Arduino IDE可以在 Windows、Mac OS X和 Linux 三大主流操作系统上运行,而其他的大多数控制器只能在 Windows 上开发。 3.简单清晰的开发 Arduino IDE基于Processing IDE开发,这对于初学者来说极易掌握,同时对于高级用户来说又有着足够的灵活性。Arduino语言是基于 Wiring 语言开发的,是对AVR-GCC库的二次封装,并不需要太多的单片机基础和编程基础,只要简单地学习后就可以快速地进行开发。 4.开放性 Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内可以任意修改原始设计及相应代码。 5.社区与第三方支持 Arduino有着众多的开发者和用户,因此可以找到他们提供的众多开源的示例代码和硬件设计。例如,可以在Github.com、Arduino.cc、 Openjumper.com、Arduino中文社区等网站上找到 Arduino 的第三方硬件、外设和类库等支持,以便更快、更简单地扩展自己的Arduino项目。 6.硬件开发趋势 Arduino 不仅仅是全球最流行的开源硬件,也是一个优秀的硬件开发平台,更是硬件开发的趋势。Arduino简单的开发方式使得开发者更关注于创意与实现,可以更快地完成自己的项目开发,大大节约学习的成本,缩短开发的周期。 鉴于 Arduino 的种种优势,越来越多的专业硬件开发者已经或开始使用 Arduino 来开发项目和产品;越来越多的软件开发者使用 Arduino 进入硬件、物联网等开发领域。 3 Arduino硬件 3.1 Arduino开发板的类型 根据使用的不同微控制器,可提供各种 Arduino 板。然而,所有 Arduino 板都有一个共同点:它们通过 Arduino lDE 编程。 差异基于输入和输出的数量(可以在单个板上使用的传感器,LED和按钮的数量),速度,工作电压,外形尺寸等。一些板被设计为嵌入式,并且没有编程接口(硬件),因此你需要单独购买。有些可以直接从3.7V电池运行,其他至少需要5V。 以下是可用的不同Arduino板的列表。 表1.1 基于ATMEGA328微控制器的Arduino开发板 [tr]板名称工作电压时钟速度数字i/o模拟输入PWMUART编程接口[/tr]
3.2 不同开发板的对比 在使用 Arduino 控制器完成项目制作之前,应该对各个型号有一定的了解,以便选择适合自己项目的控制器。 1、Arduino UNO Arduino UNO 是目前使用最广泛的 Arduino 控制器,具有 Arduino 的所有功能,是初学者的最佳选择。在大部分参考书或者开源代码,都以 UNO 为例子。当然,掌握UNO开发技巧,其他型号控制器也是类似的,可以很轻松地移植代码。 2、Arduino MEGA Arduino Mega 是一个增强型的Arduino 控制器,相对于UNO,它提供了更大的存储空间和更多的输入/输出接口,可以控制更多的设备,是完成较大型项目的较好选择。 3、Arduino Leonardo Arduino Leonardo 使用集成了 USB 功能的 AVR 单片机作为主控芯片,具备其他型号 Arduino 控制器的所有功能之外还可以轻松模拟USB键盘/鼠标等USB设备。 4、Arduino Due Arduino Due 突破性使用了32位的 ARM Cortex-M3 作为主控芯片。它集成了多种外设,有着其他Arduino板无法比拟的性能,是目前最为强大的 Arduino 控制器。 5、小型化的Arduino 常见小型 Arduino 控制器有 Arduino Nano,Arduino Mini,Arduino Micro,Arduino LilyPad 等。这些小型控制器虽然在设计上精简了许多地方,但使用起来一样方便。其中 Arduino Mini 和 Arduino Lilypad 需要外部模块配合来完成程序下载功能。 4 Arduino软件 4.1 IDE Arduino提供了Arduino Software IDE,一套以 Java 编写的跨平台应用软件。Arduino Software IDE 源自于 Processing 编程语言以及 Wiring 计划的集成开发环境。它是被设计于介绍程序编写给艺术家和不熟悉程序设计的人们,且包含了一个拥有语法高亮、括号匹配、自动缩进和一键编译并将可执行文件烧写入Arduino 硬件中的编辑器。 Arduino Software IDE 使用与C语言和C++相仿的编程语言,并且提供了包含常见的输入/输出函数的Wiring 软件库。在使用 GNU toolchain 编译和链接后,Arduino Software IDE 提供了一个程序“avrdude”用来转换可执行档成为能够烧写入Arduino硬件的固件。 4.2 Sketch 使用 Arduino Software IDE 编写的程序被称为“sketch”(草图)。一个典型的 Arduino C/C++ sketch 程序会包含两个函数,它们会在编译后合成为 main() 函数:
#define led 2 //定义数字IO 2的名字为led void setup() //初始化部分 { pinMode(led,OUTPUT); //定义led引脚为输出模式 } void loop() //主循环 { digitalWrite(led,LOW); //led引脚输出低电平,点亮led delay(1000); //延时1000ms digitalWrite(led,HIGH); //led引脚输出高电平,熄灭led delay(1000); //延时1s } Arduino 程序可由五个部分组成 : (1) 导入库与定义 (可有可无) #include const float PI = 3.14159; int r = 0 ; (3)初始化函数setup() (必要) void setup() {} (4)循环函数loop() (必要) void loop() {} (5)自定义函数 (可有可无) float area(float r) { float a = PI*r*r; return a; } 其中 setup() 与 loop() 是一定要有的函数 (均无参数无传回值),其他则视需要而定。Arduino 语言采用 C/C++ 语法,加上以 Wiring 为基础的电子设计核心库组合而成,包括 Digital I/O,Analog I/O 等库.。内置的库可直接调用,但若有使用第三方库(例如驱动感测器模块所需的库),则必须使用 include 前置指令引入。此外,也可以用前置指令 define 定义一个常量或宏 (表达式)。 前置指令乃 C 编译器指令, 不属于 C 语言本身, 其用途有三 :
宏的功能事实上与函数类似,不同之处是函数调用使用堆栈,而宏则是直接放在源代码中,由编译器自动进行替换,运行效率较快 (但若很多地方都要用到时, 编译后就会比较大)。 注意: 头文件可用角括号 < > 或双引号 " ", 差别是:
5.1 数据类型 Arduino 家族中的8位开发板和32位开发板的基本数据类型是有差别。对于8位开发板来说,int 占2字节,double 和 float 占4字节。而对于32位开发板,int 占用4字节,double 占用8字节。下表提供了你将在Arduino编程期间使用的所有数据类型。 表1.5 Arduino基本数据类型 [tr]数据类型占用字节数值范围说明[/tr]
1、变量范围 Arduino 使用的C语言中的变量具有名为scope(范围)的属性。scope是程序的一个区域,有三个地方可以声明变量。它们是:
在函数或代码块中声明的变量是局部变量。它们只能由该函数或代码块中的语句使用。局部变量不能在它们自己之外运行。以下是使用局部变量的示例: void setup() {} void loop() { int i = 0; } (2)全局变量 全局变量在所有函数之外定义,通常位于程序的顶部。全局变量将在程序的整个生命周期中保持其真值。全局变量可以被任何函数访问。也就是说,一个全局变量可以在整个程序中声明后使用。 以下示例使用全局变量和局部变量: 注意:全局变量、静态变量、常量应使用大写字母来命名name,防止混淆且有警示作用。 uint16_t NUMBER = 0; void setup() {} void loop() { int i = 0; } 5.3 运算符 运算符是一个符号,它告诉编译器执行特定的数学或逻辑函数。C语言具有丰富的内置运算符,并提供以下类型的运算符:
(1)选择结构又称选取结构或分支结构。在编程中,经常需要根据当前数据做出判断,以决定下一步的操作。 表1.6 Arduino常用控制语句 [tr]序号控制语句和描述[/tr]
表1.7 Arduino常用循环结构 [tr]序号循环及描述[/tr]
1、什么是单片机?它与个人计算机有什么不同? Ans:一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU(进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它外设电路如==模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)==等。 2、 为什么用单片机,如Arduino、STm32,MCS-51等. Ans:实际工作中并不是任何涉及计算和控制的场合都要求处理器或计算机有很高的性能,其应用的关键在于使用性能(是否够用)和经济性(是否有很好的性能价格比)。 参考
|
|||||||
|
|||||||
只有小组成员才能发言,加入小组>>
2561 浏览 0 评论
1158浏览 2评论
761浏览 1评论
514浏览 0评论
271浏览 0评论
447浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 10:20 , Processed in 1.659520 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号