文档库 最新最全的文档下载
当前位置:文档库 › Arduino 基础知识

Arduino 基础知识

Arduino 基础知识
Arduino 基础知识

Arduino 是一款价格不高、易于使用的电子平台。包括硬件和软件在内的整个平台是完全开源的,并且使用的是松散地基于C/C++ 的语言。Arduino 是为希望尝试创建交互式物理对象的实践者、喜欢创造发明的人以及艺术家构建的。这个三部分系列将从基本的Arduino 硬件开始,并使用它创建名为“'Duino tag” 的交互式激光游戏,玩家可以使用几乎从头开始构建的设备玩tag 游戏。在“构建基于Arduino 的激光游戏” 的第1 部分中,我们将构思作为'Duino tag 的一部分的基本预备试验。

开始之前

无论您是Arduino 新手还是经验丰富的构建者,此项目都有适合您的内容。没有比创建交互式物理对象更令人满意的事情了,因为在需要中断或者需要修改时,您知道所有部件的位置以及所有部件的工作原理。'Duino tag 枪是适合独立完成或与朋友共同完成的优秀项目。要完成此项目,您至少应当基本了解电子学(您应当知道寄存器是什么,但是不必知道其中的深奥原理)并且了解编程(您应当知道循环和变量是什么,但是您不必解析Big O Notation)。您可以勇敢地进行动手实践。

关于本系列

在本系列中,我们将使用Arduino 技术来创建名为'Duino tag 的基本交互式激光游戏:

?第1 部分:了解一些Arduino 基础知识,布置项目,并且做一个帮助您了解红外线工作原理的实验。

?第2 部分:构建和测试'Duino tag 枪的接收器部分,包括测试。

?第3 部分:构建发送器并完成'Duino tag 枪。

关于本教程

要继续学习本教程,您无需具有任何电子学工作经验,尽管使用电子元件的经验肯定对您有用。对于微控制器经验也是如此。如果您使用过微控制器,则有一定的优势,但是记住Arduino 平台非常适合没有相应经验的人员。首先,您应当愿意拓展自己的技能。使用电子器件和微控制器会是一种有益的经验。大多数软件工程师没有机会为与物理世界交互的设备编写代码,而Arduino 提供了使用交互式设备的低成本入口点。

本教程是“构建基于Arduino 的激光游戏” 三部分系列的第1 部分,将主要介绍Arduino 基础知识。我们将开始使用Arduino,了解语言基础知识和API。我们将为'Duino tag 项目做准备,包括设计基础和整合部件列表。我们将了解如何在线订购部件、去哪里购买以及需要哪些部件。最后,使用一些采购的元件和一些基本测试代码,我们将演示控制枪械操作的基本原理

统要求

对于本教程,我们需要一些工具和设备:

具有USB 端口的计算机

虽然从技术的角度来说并不合适(许多类型的Arduino 硬件接口都是基

于旧式串行端口的),但是本系列在撰写时假定您使用的是基于USB 进行通信的模型。Arduino 软件可用于Microsoft? Windows?、Mac OS X 和Linux?(32 位和AMD 64 位)。

Arduino Diecimila

这是本教程中使用的Arduino 硬件的具体模型。您可以替换Arduino

Duemilanove。请从正规的网上经销商那里订购一个。要获得链接,请参阅参考资料。

USB A-B 线

这是类似于已经连接到打印机上的一根USB 线。

基本的5mm 红色发光二极管(Light-Emitting Diode,LED)

您可能已经有一个,或者可以在Radio Shack 或者从网上经销商那里购买。

闪光灯

越亮越好。

Arudino 软件

要下载Arudino 软件,请参阅参考资料。

Arduino 的安装和设置指南

要下载Arduino 安装指南,请参阅参考资料。

构建基于Arduino 的激光游戏,第 1 部分: Arduino 基础知识

用开源硬件与软件平台Arduino 开始创建电子项目

Arduino 简介

在本节中,我们将介绍Arduino 硬件的基础知识、如何设置,并简单介绍如何编写软件。

Arduino 是什么?

简言之,Arduino 板是一个微控制器—具有各种输入管脚和输出管脚的小型计算器。使用这些管脚,您可以创建无数交互式设备,包括像闪光灯一样简单的设备,以及通过各种输入创建使用伺服系统和引擎的复杂行为的复杂设备。第一个Arduino 是2005 年1 月由米兰交互设计学院的两位教师— David Cuartielles 和Massimo Banzi —创建的。要获得介绍Arduino 开发人员的在线杂志文章,请参阅参考资料。

Arduino 平台由两部分组成:硬件(包括微控制器、电路板等)和软件(编程接口和语言)。平台的两个部分都是开源的。如果需要,您可以下载Arduino 的图表、购买需要的所有独立部件、切割电路板并从头开始制作一个电路板。有很多用于这一用途的各种项目(如Freeduino)。图表和CAD 文件已经在Creative Commons Share-Alike 许可下发布。用于编写Arduino 的软件也是开源的。它是用Java? 编程语言编写的并且是在GPL(有一些已经在LGPL 许可下发布的C/C++ 微控制器库)下发布的。

有几个可用的微控制器平台,并且许多平台都实现相同的目的:易于编程、与微控制器进行交互、将所有内容封装到一个包中等等。同样地,Arduino 旨在提供一个简单的界面和一个将所有功能集于一身的包,同时尝试提供其他优点:

低成本

可以从头开始构建便宜的Arduino 板,并且预组装的组件十分便宜。

Arduino Diecimila 花费大约35 美元。

跨平台软件

获得适用于Microsoft Windows、Mac OS X 和Linux 的Arduino 软

件。

简单的语言

Arduino 开发人员尝试使语言可以被初学者轻松掌握,但是对于高级用户足够灵活。

开放源码

Arduino 从上到下完全是开源的。如果需要构建或修改软件,您可以随意执行。此外,Arduino 的官方Web 站点包含丰富的维基,其中的代码样

例和示例都是免费共享的。

有大量可用的Arduino 信息。最佳起点位于官方Web 站点(请参阅参考资料)。花一些时间阅读该站点中的优秀介绍性信息。

入门

要与Arduino 硬件进行交互,您需要安装软件。下载适用于您的操作系统的软件并遵循相应的分布安装和设置指南(请参阅系统要求)。它们遵循相同的步骤:

1. 解压缩软件

2. 安装Arduino 的USB 驱动程序

3. 连接Arduino 板

4. 启动软件

5. 上传示例

我们将不会详细介绍每个步骤,因为这些步骤将随着环境的不同而变化。让我们讨论一下软件和Blink 示例。

注:按照Arduino 的说法,独立的脚本和程序被称为“sketches”。

在启动软件并装入Blink 示例后(根据入门指南中的说明),您应当会看到类似图 1 的内容。

这里简要介绍一下该界面,顶部按钮行将控制基本任务,如编译、创建和保存文件、将代码上传到Arduino 板中以及打开或关闭Serial Monitor(稍后还有更多任务)。中间窗格包含Blink 示例的所有代码,并且底部窗格将显示控制台输出、编译错误和序列消息(打开Serial Monitor 时)。目前,让我们将精力放在中间的窗格上并讨论Arduino 语言。

Arduino 语言基础知识

Arduino 语言是基于C/C++ 的,并且如果您以前使用过这种语言,则应十分熟悉它的构造函数和特性。虽然完整回顾该语言不在本教程范围内,但是让我们剖析Blink 示例并了解一点该语言的知识。如果您已经可以熟练使用代码,则这些内容可能有些过于简单,因此如果您愿意获取一本手册并进一步深入研究,请随意查阅更多语言参考(要获得更多语言参考,请参阅参考资料)。

首先,查看大块注释。Arduino 语言中的注释是用两种样式编写的。

也可以用内联样式编写。

