什么是网络协议?网络协议指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合,是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通......
Arduino入门教程 新手指南
Arduino是一个开放源代码的电子原型平台,它是世界上最受欢迎的平台之一。已售出超过300万台(以第三方克隆设备的形式售出的更多产品),为何如此出色,并且您能用它做什么?
什么是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 跳线套件
- 如果您无法获得特定的电阻值,则通常尽可能地接近电阻可以正常工作。
电气元件概述
让我们看看所有这些组件到底是什么,它们做什么以及它们的外观。
面包板
它们用作电子电路的原型,提供了将组件连接在一起的临时方法。面包板是带有孔的塑料块,可将电线插入其中。孔排成行,每组五个。当您想重新布置电路时,将电线或零件从孔中拉出并移动。许多面包板在板的长度上沿侧面分布有两组或四组孔,并且全部相连-这些孔通常用于配电,并可能用红线和蓝线标记。
面包板非常适合快速生产电路。对于大型电路,它们可能会变得非常混乱。
发光二极管
LED代表发光二极管。它们是非常便宜的光源,并且可以非常明亮。它们可以以多种颜色购买,不会变热,并且使用寿命很长。您的电视,汽车仪表板等中可能有LED 。
您的Arduino微控制器在插针13上还具有一个内置LED,通常用于指示一个动作或事件,或仅用于测试。
光敏电阻
光电电阻(photocell或光敏电阻)使您的Arduino能够测量光的变化。例如,您可以使用它在白天时打开计算机。
按键开关
按键开关基本上是一个按钮。按下它将导通电路,并且(通常)从0V变为+ 5V。Arduino可以检测到此更改,并做出相应的响应。这些通常是瞬时的 ,意味着只有在您按住它们时才"按下"它们。放开后,它们将恢复为默认状态("未按下"或"关闭")。
蜂鸣器
蜂鸣器是一种很小的小扬声器,可以从电信号中产生声音。它们通常很刺耳,声音很小,听起来并不像真正的扬声器。也就是说,它们非常便宜,并且易于编程。
电阻器
电阻器限制电流。它们是非常便宜的组件,并且是业余和专业电子电路的重要组成部分。几乎总是需要它们来保护组件免于过载。如果Arduino + 5V直接接地,也需要防止短路。简而言之:非常方便并且绝对必要。
跳线
跳线用于在面包板上的组件之间建立临时连接。
设置您的Arduino
在开始任何项目之前,您需要使Arduino与计算机对话。这使您可以编写和编译代码以供Arduino执行,以及为Arduino与计算机一起工作提供一种方式。
在Windows上安装Arduino软件包
前往Arduino网站并下载适用于您的Windows版本的Arduino软件版本。下载完成后,请按照说明安装Arduino 集成开发环境(IDE)。
Windows安装程序
该安装包括驱动程序,因此从理论上讲,双击即可立即安装。如果由于某种原因失败,请尝试以下步骤以手动安装驱动程序:
- 插入板子并等待Windows开始其驱动程序安装过程。片刻之后,该过程仍失败。
- 单击开始菜单 > 控制面板。
- 导航到系统和安全性 > 系统。系统窗口打开后,打开设备管理器。
- 在端口(COM&LPT)下,您应该看到一个名为Arduino UNO(COMxx)的开放端口。
- 右键单击Arduino UNO(COMxx) > 更新驱动程序软件。
- 选择浏览我的计算机以获取驱动程序软件。
- 浏览并选择位于Arduino软件下载的Drivers文件夹中的Uno驱动程序文件ArduinoUNO.inf。
Windows安装程序
Windows将在那里完成驱动程序的安装。
在Mac OS上安装Arduino软件包
从Arduino网站下载适用于Mac的Arduino软件。提取.zip文件的内容并运行该应用程序。您可以将其复制到应用程序文件夹中,但是它将在您的桌面或下载文件夹中正常运行。您不需要为Arduino UNO安装任何其他驱动程序。
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 Uno。
Arduino Uno板
从工具 > 串行端口菜单中选择电路板的串行设备。在Windows上,这可能是COM3或其他。在Mac或Linux上,应该是/dev/tty.usbmodem。
Arduino端口
最后,点击环境左上方的" 上传"按钮。等待几秒钟,您应该会看到Arduino上的RX和TX LED闪烁。如果上传成功,则状态栏中将显示消息"完成上传"。
上传完成几秒钟后,您应该看到板上的13针 LED指示灯开始闪烁。恭喜你!您已经启动并运行了Arduino。
入门项目
现在您已经了解了基础知识,让我们看一些初学者的项目。
闪烁LED
您先前使用Arduino示例代码来使板上LED闪烁。该项目将使用面包板使外部LED闪烁。这是电路:
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按钮
连接按钮,以便桥接面包板中间的通道。将右上脚连接到引脚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 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蜂鸣器
该电路几乎与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新手指南
相关文章
- 详细阅读
-
区块链核心技术体系架构的网络层主要包括什么详细阅读
区块链核心技术体系架构的网络层主要包括:A、网络管理B、P2P网络C、HTD、发现节点E、心跳服务网络管理网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视......
2022-04-28 328 区块链核心技术
-
软件调试的目的是什么详细阅读
软件调试的目的是:改正错误。软件调试的概念软件调试是泛指重现软件缺陷问题,定位和查找问题根源,最终解决问题的过程。软件调试通常有如下两种不同的定义:定义1:软件调试是为了......
2022-04-28 359 软件调试
- 详细阅读
- 详细阅读