首页 > 电脑专区 > 电脑教程 >

Arduino入门教程 新手指南

电脑教程 2021-10-04 09:13:18

Arduino是一个开放源代码的电子原型平台,它是世界上最受欢迎的平台之一。已售出超过300万台(以第三方克隆设备的形式售出的更多产品),为何如此出色,并且您能用它做什么?

 什么是Arduino?

Arduino基于易于使用,灵活,硬件和软件。它是为艺术家,设计师,工程师,业余爱好者以及对可编程电子产品稍有兴趣的任何人而设计的。

Arduino入门:新手指南「上」 

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

您可能会问,为什么选择Arduino?Arduino确实简化了构建可编程电子项目的过程,使其成为初学者的绝佳平台。您无需任何电子经验即可轻松开始工作。

您可以用Arduino做些什么?

Arduino可以做很多事情。它们是大多数3D打印机的大脑选择。它们的低成本和易用性意味着成千上万的制造商,设计师,黑客和创作者都做出了惊人的项目。

Arduino内部是什么?

尽管有许多不同类型的Arduino板可用,但本手册重点介绍Arduino Uno模型。这是周围最受欢迎的Arduino开发板。规格如下: 处理器:

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

与您的台式计算机相比,这些配置似乎有些垃圾,但请记住,Arduino是嵌入式设备,与台式机相比,处理的信息要少得多。对于大多数电子项目来说,它具有强大的功能。 Arduino的另一个很棒的功能是能够使用所谓的"屏蔽"或附加板。

本指南需要什么

在下面,您将找到本初学者指南所需的组件的购物清单。此清单应足以使您对基本电子学有很好的了解,并具有足够的组件来使用此版本或任何其他Arduino指南来构建一些非常酷的项目。

  • 1个Arduino Uno
  • 1 x USB AB电缆(与打印机使用的相同)
  • 1 x 面包板
  • 2 x LED
  • 1 x 光电电阻
  • 1 x 轻触开关
  • 1 x 压电扬声器
  • 1 x 220欧姆电阻
  • 1 x 10k欧姆电阻
  • 1 x 1k欧姆电阻
  • 1 x 跳线套件
  • 如果您无法获得特定的电阻值,则通常尽可能地接近电阻可以正常工作。

电气元件概述

让我们看看所有这些组件到底是什么,它们做什么以及它们的外观。

面包板

它们用作电子电路的原型,提供了将组件连接在一起的临时方法。面包板是带有孔的塑料块,可将电线插入其中。孔排成行,每组五个。当您想重新布置电路时,将电线或零件从孔中拉出并移动。许多面包板在板的长度上沿侧面分布有两组或四组孔,并且全部相连-这些孔通常用于配电,并可能用红线和蓝线标记。

Arduino入门:新手指南「上」 

面包板非常适合快速生产电路。对于大型电路,它们可能会变得非常混乱。

发光二极管

LED代表发光二极管。它们是非常便宜的光源,并且可以非常明亮。它们可以以多种颜色购买,不会变热,并且使用寿命很长。您的电视,汽车仪表板等中可能有LED 。

Arduino入门:新手指南「上」 

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

光敏电阻

光电电阻(photocell或光敏电阻)使您的Arduino能够测量光的变化。例如,您可以使用它在白天时打开计算机。

Arduino入门:新手指南「上」 

 

按键开关

按键开关基本上是一个按钮。按下它将导通电路,并且(通常)从0V变为+ 5V。Arduino可以检测到此更改,并做出相应的响应。这些通常是瞬时的 ,意味着只有在您按住它们时才"按下"它们。放开后,它们将恢复为默认状态("未按下"或"关闭")。

Arduino入门:新手指南「上」 

蜂鸣器

蜂鸣器是一种很小的小扬声器,可以从电信号中产生声音。它们通常很刺耳,声音很小,听起来并不像真正的扬声器。也就是说,它们非常便宜,并且易于编程。

Arduino入门:新手指南「上」 

电阻器

电阻器限制电流。它们是非常便宜的组件,并且是业余和专业电子电路的重要组成部分。几乎总是需要它们来保护组件免于过载。如果Arduino + 5V直接接地,也需要防止短路。简而言之:非常方便并且绝对必要。

Arduino入门:新手指南「上」 

跳线

跳线用于在面包板上的组件之间建立临时连接。

Arduino入门:新手指南「上」

设置您的Arduino

在开始任何项目之前,您需要使Arduino与计算机对话。这使您可以编写和编译代码以供Arduino执行,以及为Arduino与计算机一起工作提供一种方式。

在Windows上安装Arduino软件包

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

Arduino入门:新手指南「中」 

Windows安装程序

该安装包括驱动程序,因此从理论上讲,双击即可立即安装。如果由于某种原因失败,请尝试以下步骤以手动安装驱动程序:

  • 插入板子并等待Windows开始其驱动程序安装过程。片刻之后,该过程仍失败。
  • 单击开始菜单 > 控制面板。
  • 导航到系统和安全性 > 系统。系统窗口打开后,打开设备管理器。
  • 在端口(COM&LPT)下,您应该看到一个名为Arduino UNO(COMxx)的开放端口。
  • 右键单击Arduino UNO(COMxx) > 更新驱动程序软件。
  • 选择浏览我的计算机以获取驱动程序软件。
  • 浏览并选择位于Arduino软件下载的Drivers文件夹中的Uno驱动程序文件ArduinoUNO.inf。

Arduino入门:新手指南「中」 

Windows安装程序

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

在Mac OS上安装Arduino软件包

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

Arduino入门:新手指南「中」 

Mac安装

在Ubuntu / Linux软件包上安装Arduino软件

安装gcc-avr和avr-libc:

sudo apt-get install gcc-avr avr-libc 

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

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

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

