arduino入门:初学者指南

Arduino是一个基于灵活、易用硬件和软件的开源电子产品原型平台。它是专为艺术家,设计师,爱好者,和任何有兴趣创造互动对象或环境。...

Arduino是一个开源的电子产品原型平台,它是世界上最流行的平台之一——除了Raspberry Pi之外。销量超过300万台(更多的是以第三方克隆设备的形式):是什么让它这么好,你能用它做什么?

arduino-beginner-guide-featured

什么是阿杜伊诺(arduino)?

Arduino基于易用性、灵活性、硬件和软件。它是为艺术家、设计师、工程师、爱好者和任何对可编程电子有丝毫兴趣的人设计的。

Arduino

Arduino通过读取各种按钮、组件和传感器的数据来感知环境。它们可以通过控制LED、电机、伺服、继电器等来影响环境。

Arduino项目可以是独立的,或者可以与运行在计算机上的软件通信(处理是最流行的软件)。他们可以和其他的阿杜尼诺,覆盆子,野豆蔻,或者几乎任何其他的东西交谈。确保您阅读了我们对$5微控制器的比较,以便对这些微控制器之间的差异进行彻底比较。

你可能会问,为什么选择Arduino?Arduino确实简化了构建可编程电子项目的过程,使之成为初学者的一个很好的平台。你可以很容易地开始在一个没有以前的电子经验。有成千上万的教程可供使用,这些范围的困难,所以你可以肯定的挑战,一旦你掌握了基础知识。

除了Arduino的简单性之外,它还便宜、跨平台和开源。Arduino Uno(最流行的型号)基于Atmel的ATMEGA 16U2微控制器。有许多不同的型号生产,其中不同的大小,功率和规格,所以看看我们的购买指南的所有差异。

董事会的计划是根据知识共享许可证发布的,因此有经验的业余爱好者和其他**商可以自由地**他们自己的Arduino版本,有可能对其进行扩展和改进(或者直接复制,导致我们今天发现的低成本Arduino董事会的激增)。

你能用arduino做什么?

一个Arduino可以做很多事情。它们是大多数3D打印机的首选。它们的低成本和易用性意味着成千上万的**商、设计师、黑客和创造者已经做出了惊人的项目。以下是我们在MakeUseOf进行的Arduino项目:

  • 自定义快捷按钮
  • 电子D20模具
  • 雷射塔
  • Midi控制器
  • 带有OLED显示屏的复古游戏
  • 交通灯控制器

什么是在arduino里面(inside an arduino)?

尽管有许多不同类型的Arduino板可用,本手册重点介绍Arduino Uno型号。这是最流行的Arduino板。那么是什么让这件事发生的呢?以下是规格:

  • 处理器:16 Mhz ATmega16U2
  • 闪存:32KB
  • 内存:2KB
  • 工作电压:5V
  • 输入电压:7-12V
  • 模拟输入数:6
  • 数字I/O数:14(其中6个为脉宽调制—PWM)

与你的桌面电脑相比,这些规格看起来可能是垃圾,但请记住,Arduino是一个嵌入式设备,处理的信息比你的桌面少得多。对于大多数的电子项目来说,它是非常有能力的。

Arduino的另一个奇妙特性是能够使用所谓的“护盾”或附加板。虽然本手册中不包括防护罩,但它们是扩展Arduino特性和功能的一种非常简洁的方法。

这本指南需要什么

在下面,您将找到本初学者指南所需组件的购物清单。所有这些部件的总价都应该在50美元以下。这个清单应该足以让你很好地理解基本的电子学,并且有足够的组件来使用这个或任何其他的Arduino指南构建一些非常酷的项目。如果你不想选择每一个组件,你可以考虑购买一个初学者工具包代替。

  • 1个Arduino Uno
  • 1 x USB A-B电缆(与打印机所用的相同)
  • 1 x试验板
  • 2个LED
  • 1 x光电电阻器
  • 1个触觉开关
  • 1个压电扬声器
  • 1 x 220欧姆电阻器
  • 1 x 10k欧姆电阻器
  • 1 x 1k欧姆电阻器
  • 1 x跨接导线套件

如果你不能得到一个特定的电阻值,一些尽可能接近通常工作正常。

电气部件概述

让我们看看这些组件到底是什么,它们是做什么的,它们是什么样子的。

试验板