接下来,注意声明一个变量:int ledPin = 13;。

从这一行可立即看出Arduino 语言中的行都是以分号为结尾的。此外,从中可以了解在Arduino 语言中声明变量所需的几乎所有内容。语法为:声明变量类型,声明变量名,设置变量的初始值。除了整型之外,Arduino 语言还支持无符号的整型、布尔型、字符型、无符号的字符型、字节型、长型、无符号的长型、浮点型、双精度型、字符串型和数组型。在Arduino 语言参考中查找每种数据类型的详细信息,但是花一些时间了解一下数组类型。在声明数组时,清单3 中所示的每种方法都是正确的。

如果您拥有Web 开发背景,则这些数组可能看上去有点奇怪。不必担心。在开始使用后,这些数组就更容易理解了。

注:数组是零索引的(zero-indexed)。

清单 4 显示了setup函数。

清单 4. setup函数

每当Arduino 板被重置时,就运行一次该函数。每个sketch 都必须有setup 函数,即使该函数为空。在这种情况下,setup函数用于设置Arduino 硬件中的一个管脚的模式。目前忽略pinMode语句并查看该函数的结构。通过声明

函数的返回类型(在这种情况下,void 表示函数将不返回值)和函数名来声明函数。在函数名后,请在括号内声明所有必要参数。setup函数将不接受参数,

但是如果需要创建一个接受一个或多个参数的函数,则只需像声明变量一样声明参数。

最后,我们会看到函数代码是用大括号括起来的。

setup函数之后是名为loop的另一个函数。

清单 6. loop函数

在执行了setup函数后,将不确定地无限次调用loop函数,直至Arduino 板被关闭,或者直至某个重要事件在时间和空间上造成断层。我们通常在loop 函数中执行大部分工作,侦听传感器输入并触发某种形式的输出。同setup函数一样,每个sketch 都必须有loop函数,即使该函数为空。

除了从Blink 示例中了解的知识之外,关于Arduino 语言还需要注意以下事项:

大多数熟悉的控制结构都是受支持的(if、while、for、switch等)。

?算术、比较、布尔、位和混合运算符都是十分标准的。

?语言本身支持一些数学、时间、三角学、随机数和串行通信功能。

?可以在sketch 顶部使用#include语句包括外部库。

除了所有这些标准功能之外,Arduino 还有一些独特的语言元素。这些构造函数(如上面所示的pinMode和digitalWrite函数)主要关心如何在Arduino 中处理各种输入和输出管脚。Arduino 站点中有一个丰富的语言指南

(请参阅参考资料)。

好的—我们已经介绍了足够的Arduino 基本知识。让我们了解一下此项目,看看您将从中学习到哪些知识,以及您将面临哪些挑战。

用开源硬件与软件平台Arduino 开始创建电子项目

准备制造'Duino tag 枪

如果您从未使用过Arduino 或者任何其他微控制器,那么看上去这是一个比较庞大的项目。它的确是。此项目将带来一些需要克服的有趣挑战。但是就个人和社会而言,此项目也将带来同等的获益。让我们来看看这些挑战和获益。在本节中,我们将开始制造'Duino tag 枪。

为什么构建'Duino tag 枪?

官方Arduino 页面同时加载了一些样例项目,其中大多数项目将比钻研诸如激光信号枪之类的内容简单得多。构建'Duino tag 枪将引入一些独特的挑战,同时也提供了一些非常棒的优点。

首先,使用红外线十分复杂(很抱歉,在本教程的课程中没有使用实际的激光)。红外线远比您想像的复杂(肯定比我最初开始做这个项目时考虑得更加复杂)。首先,红外光源到处都是,并且它将从所有事物上弹回(如果您曾经从墙上或画上弹回过遥控装置的信号,则会知道这是怎么回事)。处理复杂的数据算法或者编写每秒必须处理数百万请求的代码是一回事。尝试并处理现实世界的干扰源(如太阳)完全是另一回事。编写代码时使用的解决方法在尝试解决物理世界的问题时会十分有用。

此外,一旦您能够开始使用红外线,那么您将能够开发许多以前从未考虑过的项目—包括与电视进行交互以创建通过IR 彼此通信的廉价交互式设备,使用您自己设计的遥控装置控制计算机的各个部分。

除了处理红外线的复杂性之外,您将发现游戏中还有一个计时问题。目标是构建一个设备,用作发射红外线的枪和一个检测器,后者可以记录其他合法红外光源的击中数。处理这个特殊问题时有一点难度,并且您会发现在克服这个特殊难题后将获得一些好处(并且有希望得到一些乐趣)。

从社会学的角度讲,这个项目非常适合与朋友协同完成。我非常喜欢在我自己的工作室里创建设备,但是有时与一些朋友围坐在桌边并且一起工作也是一种乐趣。由于这些设备往往彼此交互操作,因此不可能只构建一个设备。通过朋友的参与,您将减轻自己的工作。您已经得到了更多发射传感器和更多枪来测试您自

己的传感器。这必然将非常有趣。在'Duino tag 启动并运行后,您将被迫立即向朋友射击。

并且最后,您不必从商店购买一个现成的、无法改装的设备,您已经和他人共同创造了自己的设备。如果您不喜欢它的工作方式,可以改造设备或者更改规则。这可能比购买便宜的现成组件花费多一点,但是最后,您能够拥有可以拆卸检修、重新组装并且随心所欲的设备。您在喜欢的全国玩具连锁店中可购买不到这种玩具。

现在您已经对该项目产生兴趣,让我们讨论一下'Duino tag 枪。它将做什么?它如何工作?您需要哪些组件?如何封装电子元件?

设计'Duino tag 枪

在开始设计枪之前,需要讨论它的工作原理。我在此过程中作出了一些声明和假设,以便使一切内容更加清晰。让我们讨论一下这种枪如何工作:

1. 当玩家扣动扳机时,则射出一发子弹。

2. 开枪时,它应当发出“PEW PEW” 之类的声音。

3. 枪支还将用于检测命中率。

4. 当检测到命中时,枪支应当发出“KZZKH KZZKH” 之类的另一种声音。

5. 每把枪都可以射出一定数量的子弹。

6. 当枪支没了弹药并且玩家扣动扳机时,枪支应当发出“EEERK EEERK”

之类的第三种声音。

7. 当玩家被除掉时,枪支应当发出“BOOM KAPOW” 之类的最后一种声音

(是的—那是两种声音)。

在这里可以添加更多规则变体,但是这是一个不错的起点。在我们将编写的代码中,我们将建立以下规则集:

?每把枪有六发无损的子弹。不可以重新装弹药。可以在没有遇到危险的情况下射出这些子弹。

?每个玩家都可以中六枪。当您中了六枪后,您就被杀死了。

?在射完第六只子弹后,玩家每射出一发子弹都会增加枪支失灵的可能性。

如果枪支失灵,玩家将被杀死。

更通俗地讲,您可以被击中六次,并且可以射击六次。在使用了六发无损的子弹后,每次射出一枪,枪支失灵的概率就会增加。如果枪支失灵,那么您就被杀死了。

基于这些简单规则以及教程中先前提及的一些声明,我们可以建立一些硬件基础:

1. 'Duino tag 是基于红外线的。

2. 枪用作发射器和传感器。

3. 枪需要某种扳机。

4. 枪有声音。

5. 枪应当耐用。

本教程将不会花大量时间讨论如何封装'Duino tag 枪。在制造完电子元件后,我们将介绍各种选项以创建或对应项目的各种案例。现在已经布置了行为,现在应当对硬件进行说明。但是必须先讨论一下红外线传感器如何工作。

处理红外线

如述,红外辐射包围着我们。太阳放射出红外辐射,灯泡、电视和动物(蝮蛇的“腹” 指这类蛇用于寻找食物的传感器的形状)也会发出红外辐射。如果设置一个只要检测到任何红外线就触发的传感器,它将被经常触发,因而基本上是没有用处的。