转到Arduino网站并下载适用于Linux的Arduino软件。您可以使用以下命令解压缩并运行它:

tar xzvf arduino-x.x.x-linux64.tgz cd arduino-1.0.1 ./arduino 

无论您运行的是哪种操作系统,以上说明均假定您拥有品牌的原装Arduino Uno开发板。如果您购买了克隆板,则几乎可以肯定需要第三方驱动程序,然后才能通过USB识别开发板。

运行Arduino软件

现在已经安装了软件并设置了Arduino,下面让我们验证一切是否正常。最简单的方法是使用" Blink"示例应用程序。

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

Arduino入门:新手指南「中」 

Arduino 闪烁

为了将此代码上传到Arduino,请在" 工具" >" 开发板"菜单中选择与您的开发板相对应的条目,在这种情况下为Arduino Uno。

Arduino入门:新手指南「中」 

Arduino Uno板

从工具 > 串行端口菜单中选择电路板的串行设备。在Windows上,这可能是COM3或其他。在Mac或Linux上,应该是/dev/tty.usbmodem。

Arduino入门:新手指南「中」 

Arduino端口

最后,点击环境左上方的" 上传"按钮。等待几秒钟,您应该会看到Arduino上的RX和TX LED闪烁。如果上传成功,则状态栏中将显示消息"完成上传"。

上传完成几秒钟后,您应该看到板上的13针 LED指示灯开始闪烁。恭喜你!您已经启动并运行了Arduino。

入门项目

现在您已经了解了基础知识,让我们看一些初学者的项目。

闪烁LED

您先前使用Arduino示例代码来使板上LED闪烁。该项目将使用面包板使外部LED闪烁。这是电路:

Arduino入门:新手指南「下」 

Arduino闪烁

将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,HIGH):用于将引脚设置为HIGH或LOW — 开启或关闭。就像电灯开关一样,当引脚为高电平时,LED点亮。当引脚为低电平时,LED将熄灭。在方括号内,您需要指定一些其他信息才能使其正常工作。附加信息称为参数或参数。

第一个(7)是引脚号。例如,如果您将LED连接到其他引脚,则可以将其从7更改为另一个数字。第二个参数必须为HIGH或LOW,它指定是打开还是关闭LED。

delay(1000):告诉Arduino等待指定的时间(以毫秒为单位)。1000毫秒等于一秒,因此这将使Arduino等待一秒钟。

LED点亮一秒钟后,Arduino将运行相同的代码,只有它继续关闭LED并等待另一秒钟。此过程完成后,循环将再次开始,并且LED会再次打开。

添加按钮

现在您的LED指示灯开始工作了,让我们在电路中添加一个按钮:

Arduino入门:新手指南「下」 

Arduino按钮

连接按钮,以便桥接面包板中间的通道。将右上脚连接到引脚4。将右下脚连接到10k Ohm电阻,然后接地。将左下脚连接到5V。

您可能想知道为什么简单的按钮需要电阻。这有两个目的。它是下拉电阻,将引脚接地。这可确保不会检测到任何虚假值,并防止Arduino 认为您未按时按下了按钮。该电阻器的第二个用途是作为电流限制器。如果没有它,5V将会直接进入地面,您的Arduino将会烧坏。这被称为短路,因此使用电阻器可以防止这种情况的发生。

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

这是代码:

boolean buttonOn = false; // store the button state 
void 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:
i f(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:此变量用于存储按钮的状态-ON或OFF,HIGH或LOW。它的默认值为false。

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

if(digitalRead(4)):以与digitalWrite( ),digitalRead()用于读取引脚的状态。您需要为其提供一个PIN码(按钮为4)。

按下按钮后,Arduino将等待25毫秒,然后再次检查按钮。这就是所谓的软件反跳。这样可以确保Arduino认为是按下按钮,实际上是按下按钮,而不是噪音。您不必这样做,并且在大多数情况下,没有它,一切都会很好地工作。

如果Arduino确定您确实确实按下过按钮,则它将更改buttonOn变量的值。这将切换状态:

ButtonOn为true:设置为false。

ButtonOn为false:设置为true。

最后,根据buttonOn中存储的状态将LED 熄灭。

光传感器

让我们进入一个高级项目。该项目将使用光敏电阻(LDR)来测量可用光量。然后,Arduino将告诉您的计算机有关当前亮度的有用信息。 这是电路:

Arduino入门:新手指南「下」 

Arduino LDR

由于LDR是电阻器的一种,因此放置它们的方式无关紧要-它们没有极性。将5V连接到LDR的一侧。通过1k Ohm电阻将另一侧接地。还将这一侧连接到模拟输入0。

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

这是代码:

int light = 0; // store the current light value 
void 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 = analogRead(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!
}

这段代码做了一些新的事情:

Serial.begin(9600):这告诉Arduino,您想以9600的速率通过串行进行通信。Arduino将为此做好一切准备。速率并不重要,但是您的Arduino和计算机都需要使用相同的速率。

AnalogRead(A0):用于读取来自LDR的值。较低的值表示有更多的可用光。

Serial.println():用于将文本写入串行接口。

简单的if语句根据可用的指示灯将不同的字符串(文本)发送到您的计算机。

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

让设备发声

该项目使用蜂鸣器发出声音。这是电路:

Arduino入门:新手指南「下」 

Arduino蜂鸣器

该电路几乎与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
}

这里只有一些新的代码功能:

tone(9,1000):这会使压电体产生声音。它有两个参数。第一个是要使用的引脚,第二个是音调的频率。

noTone(9):这将停止在插针上产生任何声音。


标签: ArduinoArduino入门教程Arduino新手指南

office教程网 Copyright © 2016-2020 https://www.office9.cn. Some Rights Reserved.