用于**电子电路的原型,它们提供了一种将元件连接在一起的临时方法。面包板是有孔的塑料块,可以**电线。孔排成一排,五个一组。如果要重新排列电路,请将导线或零件从孔中拉出,然后将其移动。许多面包板都有两到四组孔,沿着板的长度,沿着侧面,并且都是连接在一起的——这些孔通常用于配电,并且可以用红蓝线标记。

Breadboard

面包板非常适合快速**电路。他们可能会变得非常混乱的一个大电路,和便宜的型号可能是出了名的不可靠,所以值得花一点钱在一个好的。

发光二极管

LED代表发光二极管。它们是一种非常便宜的光源,而且可以非常明亮——特别是当组合在一起时。他们可以购买各种颜色,不得到特别热,并持续很长时间。您的电视、汽车仪表板或飞利浦色相灯泡中可能有LED。

LEDs

您的Arduino微控制器的引脚13上还有一个内置LED,该LED通常用于指示动作或事件,或仅用于测试。

光敏电阻

光电阻器(光电池或光依赖电阻器)允许您的Arduino测量光的变化。例如,你可以用它在白天打开电脑。

Photo Resistors

触摸开关

触觉开关基本上是一个按钮。按下它将完成电路,并且(通常)从0V变为+5V。Arduinos可以检测到这种变化,并做出相应的响应。它们通常是瞬间的——也就是说,只有当你的手指按住它们时,它们才会被“按下”。一旦放开,它们将恢复到默认状态(“未按下”或“关闭”)。

Tactile Switch

压电扬声器

压电扬声器是一个微小的扬声器,它通过电信号发出声音。他们往往是苛刻和耳鸣,并不像一个真正的发言者的声音。也就是说,它们非常便宜,而且易于编程。我们的buzzwire游戏使用一个来播放Monty Python“Flying Circus”主题曲。

Piezo

电阻器

电阻器限制电流。它们是非常便宜的元件,是业余和专业电子电路的主要产品。几乎总是需要它们来防止组件过载。如果Arduino+5V直接接地,还需要它们来防止短路。简而言之:非常方便,绝对必要。

Resistors

跨接导线

跨接导线用于在试验板上的组件之间创建临时连接。

Jumper Wires

设置arduino

在开始任何项目之前,你需要让你的Arduino和你的电脑通话。这允许您编写和编译要执行的Arduino代码,并为您的Arduino与您的计算机一起工作提供了一种方法。

在windows上安装arduino软件包

前往Arduino网站,下载适合您的Windows版本的Arduino软件版本。下载后,按照说明安装Arduino集成开发环境(IDE)。

Windows Setup

安装包括驱动程序,所以从理论上讲,你应该是好的去直接。如果由于某种原因失败,请尝试以下步骤手动安装驱动程序:

  • **电路板,等待Windows开始其驱动程序安装过程。过了一会儿,尽管尽了最大的努力,这个进程还是会失败。
  • 单击“开始”菜单>“控制面板”。
  • 导航至系统和安全>系统。系统窗口打开后,打开设备管理器。
  • 在Ports(COM&LPT)下,您应该看到一个名为Arduino UNO(COMxx)的开放端口。
  • 右键单击Arduino UNO(COMxx)>更新驱动程序软件。
  • 选择“浏览我的电脑以查找驱动程序软件”。
  • 导航到并选择Uno的驱动程序文件,名为阿杜伊诺诺.inf,位于Arduino软件下载的驱动程序文件夹中。

Windows Setup

Windows将从那里完成驱动程序的安装。

在mac os上安装arduino软件包

从Arduino网站下载Arduino Mac软件。提取.zip文件的内容并运行应用程序。你可以把它复制到你的应用程序文件夹中,但是它可以在你的桌面或下载文件夹中正常运行。您不需要为Arduino UNO安装任何其他驱动程序。

Mac Setup

在ubuntu/linux上安装arduino软件包

安装gcc avr和avr libc:

sudo apt-get install gcc-avr avr-libc

如果您还没有openjdk-6-jre,请安装并配置它:

sudo apt-get install openjdk-6-jresudo update-alternatives --config java

如果安装了多个JRE,请选择正确的JRE。

访问Arduino网站并下载Arduino Linux软件。您可以使用以下命令解压并运行它:

tar xzvf arduino-x.x.x-linux64.tgzcd arduino-1.0.1./arduino

不管您运行的是哪个操作系统,上面的说明都假设您有一个原始的、带有品牌的Arduino Uno板。如果您购买了一个克隆,您几乎肯定需要第三方驱动程序之前,董事会是通过USB识别。