因此如果是这种情况,红外线遥控装置如何工作?电视遥控器包含一个特殊设计的内置传感器,可以检测按照特定频率发射的红外线。例如,索尼将其红外线接口标准化为40 KHz。换言之,红外线LED 是以每秒40,000 次的频率打开和关闭。通过仅感测给定频率的输入,电视可以忽略来自其他来源的红外线。遥控器将通过发射IR 脉冲信号向电视发射不同的代码。

这是'Duino tag 枪的实际工作原理。这意味着需要特殊类型的IR 传感器。我们现在就将讨论这个问题,因为将介绍所需的部件以及从何处得到这些部件。

部件

如述,我们需要一个Arduino 扳。让我们看一下还需要什么。

红外线LED

LED 没有任何特殊之处。我使用的是All Electronics 的T1 四分之三的IR LED。

红外线传感器

撰写本系列时使用的是TSOP2138YA 红外线传感器(也是All

Electronics 的产品)。

单极瞬时开关

这是扳机,因此需要一个不大不小的东西。

压电(Piezo)元素

我们将使用此元素发声。建议使用小闷声。

22 规格实心线或绞线

需要两种颜色。不需要太多—最多一米。

电阻

需要几个不同的电阻。一个100Ω 电阻(即100 欧姆或者

Brown-Black-Brown)、一个10kΩ 电阻(即10000 欧姆或

Brown-Black-Orange)及一个82Ω 电阻(即82 欧姆或

Grey-Red-Black)。

电容

需要一个0.1uF 电容。

镜头

小放大镜(直径为3/4 到 1 英寸)—对于这第一次实验,您可以使用作为宴会礼物提供的便宜塑料镜头。

管子

短的PVC 或其他钢管。

这些部件花费不到5 美元,这取决于您在哪里购买。

在哪里购买部件

您应当能够走进Radio Shack 并找到完成本系列需要的电子元件。如果您愿意从在线经销商那里购买,下面有三家推荐商家:

Digi-Key

以合理的价格提供各种电子元件

Mouser

另一家优秀的在线电子元件货源

All Electronics Corp.

选择比另外两家少一些,但是提供了愉快的购物体验

要获得这些在线经销商的信息,请参阅参考资料。此外,简单的Web 搜索将返回许多选项。如果您决定在其他地方购买,请记住以下四点:

1. 核对交付时间,尤其是从eBay 经销商那里订购时。您可以从eBay 经

销商那里找到许多电子元件,但是这些商品经常是直接从中国运来的,需

要花费一到两个星期。

2. 不要订购没有规格表的元件。所有电子元件都有规格表,其中列出了关于

电压和连接等大量重要信息。如果您手上没有这些信息,您可能会发现使

用这些元件十分困难。

3. 货比三家。元件价格差别很大。不要害怕相互参照不同站点开出的价格。

除非您将下大单,否则从一个站点订购传感器而从另一个站点订购LED 没有多大意义。但是您仍然应当确定自己获得的是有竞争力的价格。

4. 精确核对型号,尤其是IR 传感器的型号。如果您以前使用过电子元件,

很显然应该这样做,但是如果您刚开始使用电子元件,则可能不清楚如何

做。IR 传感器有许多制造商和型号,并且外观十分相似,但频率不相似。

频率十分重要。

在等待部件运达时,让我们先仅使用Arduino 完成一些操作。这将激发您对项目的兴趣并引入LED 的罕见功能。这个实验不会成为最终项目的一部分,但是它应当可以帮助您更好地理解频率的工作原理。此外,它将让您开始使用Arduino 软件和硬件。

用Arduino 做实验

让我们做一个小实验,通过这个实验可以学习到一些LED 的新知识,并且帮助我们了解频率。

激发兴趣的巧招

早些时候,我们说过需要一个LED 和一个闪光灯才能完成本教程。在Blink 示例中,我们已经使用过LED。让我们使用同一个LED 来检测光。是的,检测光。除了闪光、照射和眩光(blinding)之外,LED 可用于检测光。要获得最佳结果,需要使用有色的LED(例如红色)和普通白色闪光灯(越亮越好)。

首先取一个LED 并将阳极(正极—通常为长端)插入板子底部的0 Analog In 管脚中。将阴极(负极—通常为短端)插入板子底部的两个Ground 管脚(标记为“GND”)之一。

接下来,我们将编写一点代码来侦听0 Analog 管脚并将读数输出到串口监视器中(我曾经说过我们会谈到这个主题)。

清单7. 侦听0 Analog 管脚并将读数输出到串口监视器中

/* LED Light Sensor

* by Duane O'Brien

* for IBM Developer Works

*/

int recvPin = 0;

int wait = 1000;

int val = 0;

void setup()

{

// Initialize the Serial

Interface

Serial.begin(9600);

}

void loop()

{

// Take a reading from the

Analog Pin

val =

analogRead(recvPin);

// Output the detected

value

Serial.print("DETECT :

");

Serial.println(val);

// Wait to take the next

reading.

delay(wait);

}

您可以看到这段代码没有太多内容。我们设置了几个变量,初始化串行接口,然后每秒从模拟输入中获取读数。它是一个简单的脚本,但是起到了非常好的效果。保存该脚本并将其上传到Arduino 硬件中。上传完成后,单击Arduino 窗口顶部的Serial Monitor按钮。这将重置Arduino 板,然后您应当开始看到一些读数显示在底部窗格中。调暗光源并查看读数。这一切应当类似图2。

显示的实际数字可能差别很大,这取决于周围的光线的强度、您使用哪种LED 等等。接下来,打开闪光灯并用它照亮LED。您应当会注意到检测到的值明显增加。在第一个屏幕快照中,读数大约为167-168。但是查看图3 中的读数。

您可以看到在0-1,023 范围内的模拟输入在闪光灯照射到LED 上时读数跳跃了大约90。同样,这些数字可能差别很大,这取决于周围照明、LED 选择和闪光灯强度。但是这是最基本的光传感。

现在,为了作比较,打开Arduino 硬件周围的几个光源,这样就增加了周边照明,然后注意基线如何增长。

当LED 与其他光源结合在一起时,您可以看到基线数字增长大约40,这种跳跃不太明显。在本例中,我们仍然可以从中看出闪光灯何时直接照射到LED 上。

但是如果必须处理更多环境照明,或者必须处理漫射光源的物体(例如距离LED 比较远的光),数字差异会变得越来越微妙。为了演示这种情况,需要对Arduino 进行设置,以让闪光灯从房间的任何角落照射到LED 上,然后检验结果。

除了展示使用基本LED 的新方法之外,本例还演示了处理周围可见光和光检测时遇到的困难。您可以想象在处理红外线这样几乎无处不在并且肉眼看不到的光线时,问题将变得多么复杂。

频率的简单演示

现在光传感器已经工作,可以修改代码并使用它了解频率。我们已经了解到,红外线无处不在,因此传感器必须过滤掉不是以特定频率发射的光线。让我们在本节中简单演示一下发射频率如何工作。这并不是一次全面的科学实验,但是它可能会帮助阐明概念。

修改代码

我们将更改代码,以便在光读数跳到超出基线的5% 时,将启动一个循环,该循环将查看下两个读数,根据检测到的代码输出特定代码。首先,声明一些附加变量。我们需要一个变量来决定应当获取多少个读数来确定周围光线的基线数字,还需要一个变量来保存期望的最小读数跳跃值,以及一个迭代器、一个保存

不同代码的数组和一个跟踪int来说明在循环中的位置。

清单8. 声明变量

接下来,需要在设置期间获取一组读数,计算平均值,然后决定5% 的含义。依照我的经验,第一个读数总是异常地高,因此直接去掉该读数。

清单9. 获取一系列读数

void setup()

{

// Initialize the Serial Interface

Serial.begin(9600);

Serial.print("establishing baseline... ");

val = analogRead(recvPin); // throw out the first one, it's usually high.

delay(wait);

for (i = 0; i < readings;i++)

{

jump += analogRead(recvPin);

delay(wait);

}

jump = (jump / readings)*1.05;

Serial.println(jump);

// Output the detected value

delay(wait);

}

最后,在循环过程中,您需要读取管脚。如果在循环中,则需要保存代码,并且如果已经收到所有代码,则输出一个结果。如果不在循环中,并且读数高于基线5%,则启动一个循环。清单10 可以更加简洁,但是它清楚地说明了正在发生的情况。

清单10. 读取管脚

void loop()

{

// Take a reading from the Analog Pin

val = analogRead(recvPin);

switch (incycle)

{

case 0:

if (val > jump)

{

Serial.println("In Cycle");

incycle = 1;

} else {

Serial.println("Out Of Cycle");

}

break;

case 1:

if (val > jump)

{

code[0] = 1;

} else {

code[0] = 0;

}

incycle = 2;

Serial.println("Read One");

break;

case 2:

if (val > jump)

{

code[1] = 1;

} else {

code[1] = 0;

}

incycle = 3;

Serial.println("Read Two");

break;

case 3:

if (code[0] == 0 && code[1] == 0)

{

Serial.println("Reset");

} else if (code[0] == 1 && code[1] == 0) {

Serial.println("Turn On");

} else if (code[0] == 0 && code[1] == 1) {

Serial.println("Turn Off");

} else if (code[0] == 1 && code[1] == 1) {

Serial.println("Explode");

}

code[0] = 0;

code[1] = 0;

incycle = 0;

break;

}

delay(wait);

}

如果保存并上传这段代码(每次上传后需要打开串行监视器),您应当会看到读数何时完成。通过将闪光灯照射到LED 上,您可以触发一个循环。下两个读数(一秒一个)将决定输出的最终代码。您可以触发不同的输出,方法为以每秒一次的频率交替打开和关闭闪光灯。例如,如果只是将闪光灯照射到LED 三秒钟,则应当会触发“Explode” 消息。如果打开闪光灯一秒钟,关闭一秒钟,然后打开一秒钟,则应当触发“Turn Off” 代码。下面是一个输出样例。

在这里完成的是以非常低的频率发出二进制消息信号。这类似于'Duino tag 枪的作用,不过信号枪要以更高的频率完成此操作。

现在,您应当已经为进一步创建和测试'Duino tag 枪做好了准备,这些内容将在本系列的其余部分中介绍。

结束语

在学习第2 部分之前,您应当准备好一些装备:

?烙铁和一些焊料。您在这里不需要奇特的东西,因为您不会执行任何精细或复杂的焊接。

?一对剪钳/剥皮钳。建议:不要使用牙齿来剥线。

?先前介绍的电子元件。

花一些时间研究Arduino 站点并学习一些教程。获取LED 光传感器代码并研究一下您还可以如何处理它。可能最重要的是,召集一些朋友来与您一起完成此项目。如果有其他人参与,此项目将会更有意义(并且更容易)。

ARDUINO入门及其简单实验7例

ARDUINO入门及其简单实验(7例) (1) 1. Arduino硬件开发平台简介 (1) 1.1 Arduino的主要特色 (2) 1.2 Arduino的硬件接口功能描述 (3) 1.3 Arduino的技术性能参数 (3) 1.4 电路原理图 (4) 2. Arduino软件开发平台简介 (5) 2.1 菜单栏 (5) 2.2 工具栏 (6) 2.3 Arduino 语言简介 (6) 3. Arduino开发实例中所用部分器件 (8) 1. LED简介 (8) 2. 光敏电阻简介 (9) 3. 直流电机简介 (9) 4. 电位器简介 (10) 4. Arduino平台应用开发实例 (10) 4.1【实作项目一】利用LED作光敏电阻采样实验 (10) 4.2【实作项目二】利用PWM信号控制LED亮度 (12) 4.3【实作项目三】单键控制一只LED的亮灭 (15) 4.4【实作项目四】利用PWM控制直流电机转速 (17) 4.5【实作项目五】利用电位器手控LED亮度 (19) 4.6【实作项目六】控制LED明暗交替 (21) 4.7【实作项目七】利用光敏电阻控制LED的亮灭 (23) ARDUINO入门及其简单实验(7例) 1. Arduino硬件开发平台简介 Arduino硬件是一块带有USB的I/O接口板(其中包括13条数字I/O引脚,6通道模拟输出,6通道模拟输入),并且具有类似于Java、C语言的集成开发环境。Arduino 既可以扩展一些外接的电子元器件,例如开关、传感器、LED、直流马达、步进马达或其他输入、输出装置;Arduino也可以独立运行,成为一个可以跟交互软件沟通的接口装置,例如:Flash、Processing、Max/MSP、VVVV或其他互动软件。Arduino 开发环境IDE全部开放源代码,可以供大家免费下载、利用,还可以开发出更多激发人们制作欲望的互动作品。

Arduino可穿戴开发入门教程

Ard duin no 可可穿(内ww 穿戴开内部资料大学霸ww.daxue 开发料) 霸 https://www.wendangku.net/doc/c618432893.html, 发入门门教 教程

前 言 在可穿戴技术高度被关注的今天,可穿戴技术与最热开源硬件Arduino碰撞到一起,迸发闪亮的火花——LilyPad。LilyPad是Arduino官方出品的一款为可穿戴和电子织设计的微控制器板。除了微控制器之外,它还提供了配套的一系列外设,如LED、振动马达、蜂鸣器以及三轴陀螺仪等。 在本教材中,针对LilyPad的特点和定位,以不同于其他Arduino系列控制板的方式对LilyPad是什么,以及它可以做什么进行了详细的介绍。 最后,在教程中还实现了3个切实可用的项目。大家只要将他们缝纫起来就可以使用了。特别是最后的POV手环,那是非常炫酷的。 许多教材是在学习的同时做出项目,而本教材则更偏向在做项目的同时学习。在做完所有这些项目之后,你的眼界将会被开阔,各种奇思妙想会接踵而至。你一定会在有限的LilyPad硬件上做出无限可能的设计。 1.学习所需的系统和软件  的开发可以在三大主流操作系统Windows、OS X和Linux上进行,本教材主要集中?Arduino 在Windows操作系统;  的开发环境是Arduino IDE,它的安装和使用都非常方便,在教材中也有所介绍。 ?Arduino 2.学习建议 大家购买器件之前,建议大家先初略阅读本书内容,以确定项目中可能需要用到的器件。这样可以避免重复多次购买,或者购买到不需要的器件。

目 录 第1章 LilyPad Arduino概览 (1) 1.1 可穿戴技术和电子织物 (1) 1.2 LilyPad各模块简介 (1) 1.2.1 控制器板 (1) 1.2.3 输出模块 (3) 1.2.4 输入模块 (3) 1.2.5 电源模块 (4) 1.2.6 编程器模块 (5) 1.2.7 LilyPad套装 (5) 1.3 缝纫基础 (6) 1.4 LilyPad和LilyPad Simple (10) 1.4.1 LilyPad (10) 1.4.2 LilyPad Simple (11) 1.5 本书写作思想 (12) 第2章开发环境 (13) 2.1 Arduino IDE (13) 2.1.1 安装包下载 (13) 2.1.2 Windows平台下安装Arduino IDE (15) 2.1.3 Linux平台下安装Arduino IDE (18) 2.2 认识IDE (18) 2.2.1 启动Arduino IDE (18) 2.2.2 新建源文件 (20) 2.2.3 编辑源文件 (21) 2.2.4 保存源文件 (23) 2.2.5 打开已经存在的源文件 (24) 2.3 连接LilyPad (25) 2.3.1 Windows平台的驱动 (25) 2.3.2 Linux平台的驱动 (26) 2.4 Blink (27) 2.4.1 打开官方示例 (27) 2.4.2 连接硬件 (28) 2.4.3 选择板子 (28) 2.4.4 选择端口 (29) 2.4.5 上传程序 (31) 2.4.6 观察运行结果 (31) 第3章Arduino语言基础 (33)

Arduino 电子积木基础套装中文教程

Arduino 入门版使用教程 V0.2
https://www.wendangku.net/doc/c618432893.html,
Arduino 入门版使用教程
DFRduino Starter kit User Manual
版本号:V 0.22 最后修订日:2010 09 10
仅供内部评测使用,请勿外传
第 1 页 共 90 页

Arduino 入门版使用教程 V0.2
https://www.wendangku.net/doc/c618432893.html,
目录
介绍 ......................................................................................................................................................... 3 元件清单 ............................................................................................................................................. 3 Arduino 介绍篇 .................................................................................................................................... 4 概 述 ................................................................................................................................................... 4 Arduino C 语觊介绍............................................................................................................................. 5 结极 ..................................................................................................................................................... 8 功能 ..................................................................................................................................................... 8 Arduino 使用介绍............................................................................................................................... 10 面包板使用介绍 ................................................................................................................................... 29 实验篇 ................................................................................................................................................... 31 第一节 多彩 led 灯实验 ................................................................................................................. 31 第二节 蜂鸣器实验 ......................................................................................................................... 42 第三节 数码管实验 ......................................................................................................................... 47 第四节 按键实验 ............................................................................................................................. 54 第五节 倾斜开关实验 ..................................................................................................................... 64 第六节 光控声音实验 ................................................................................................................... 68 第七节 火焰报警实验 ................................................................................................................... 71 第八节 抢答器实验 ......................................................................................................................... 75 第九节 温度报警实验 ..................................................................................................................... 80 第十节 红外遥控 ............................................................................................................................. 84
仅供内部评测使用,请勿外传
第 2 页 共 90 页

林锋教你一步一步玩机器人(arduino)--制作篇(入门组件A)

林锋教你一步一步玩机器人(arduino)系列 ------制作篇 (入门组件上) ----- 张林锋/文 2012-5-28

目录 1 前言 (3) 2. 准备工作 (3) 2.1 元器件准备工作 (3) 2.2 实验板子准备 (4) 3 LED 实验 (5) 4 蜂鸣器实验 (7) 5.按键实验 (9) 6 8*8点阵实验 (11) 7 串口实验 (12) 8 模拟量输入(电压输入) (16) 9 直流电机控制(L298N驱动模块) (18) 10 PMW 脉冲宽度调试 (21) 11 控制舵机 (22) 12 超声波模块 (23) 13 巡线防跌模块 (26) 14 红外遥控 (27) 说明 写这系列文章主要目的是和读者一同分享下自己的学习过程,也希望能给读者带来一些帮助,文章部分内容剪裁网络文章,部分自己撰写。文章内容用于爱好者之间学习,不得用于商业目的。当然笔者才疏学浅,所书内容难免有缺点和漏洞,还请读者多多海涵,希望能和广大电子爱好者交流心得。 本人QQ:65198204 邮箱:65198024@https://www.wendangku.net/doc/c618432893.html, 博客:https://www.wendangku.net/doc/c618432893.html,/u/2775824690

1 前言 在淘宝买的Arduino 主板套件终于在26号到了,物流也太慢了,发了4天才到。套件包含:4轮小车,Arduino MEGA 2560 主板,配套的MEGA Sensor Shield V2.0扩展板,超声波模块,红外遥控模块,寻线防跌模块,舵机。套件是在27°寒语电子工作室(https://www.wendangku.net/doc/c618432893.html,/)买的,也就是科易互动科技的子站(https://www.wendangku.net/doc/c618432893.html,/)。 备注一下:套件性价比很高,也有配套的相关资料,不过个人觉得配套资料写的不够详细和全面,对于新手制作会带来很多不便。 在制作篇系列文章中,我会对入门组件的应用,以及4轮小车套件的制作,做出详细的制作流程,图文并茂。相信会对新手入门带来一定收获。 读者在做本文章实验时可以结合阅读我的相关入门知识文章,基本篇,硬件篇,软件篇。 制作篇分:入门上篇:主要介绍一些基础配件,以及小车所要用的器件。 4轮小车篇:主要介绍小车制作全过程。 入门下篇:主要介绍一些其他外围器件应用。比如:1602,12864液晶应用,时钟模块应用等。 4轮小车改造篇:加入自己的一些元素。 2. 准备工作 2.1 元器件准备工作 本篇实验器件所用到的元器件如下:(1)发光二极管(2)蜂鸣器(3)按键(4)可变电阻(5)8*8点阵(6)串口(7)直流电机(8)伺服电机(9)超声波模块(10)寻线防跌模块(11)红外遥控。 下面给我的全家福来个图,呵呵。

Arduino 入门到精通 例程1-Hello World!

Arduino 入门到精通例程1 1、Hello World! 首先先来练习一个不需要其他辅助元件,只需要一块Arduino 和一根下载线的简单实验,让我们的Arduino 说出“Hello World!”,这是一个让Arduino 和PC 机通信的实验,这也是一个入门试验,希望可以带领大家进入Arduino 的世界。 这个实验我们需要用到的实验硬件有: Arduino 控制器 USB 下载线 我们按照上面所讲的将Arduino 的驱动安装好后,我们打开Arduino 的软件,编写一段程序让Arduino 接受到我们发的指令就显示“Hello World!”字符串,当然您也可以让Arduino 不用接受任何指令就直接不断回显“Hello World!”,其实很简单,一条

if()语句就可以让你的Arduino 听从你的指令了,我们再借用一下Arduino 自带的数字13 口LED,让Arduino 接受到指令时LED 闪烁一下,再显示“Hello World!” 下面给大家一段参考程序。 int val;//定义变量val int ledpin=13;//定义数字接口13 void setup() { Serial.begin(9600);//设置波特率为9600,这里要跟软件设置相一致。当接入特定设备(如:蓝牙)时,我们也要跟其他设备的波特率达到一致。pinMode(ledpin,OUTPUT);//设置数字13 口为输出接口,Arduino 上我们用到的I/O 口都要进行类似这样的定义。 } void loop() { val=Serial.read();//读取PC 机发送给Arduino 的指令或字符,并将该指令或字符赋给val if(val=='R')//判断接收到的指令或字符是否是“R”。 {//如果接收到的是“R”字符 digitalWrite(ledpin,HIGH);//点亮数字13 口LED。 delay(500); digitalWrite(ledpin,LOW);//熄灭数字13 口LED delay(500);

Arduino初学系列3:Arduino,按键,LED

3 Arduino,按键,LED 3.1 问题描述:如何采用Arduino控制器和按键同时控制LED的闪烁 在前面的2个例子中,都是简单地通过将程序烧录到Arduino控制板,然后由控制板来控制LED灯的闪烁,缺乏人情味。那能不能在Arduino控制的过程中,再加上与人的互动呢?答案是肯定的。在这个实验中,我们将增加一个新的材料按键按钮来和Arduino一起控制灯的闪烁。 3.2 所需材料 表3-1:所需材料 序号名称数量作用备注 1 Arduino软件1套提供IDE环境最新版本1.05 2 Arduino UNO开发板1块控制主板各种版本均可 3 USB线1条烧录程序随板子配送 4 杜邦线若干条连接组件 5 发光二极管(LED)1个 LED闪烁 6 电阻(10,200Ω)2个限流 7 多功能面包板1块连接 8 按键按钮1个开关 在进行实验之前,我们先介绍按键按钮的相关属性。 按键按钮 按键是一种经常使用的设备,通过按键可以输入指令和数据来控制电路的开与关,从而达到控制某些设备的运行状态。在本实验中,通过给按键输入高低电平来控制LED灯的闪烁。开关的种类繁多复杂,比如厨房用的单孔开关,卧房用的双控开关,楼道用的声控开关等等,均属于开关的范畴。在我们实验中,主要是用微型开关,但其种类也很多,如图3-1所示。 图3‐1 微型按键开关种类 在本实验中采用的微型开关大致为6*6*5mm的四脚开关。如图3-2所示。

图3-2 本实验用的按键 值得注意的是,1和2是一边的,3和4是一边的,中间有道痕分开。其原理如图3-3所示,当按键按下去时,1,2,3,4四个管脚接合在一起,2根导线连通,变成一根导线。电路导通,起到触发(关)作用。当松开按钮,1,2,3,4四个管脚断开,起到开的作用。 图3‐3 按键按钮原理图 3.3 实验原理图 当按键按钮按下,获取一个高电平,触发在Arduino控制下的LED闪烁。当然,我们也可以设置为按键按下是LED灯不亮,当松开按键时,LED灯闪烁,请看后面的代码分析。原理图如3-4所示,就是在实验1的基础上增加一个按键按钮。

Arduino手把手系列教程

——什么是Arduino/Arduino是什么 Arduino是一块简单、方便使用的通用GPIO接口板,并可以通过USB接口和电脑通信。 作为一块通用IO接口板,Arduino提供丰富的资源,包括: 13个数字IO口(DIO数字输入输出口); 6个PWM输出(AOUT可做模拟输出口使用); 5个模拟输入口(AIN模拟输入)。 Arduino开发使用java开发的编程环境,使用类c语言编程,并提供丰富的库函数。 Arduino可以和下列软件结合创作丰富多彩的互动作品:Flash,Processing,Max/MSP,VVVV…等。 Arduino也可以用独立的方式运作,开发电子互动作品,例如:开关控制Switch、传感器sensors输入、LED等显示器件、各种马达或其它输出装置。 下面是Arduino的硬件实物图片: Arduino实物图

——Arduino可以做什么 目前计算机的输入和输出设备,大家常见的、也是大家做熟悉的就是:键盘(输入)、鼠标(输入)、麦克(输入)和音响(输出)、显示器(输出);对于一些玩游戏的朋友可能还包括游戏杆(输入),做音乐的可能还会接触到MIDI (输入)。 上述设备都很专业,功能也非常专一。你没办法让键盘给你唱歌,同样,你也没办法让音响替你输入文本。 Arduino更像是一种半成品,它提供通用的输入输出接口。你可以通过编程,把Arduino加工成你需要的输入输出设备。 你可以把Arduino做成键盘、鼠标、麦克等输入设备;你也可以把Arduino做成音响、显示器等输出设备。最重要的是,你可以把Arduino做成任何你希望的互动工具(输入和输出)。 如果你愿意,或者你需要,你完全可做使用Arduino开发出一个会唱歌的键盘或者一个让你的音响替你打字。(夸张的说法) 总之,Arduino是什么,是根据你的需求来确定的。你跟电脑之间的交互,从此插上了翅膀。

Arduino入门到精通例程6-按键控制

Arduino 入门到精通例程 6 6按键控制LED实验 I/O 口的意思即为INPUT接口和OUTPUT接口,到目前为止我们设计的小灯 实验都还只是应用到Arduino的I/O 口的输出功能,这个实验我们来尝试一下使用Arduino的I/O 口的输入功能即为读取外接设备的输出值,我们用一个按键和一个LED小灯完成一个输入输出结合使用的实验,让大家能简单了解I/O的作用。按键开关大家都应该比较了解,属于开关量(数字量)元件,按下时为闭合(导通)状态。完成本实验要 用到的元件如下: 按键开关*1 红色M5 直插LED*1 220 Q电阻*1 10K Q电阻*1 面包板*1 面包板跳线*1 扎 我们将按键接到数字7接口,红色小灯接到数字11接口(Arduino控制器0-13数字I/O接口都可以用来接按键和小灯,但是尽量不选择0和1接口,0和1接口为接口功能复用,除I/O 口功能外也是串口通信接口,下载程序时属于与PC 机通信故应保持0和1接口悬空,所以为避免插拔线的麻烦尽量不选用0和1 接口),按下面的原理图连接好电路。下面开始编写程序,我们就让按键按下时小灯亮起,根据前面的学习相信这个程序很容易就能编写出来,相对于前面几个实验这个实验的程序中多加了一条条件判断语句,这里我们使用if 语句,Arduino的程序便写语句是基于C语言的,所以C的条件判断语句自然也适用于Arduino,像while、swich等等。这里根据个人喜好我们习惯于使用简单易于理解的if 语句给大家做演示例程。

我们分析电路可知当按键按下时,数字7 接口可读出为高电平,这时我们使数字11 口输出高电平可使小灯亮起,程序中我们判断数字7 口是否为低电平,要为低电平使数字11 口输出也为低电平小灯不亮,原理同上。 参考源程序: int ledpin=11;// 定义数字11 接口 int inpin=7;// 定义数字7 接口 int val;// 定义变量val void setup(){pi nM ode(ledpi n,0 UTPUT);// 定义小灯接口为输出接口 pinMode(inpin,INPUT);〃定义按键接口为输入接口}void loop(){val=digitalRead(inpin);〃读取数字7 口电平值赋给val if(val==LOW)〃检测按键是否按下,按键按下时小灯亮起 { digitalWrite(ledpin,LOW);} else { digitalWrite(ledp in ,HIGH);}}下载完程序我们本次的小灯配合按键的实验就完 成了,本实验的原理很简单,广泛被用于各种电路和电器中,实际生活中大家也不难在各种设备上发现,例如大家的手机当按下任一按键时背光灯就会亮起,这就是典型应用了,下面一个实验就是一个最简单的生活中应用实例--------------- 抢答器。

Arduino 入门到精通 例程16-四位数码管

Arduino 入门到精通例程16 这次我们进行的实验是使用arduino驱动一块共阳四位数码管。驱动数码管限流电阻肯定是必不可少的,限流电阻有两种接法,一种是在d1-d4阳极接,总共接4颗。这种接法好处是需求电阻比较少,但是会产生每一位上显示不同数字亮度会不一样,1最亮,8最暗。另外一种接法就是在其他8个引脚上接,这种接法亮度显示均匀,但是用电阻较多。本次实验使用8颗220Ω电阻(因为没有100Ω电阻,所以使用220Ω的代替,100欧姆亮度会比较高)。 4位数码管总共有12个引脚,小数点朝下正放在面前时,左下角为1,其他管脚顺序为逆时针旋转。左上角为最大的12号管脚。

下图为数码管的说明手册

下面是硬件连接图 ARDUINO CODECOPY

1.//设置阴极接口 2.int a = 1; 3.int b = 2; 4.int c = 3; 5.int d = 4; 6.int e = 5; 7.int f = 6; 8.int g = 7; 9.int p = 8; 10.//设置阳极接口 11.int d4 = 9; 12.int d3 = 10; 13.int d2 = 11; 14.int d1 = 12; 15.//设置变量 16.long n = 0; 17.int x = 100; 18.int del = 55; //此处数值对时钟进行微调 19. 20.void setup() 21.{ 22.pinMode(d1, OUTPUT); 23.pinMode(d2, OUTPUT); 24.pinMode(d3, OUTPUT); 25.pinMode(d4, OUTPUT); 26.pinMode(a, OUTPUT); 27.pinMode(b, OUTPUT); 28.pinMode(c, OUTPUT); 29.pinMode(d, OUTPUT); 30.pinMode(e, OUTPUT); 31.pinMode(f, OUTPUT); 32.pinMode(g, OUTPUT); 33.pinMode(p, OUTPUT); 34.} 35. 36.void loop() 37.{ 38. clearLEDs(); 39. pickDigit(1); 40. pickNumber((n/x/1000)%10);

Arduino教程(非常适合初学者)

Arduino 教程一 数字输出 教程一:
Arduino, 教程 11 Comments ?
Arduino 的数字 I/O 被分成两个部分,其中每个部分都包含有 6 个可用的 I/O 管脚,即管脚 2 到管脚 7 和管脚 8 到管脚 13。除了管脚 13 上接了一个 1K 的电阻之外,其他各个管脚都直接连接到 ATmega 上。我们可以利用一个 6 位的数字跑马灯,来对 Arduino 数字 I/O 的输出功能进行验证,以下是相应的原理图: 电路中在每个 I/O 管脚上加的那个 1K 电阻被称为限流电阻, 由于发光二极管在电路中没有等效电阻值, 使用限流电阻可 以使元件上通过的电流不至于过大,能够起到保护的作用。 该工程对应的代码为:
int BASE = 2; int NUM = 6; int index = 0; void setup() { for (int i = BASE; i < BASE + NUM; i ++) { pinMode(i, OUTPUT); } } void loop() { for (int i = BASE; i < BASE + NUM; i ++) { digitalWrite(i, LOW); } digitalWrite(BASE + index, HIGH); index = (index + 1) % NUM; delay(100); }
下载并运行该工程,连接在 Arduino 数字 I/O 管脚 2 到管脚 7 上的发光二极管会依次点亮 0.1 秒,然后再熄灭:
1

这个实验可以用来验证数字 I/O 输出的正确性。Arduino 上一共有十二个数字 I/O 管脚,我们可以用同样的办法验证其他六个管脚的正 确性,而这只需要对上述工程的第一行做相应的修改就可以了:
int BASE = 8;
SEP
01
Arduino 教程二 数字输入 教程二:
Arduino, 教程 3 Comments ?
在数字电路中开关(switch)是一种基本的输入形式,它的作用是保持电路的连接或者断开。Arduino 从数字 I/O 管脚上只能读出高电 平(5V)或者低电平(0V),因此我们首先面临到的一个问题就是如何将开关的开/断状态转变成 Arduino 能够读取的高/低电平。解 决的办法是通过上/下拉电阻,按照电路的不同通常又可以分为正逻辑(Positive Logic)和负逻辑(Inverted Logic)两种。 在正逻辑电路中,开关一端接电源,另一端则通过一个 10K 的下拉电阻接地,输入信号从开关和电阻间引出。当开关断开的时候, 输入信号被电阻“拉”向地,形成低电平(0V);当开关接通的时候,输入信号直接与电源相连,形成高电平。对于经常用到的按压式 开关来讲,就是按下为高,抬起为低。 在负逻辑电路中,开关一端接地,另一端则通过一个 10K 的上拉电阻接电源,输入信号同样也是从开关 和电阻间引出。当开关断开时,输入信号被电阻“拉” 向电源,形成高电平(5V);当开关接通的时候,输 入信号直接与地相连,形成低电平。对于经常用到的 按压式开关来讲,就是按下为低,抬起为高。 为了验证 Arduino 数字 I/O 的输入功能,我们可以将 开关接在 Arduino 的任意一个数字 I/O 管脚上(13 除 外),并通过读取它的接通或者断开状态,来控制其 它数字 I/O 管脚的高低。本实验采用的原理图如下所 示,其中开关接在数字 I/O 的 7 号管脚上,被控的发 光二极管接在数字 I/O 的 13 号管脚上:
Arduino 教程三 模拟输入 教程三:
Arduino, 教程 5 Comments ?
2

Arduino入门教程(13)—彩灯调光台

Arduino 入门教程(13)—彩灯调光台 我们已经接触过 RGB LED 了,可以实现变色,这回儿我们需要加入互动元素进去。通过三个电位器来任意变换对应的R、G、B,组合成任何你想要的颜色,在家做个心情灯吧,随心情任意切换。 所需材料 1×5mm RGB LED 灯 3×220 欧电阻 3×10K 电位器 STEP 1:硬件连接 STEP 2:输入代码 1. int redPin = 9;// R – digital 9 2. int greenPin = 10;// G – digital 10 3. int bluePin = 11;// B – digital 11 4. // 电位器1 – analog 0 int potRedPin = 0;

5. int potGreenPin = 1; // 电位器2 – analog 1 6. int potBluePin = 2; // 电位器3 – analog 2 7. 8. void setup(){ 9. pinMode(redPin,OUTPUT); 10. pinMode(greenPin,OUTPUT); 11. pinMode(bluePin,OUTPUT); 12. Serial.begin(9600); // 初始化串口 13. } 14. 15. void loop(){ 16. int potRed = analogRead(potRedPin); // potRed存储模拟口 0读到的值 17. int potGreen = analogRead(potGreenPin); // potGreen存储模拟 口1读到的值 18. int potBlue = analogRead(potBluePin); // potBlue存储模拟口 2读到的值 19. 20. int val1 = map(potRed,0,1023,0,255); //通过map函数转换 为0~255的值 21. int val2 = map(potGreen,0,1023,0,255); 22. int val3 = map(potBlue,0,1023,0,255); 23. 24. //串口依次输出Red,Green,Blue对应值 25. Serial.print("Red:"); 26. Serial.print(val1); 27. Serial.print("Green:"); 28. Serial.print(val2); 29. Serial.print("Blue:"); 30. Serial.println(val3); 31. 32. colorRGB(val1,val2,val3); // 让RGB LED 呈现对应颜色 33. } 34. 35. //该函数用于显示颜色 36. void colorRGB(int red, int green, int blue){

Arduino开发环境教程

Sonxun
开发环境教程 Aduino 开发环境教程
1.1 程序开发流程
Arduino 开发环境
在计算机中有着许多不同的程序,有的跟系统有关,负责处理硬件之间的数据交换及命 令控制,如操作系统(Operating System,OS)、编译程序(Compiler)等。有的程序则是架构在 系统程序之上,可以满足使用者的部分需求,如 Office、游戏、多媒体播放程序等。 在做微处理器的程序开发时,最关键的一步就是将程序编译成单片机看得懂的机器语言, 而这部分工作由计算机上的相关程序来执行。一般来说,微处理器的系统开发商都会搭配特 定软件供开发者编写其应用程序。 不同于高阶 的程序设计语言, 目前常用于单片机系统的程 序代码为汇编语言(Assembly)、 C/C++等种类。 典型的程序开发流程如右图所示, 设计完系统 所要的执行程序后,再编译成扩展名为.hex 的特殊格式的程序文件, 微处理器就能看得懂 了。接下来,就可以把程序下载、烧录到单片 机中,测试结果是否符合你的预期了。 1.1.1 编辑 这是开发的第一个步骤:产生程序代码。相信很多人听说过:程序厉害的人用记事本程 序就可以工作了。这句话只说对了一半,因为记事本只能帮你记录下整个程序的流程、函数、 所引用的函数库等,编写完毕后另存成扩展名为.c、.cpp 等。不过,一个专属的程序开发环 境,还可以帮你管理项目内的多个程序,也可以利用颜色高亮来区分程序代码类的内容在这 个阶段,大家习惯的编辑环境不一样,只要使用方便即可。还是希望初学者能够找寻到合适 的编辑环境,除了可以帮助编写程序外,也可以省下许多宝贵的时间。 1.1.2 编译 前面说到,计算机、单片机等程序执行时,机器看得懂的只有 010101 的数字信号,而前 面编辑的步骤所使用的语法是为了方便开发者了解每个函数的功能:越高级的语言,越能让 开发者更直观了解函数的功能,程序所占的空间也会相应增加。这个阶段的工作就是将我们 编辑完的文字文件转换成机器码。这个步骤会帮你检查程序上的错误,并提出警告。因此这 个步骤完成后通常会回到前一个步骤将语法错误、逻辑错误的地方进行修正,直到编译器没 有产生错误提示为止。 但是,在开发单片机的程序是,特别要注意的是看不见的错误,举例来说:系统接着 5 个 LED 发光二极管,程序目标是要控制第二个的明暗变化,不过在程序编辑时,不小心将控 制目标变成了第四个,这样的错误在编译时是不会看到的,只有程序执行时才会发现错误, 你可能还会怀疑是否是硬件电路接错了,实际上却是程序的编辑错误。这种问题的发生在单 片机的开发过程中很常见,所以要特别注意。 1.1.3 链接 当我们的项目程序越来越大时,为了方便管理,通常会根据功能分成不同的文件,链接 的作用就是寻找程序当中所有用到的功能模块、内建函数库原始程序的位置,再与主程序结 合成为一个可执行文件。这时候产生的错误,可能是你使用了某个函数,却没有将其路径正 确引用,造成链接错误,此时便会提出警告。例如,使用数学相关的函数 MAX()、SIN()等, 都要引用 math.h 这个头文件。
https://www.wendangku.net/doc/c618432893.html,
松迅科技

Arduino 入门到精通 例程9-模拟值

Arduino 入门到精通例程9 模拟值读取实验 本个实验我们就来开始学习一下模拟I/O 接口的使用,Arduino 有模拟0—模拟5 共计6 个模拟接口,这6 个接口也可以算作为接口功能复用,除模拟接口功能以外,这6 个接口可作为数字接口使用,编号为数字14—数字19,简单了解以后,下面就来开始我们的实验。电位计是大家比较熟悉的典型的模拟值输出元件,本实验就用它来完成。 所需元器件有: 电位计*1 面包板*1 面包板跳线*1 扎 本实验我们将电位计的阻值转化为模拟值读取出来,然后显示到屏幕上,这也是我们以后完成自己所需的实验功能所必须掌握的实例应用。我们先要按照以下电路图连接实物图

我们使用的是模拟0 接口。 程序的编写也很简单,一个analogRead();语句就可以读出模拟口的值,Arduino 328是10 位的A/D 采集,所以读取的模拟值范围是0-1023,本个实验的程序里还有一个难点就是显示数值在屏幕这一问题,学习起来也是很简单的。首先我们要在voidsetup()里面设置波特率,显示数值属于Arduino 与PC 机通信,所以Arduino 的波特率应与PC 机软件设置的相同才能显示出正确的数值,否则将会显示乱码或是不显示,在Arduino 软件的监视窗口右下角有一个可以设置波特率的按钮,这里设置的波特率需要跟程序里void setup()里面设置波特率相同,程序设置波特率的语句为Serial.begin();括 号中为波特率的值。其次就是显示数值的语句了,Serial.print();或者Serial.println();都可以,不同的是后者显示完数值后自动回车,前者不是,更多的关于语句的讲解前面有 介绍这里就不再多说了。

《Arduino轻松学》慕课课程

《Arduino轻松学》慕课课程 学员手册 中国青少年科技辅导员协会 北京智感科技有限公司 二〇一七年十月

目录 一、欢迎辞 (1) 二、慕课课程介绍 (2) 2.1 学习目标 (2) 2.2 学习内容 (2) 2.3 学习方式 (4) 2.4 学习成果 (4) 2.4 学习奖励 (6) 三、在线学习平台使用说明 (6) 四、课程进度 (8) 五、讲师介绍 (9) 六、课程管理团队 (9)

一、欢迎辞 欢迎选修《Arduino轻松学》慕课课程! 《Arduino轻松学》是科普中国校园e站资源服务示范项目提供的通用性服务课程之一,面向项目示范校和所有科技辅导员开放。 科普中国校园e 站资源服务示范项目是在中国科协科普部指导下,由中国科协青少年科技中心和中国青少年科技辅导员协会联合推动的一项科普信息化建设工作,旨在为学校和科技辅导员利用信息化手段和科普中国的丰富科普教育资源开展线上线下相结合的青少年科技教育活动提供服务。示范项目携手各科技教育活动、STEM 课程和创客课程开发团队,不断为项目示范校提供多种在线课程服务。 Arduino作为目前热门的开源硬件平台,已经形成了完整的教育生态系统。借助其丰富的传感器及输入输出模块,只需简单的硬件连接,便可快速的实现有趣的交互体验,非常有利于科技辅导员激发学生兴趣、设计动手及实践体验课程。 本学习手册主要包括:课程介绍、在线学习平台使用说明、课程学习日程等。希望为各位学员尽快熟悉课程教学节奏、掌握课程学习方法提供帮助。望各位学员能够认真阅读学习手册。如有其它问题,欢迎在学习过程中给出您的反馈。 祝愿我们一起有一次愉快的在线学习之旅!也希望您在学习过程中主动关注课程邮件,真正成为学习的主人! 中国青少年科技辅导员协会 北京智感科技有限公司 二〇一七年十月

十个中文例程教会你轻松上手制作Arduino智能小车

十个中文例程教会你轻松上手制作Arduino智能小车 Arduino简介 Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的arduino 板)和软件(arduino IDE)。适用于艺术家、设计师、爱好者和对于“互动”有兴趣的朋友们。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器对Arduino的编程是利用Arduino编程语言(基于Wiring)和Arduino开发环境(based on Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信(比如Flash, Processing, MaxMSP)来实现。 你可以自己自己动手制作,也可以购买成品套装;Arduino所使用到的软件都可以免费下载。硬件参考设计(CAD 文件)也是遵循availableopen-source协议, 你可以非常自由地根据你自己的要求去修改他们。 本文精选了Arduino教程、例程、设计案例,集结了国内外官方资料和资深工程师的经验,是学习AArduino的必备宝典。 小车、机器人篇 1、Arduino互动玩偶BOXZ 此设计制作在2013年Atmel AVR英雄视频大赛中荣获奖励,并且参与了2014的深圳制汇节。BOXZ,昵称盒仔,其创意始于2012年6月初。当时的想法是设计一款基于Arduino 的入门级机器人,可以和三五好友在有限的空间里进行踢足球等互动,而且要做到取材容易制作简单,在设计的上采用了模块化的接插结构,同时还要注重外观拥有个性。 2、基于Arduino的自平衡遥控小车 车模平衡控制也是通过负反馈来实现的。因为车模有两个轮子着地,车体只会在轮子滚动的方向上发生倾斜。控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体平衡了。 3 当自家的遥控蓝牙小车坏掉的时候不是只能扔掉,作为创客不但要学会制造东西,更要学会修理东西,来看看这位创客是如何修理他的小车的吧!小车采用大电流MOSFET做的电机驱动驱动电机,用Atmega328单片机作为主控,读取航模遥控器(天六A 2.4G)的PWM 信号,然后电机驱动板,转向舵机直接接到航模遥控器的横滚通道控制转向,用天六的第5通道(开关通道)选择前进还是后退 4、基于Arduino的盒子遥控机器人 BOXZ,昵称盒仔。是一款开源的互动娱乐平台!我们将Arduino,亚克力板和纸模型创意的结合在一起,让大家可以快速搭建自己的遥控玩偶,开展互动体验,而它的组装就像搭乐高积木一样简单!而盒仔的外形和功能完全取决于您的创意。我们可以用它来搞足球比赛,角色扮演,赛车或对战,甚至拍MV!

相关文档
相关文档 最新文档