运行arduino软件

现在软件已经安装好,Arduino也已经安装好了,让我们来验证一下一切都正常。最简单的方法是使用“Blink”示例应用程序。

双击Arduino应用程序打开Arduino软件(Linux上为/Arduino)。确保电路板已连接到计算机,然后打开LED闪烁示例草图:File>Examples>1.Basics>blink。您应该看到打开的应用程序代码:

Arduino Blink

要将此代码上载到Arduino,请在Tools>Board菜单中选择与您的型号相对应的条目—本例中为Arduino Uno。

Arduino Board

从“工具”>“串行端口”菜单中选择主板的串行设备。在Windows上,这可能是COM3或更高。在Mac或Linux上,这应该与/dev有关/美国模式在里面。

Arduino Port

最后,单击环境左上角的上载按钮。等几秒钟,您应该看到Arduino上的RX和TX LED闪烁。如果上载成功,状态栏中将显示消息“完成上载”。

上传完成后几秒钟,您应该看到板上的引脚13 LED开始闪烁。祝贺 你!你的阿杜诺已经开始跑了。

启动项目

既然你已经知道了基础知识,让我们看看一些初学者的项目。

闪烁led

您以前使用Arduino示例代码闪烁车载LED。这个项目将闪烁一个外部LED使用的实验板。电路如下:

Arduino Blink

将LED的长脚(正极脚,称为阳极)连接到220欧姆电阻器,然后连接到数字引脚7。将短脚(负脚,称为阴极)直接接地(任何带有GND的Arduino端口,由您选择)。这是一个简单的电路。Arduino可以数字控制这个引脚。打开引脚将点亮LED,关闭引脚将关闭LED。电阻是保护LED不受太大电流影响的必要条件——没有电阻就会烧坏。

以下是您需要的代码:

void setup() { // put your setup code here, to run once: pinMode(7, OUTPUT); // configure the pin as an output}void loop() { // put your main code here, to run repeatedly: digitalWrite(7, HIGH); // turn LED on delay(1000); // wait 1 second digitalWrite(7, LOW); // turn LED off delay(1000); // wait one second}

此代码执行以下操作:

void setup():Arduino每次启动时都会运行一次。在这里您可以配置变量和Arduino需要运行的任何东西。

pinMode(7,OUTPUT):这告诉Arduino使用这个引脚作为输出,如果没有这条线,Arduino将不知道如何处理每个引脚。每个管脚只需要配置一次,您只需要配置要使用的管脚。

void loop():此循环中的任何代码都会反复运行,直到Arduino关闭。这可以使更大的项目变得更复杂,但对于简单的项目来说,它的效果却出奇的好。

digitalWrite(7,高):这是用来设置引脚高或低-开或关。就像一个电灯开关,当引脚高的时候,LED就会亮。引脚低时,LED将熄灭。在方括号内,您需要指定一些附加信息才能使其正常工作。其他信息称为参数或参数。

第一个(7)是pin码。例如,如果您已将LED连接到另一个管脚,您可以将其从7更改为另一个数字。第二个参数必须是HIGH或LOW,用于指定是打开还是关闭LED。

延迟(1000):通知Arduino等待指定的时间量(毫秒)。1000毫秒等于1秒,因此这将使Arduino等待1秒。

一旦LED被打开一秒钟,Arduino将运行相同的代码,只有它继续关闭LED,然后等待另一秒。一旦这个过程完成,循环再次启动,LED再次打开。

挑战:尝试调整LED开启和关闭之间的时间延迟。你观察到了什么?如果您将延迟设置为一个非常小的数字(例如1或2),会发生什么情况?你能修改代码和电路使两个发光二极管闪烁吗?

添加按钮

现在有一个发光二极管工作,让我们在电路中添加一个按钮:

Arduino Button

连接按钮,使其桥接在试验板中间的通道。将右上支腿连接到针脚4。将右下支腿连接到10k欧姆电阻器,然后接地。将左下脚连接到5V。

你可能想知道为什么一个简单的按钮需要一个电阻器。这有两个目的。它是一个下拉电阻器——它将引脚连接到地上。这可以确保没有虚假的值被检测到,并防止Arduino认为你按下了按钮,而你没有。该电阻器的第二个用途是用作限流器。没有它,5V将直接进入地面,魔法烟雾将被释放,你的Arduino将死亡。这被称为短路,所以使用电阻器可以防止这种情况发生。

未按下按钮时,Arduino会检测到接地(引脚4>电阻器>接地)。按下按钮时,5V接地。Arduino针脚4可以检测到这种变化,因为针脚4现在已从接地变为5V;

代码如下:

boolean buttonOn = false; // store the button statevoid setup() { // put your setup code here, to run once: pinMode(7, OUTPUT); // configure the LED as an output pinMode(4, INPUT); // configure the button as an input}void loop() { // put your main code here, to run repeatedly: if(digitalRead(4)) { delay(25); if(digitalRead(4)) { // if button was pressed (and was not a spurious signal) if(buttonOn) // toggle button state buttonOn = false; else buttonOn = true; delay(500); // wait 0.5s -- don't run the code multiple times } } if(buttonOn) digitalWrite(7, LOW); // turn LED off else digitalWrite(7, HIGH); // turn LED on}

此代码建立在上一节所学内容的基础上。您使用的硬件按钮是一个瞬时动作。这意味着它只能在你按住它的时候工作。另一种方法是锁定操作。这就像你的灯或插座开关,按一次打开,再按一次关闭。幸运的是,锁存行为可以在代码中实现。下面是附加代码的作用:

boolean buttonOn=false:此变量用于存储按钮的状态——开或关、高或低。它的默认值为false。

pinMode(4,INPUT):与LED使用的代码非常相似,这行告诉Arduino您已将输入(您的按钮)连接到pin4。

if(digitalRead(4)):与digitalWrite()类似,digitalRead()用于读取管脚的状态。您需要为它提供一个pin码(4,用于您的按钮)。

一旦按下按钮,Arduino将等待25毫秒并再次检查按钮。这就是所谓的软件去抖动。这确保了Arduino所认为的是一个按钮按下,实际上是一个按钮按下,而不是噪音。你不必这么做,在大多数情况下,没有它一切都会很好。这更像是一种最佳实践。

如果Arduino确定您确实按下了按钮,那么它将更改按钮的值(非变量)。这将切换状态:

ButtonOn为true:设置为false。

ButtonOn为false:设置为true。

最后,LED根据buttonOn中存储的状态打开或关闭。

光传感器

让我们进入一个高级项目。本项目将使用一个与光相关的电阻器(LDR)来测量可用光的数量。然后,Arduino将告诉您的计算机有关当前光照水平的有用信息。

电路如下:

Arduino LDR

因为LDR是一种电阻器,所以不管它们放在哪一个方向——它们没有极性。将5V电压连接到LDR的一侧。另一侧通过1k欧姆电阻器接地。同时将此侧连接到模拟输入0。

这个电阻器充当一个下拉电阻器,就像在以前的项目中一样。需要一个模拟引脚,因为LDR是模拟设备,这些引脚包含用于精确读取模拟硬件的特殊电路。

代码如下:

int light = 0; // store the current light valuevoid setup() { // put your setup code here, to run once: Serial.begin(9600); //configure serial to talk to computer}void loop() { // put your main code here, to run repeatedly: light = ****ogRead(A0); // read and save value from LDR //tell computer the light level if(light < 100) { Serial.println("It is quite light!"); } else if(light > 100 && light < 400) { Serial.println("It is average light!"); } else { Serial.println("It is pretty dark!"); } delay(500); // don't spam the computer!}

此代码提供了一些新功能:

序列号.开始(9600):这告诉Arduino您希望以9600的速率通过串行通信。Arduino将为此准备一切必要的东西。速率不是很重要,但是你的Arduino和电脑需要使用同一个速率。

模拟读取(A0):用于读取来自LDR的值。较低的值意味着有更多的光可用。

序列号.println():用于向串行接口写入文本。

简单的if语句根据可用的灯光向计算机发送不同的字符串(文本)。

上传此代码并保持USB电缆连接(这就是Arduino的通信方式,以及电源的来源)。打开串行监视器(右上角&gt;串行监视器),您应该会看到消息每0.5秒到达一次。

你观察到了什么?如果你盖住LDR或用强光照射它会发生什么?您能修改代码以通过串行打印LDR的值吗?

**一些噪音

这个项目使用压电扬声器发出声音。电路如下:

Arduino Piezo

注意到熟悉的东西了吗?这个电路与LED项目几乎完全相同。压电元件是非常简单的元件——当给定电信号时,它们会发出声音。通过220欧姆电阻器将正极引线连接到数字引脚9。将负极接地。

下面是代码,对于这个项目来说非常简单:

void setup() { // put your setup code here, to run once: pinMode(9, OUTPUT); // configure piezo as output}void loop() { // put your main code here, to run repeatedly: tone(9, 1000); // make piezo buzz delay(1000); // wait 1s noTone(9); // stop sound delay(1000); // wait 1s}

这里只有几个新的代码功能:

音调(9,1000):这使得压电产生声音。这需要两个论点。第一个是要使用的pin码,第二个是音调的频率。

noTone(9):这将停止在提供的引脚上产生任何声音。

尝试更改此代码以产生不同的频率。把延迟改为1毫秒--你注意到什么了?

从这里到哪里去

正如你所看到的,Arduino是一个进入电子和软件领域的简单方法。它是初学者最好的微控制器之一。希望您已经看到,使用Arduino构建简单的电子项目很容易。一旦您了解了基本项目,就可以构建更复杂的项目:

  • 创造圣诞灯饰品
  • Arduino盾牌为你的项目提供超能力
  • 用Arduino打造你自己的乒乓球游戏
  • 将Arduino连接到internet
  • 使用Arduino创建家庭自动化系统

你拥有什么Arduino?你喜欢做什么有趣的项目吗?更多的,看看如何更好地使用VS代码和Platformo来更好地编码Arduino。

  • 发表于 2021-03-14 15:19
  • 阅读 ( 295 )
  • 分类:IT

你可能感兴趣的文章

这些diy圣诞电子产品项目的成本都不到5美元

... Tran,它使用简单廉价的元件,只需几美分(通常在Arduino初学者工具包中就可以找到),为附近地区注入一些圣诞节的欢乐! ...

  • 发布于 2021-03-12 02:23
  • 阅读 ( 247 )

今年你能做的7个arduino圣诞项目

也许你最近收到了一个Arduino初学者工具包作为礼物,或者你一直听说修补匠有一个很棒的爱好,你想尝试一下,或者你是一个Arduino专业人士,只是需要一些有趣的想法来度过假期。如果是这样,你来对地方了。 ...

  • 发布于 2021-03-12 03:34
  • 阅读 ( 319 )

6个显示器从arduino输出数据

...个Arduino。你已经学会了一些基础知识,也许你已经按照初学者指南开始了。接下来呢? ...

  • 发布于 2021-03-12 19:42
  • 阅读 ( 260 )

6种将arduino连接到android的简单方法

...完全相同的,而且这些部件的可用性使它成为一个优秀的初学者项目。 ...

  • 发布于 2021-03-12 23:13
  • 阅读 ( 353 )

作为一个arduino初学者不要犯的10个错误

...总是在增长。我们之前讨论过Arduino入门,有很多优秀的初学者项目可以让你熟悉,所以没有理由不直接加入! ...

  • 发布于 2021-03-13 03:20
  • 阅读 ( 249 )

arduino nano利弊:最便宜的arduino值得吗?

... 初学者的好平台。 小巧的尺寸使它非常适合紧凑型项目。 在功能上与较大的同类产品相同。 安装在试验板上,使原型**更容易...

  • 发布于 2021-03-13 04:51
  • 阅读 ( 311 )

如何用arduino遥控你的家,5个diy项目

... 如果您以前从未使用过Arduino,请不要担心--我们的初学者指南涵盖了您需要了解的所有内容。 ...

  • 发布于 2021-03-13 11:21
  • 阅读 ( 285 )

9个最好的pi编程资源,把你的树莓pi使用

... Chin的refcard深入研究了Java编程。尽管如此,它仍然是初学者友好的。这个refcard涵盖了从设置到Java编程以及测试I/O库的所有内容。因此,带有Java和Raspberry Pi refcard的DZone IoT应用程序提供了全面的软件和硬件概述。DZone的IoT部...

  • 发布于 2021-03-14 03:57
  • 阅读 ( 236 )

arduino入门:初学者指南

...Arduino确实简化了构建可编程电子项目的过程,使之成为初学者的一个很好的平台。你可以很容易地开始在一个没有以前的电子经验。有成千上万的教程可供使用,这些范围的困难,所以你可以肯定的挑战,一旦你掌握了基础知...

  • 发布于 2021-03-14 15:19
  • 阅读 ( 295 )

初学者arduino编程:红绿灯控制器项目教程

Arduino红绿灯是一个有趣的小项目,你可以在一个小时内建成。下面介绍如何使用Arduino构建自己的电路,以及如何为高级变体更改电路。 ...

  • 发布于 2021-03-18 03:37
  • 阅读 ( 261 )