Arduino 入门






4.92/5 (28投票s)
让我们来学习一些关于 Arduino 的知识,并开始我们的 IOT 之旅!
引言
作为一名 Web 应用程序开发者,伴随着物联网(IOT)的喧嚣,我感到自己被远远甩在了人群后面。于是,我决定开始我的物联网学习之旅。由于我在这方面还是个新手,我将持续分享我的摸索经验,因为我相信会有很多人也期待着这样的摸索。
我决定使用 ARDUINO 开发板来开启我的学习体验。为什么?因为它经济实惠、易于使用,并且拥有自己的 IDE,让我们能够编写代码并上传到开发板。让我们首先了解一些关于 Arduino 的知识。
ARDUINO
Arduino 是一种简单的微控制器,基于输入输出接收单元。我们可以将其连接到任何传感器、LED、开关等。最棒的是它是开源的,易于理解和使用。你也可以为 Arduino 社区贡献,创建自己的原型编程。对于初学者来说,Arduino 是最好的选择,我想说!
要开始使用,你首先需要一块 Arduino 开发板。:P 所以以非常低廉的价格在线购买,大约 500 印度卢比(印度货币!)。我将使用 Arduino UNO 开发板。
上面是简单的 Arduino 开发板,它可以创造奇迹。让我们了解图中提到的要点及其用法!
- 1 - USB 插孔:这是连接的母端口,用于插入线缆以建立与计算机的连接,从而访问 IDE 并上传程序。
通常是 2.0 USB 端口。输入和输出通过此端口进行,我们可以将其视为开发板的起点。通常可接受的电压是
- 输入电压(可接受)- 7-12V
- 输入电压(限制)- 6-20V
- 2 - 电源插孔:顾名思义,它是外部电源。但使用时要小心,使用万用表检查可传输到开发板的电源是否在可接受的限制内,以避免短路。
- 3- GND 引脚:接地引脚,用于连接跳线以形成接地电路。通常,当我们查看连接时,会发现 GND 引脚被认为是负电源。
- 4 - 5V 电源: 这是用于向面包板提供 5V 电源以驱动电路的点,我们稍后会进行检查。
- 5 - 3.3V 电源:这是用于向面包板提供 3.3V 电源以驱动电路的点。与 5V 相同,但根据我们的电路要求,在我们缺少电阻器的情况下也可以使用它。
- IOREF:虽然在图中没有编号,但这是开发板上一个有趣的端口,它提供微控制器或 Arduino 开发板运行所需的电压参考。
- Vin: 如上所述关于开发板的外部电源,要将电压传递到电路(外部),我们可以使用此端口。
- 6 - 模拟输入引脚: 这些是开发板上的模拟点,有助于将模拟输入转换为数字输入。通常用于读取模拟信号。
- 7,8,9 - 数字引脚:这些数字引脚为电路提供上传的代码以进行连接(通俗地说)。用于数字 I/O。
- 10 - 复位按钮: 不言自明,用于复位微控制器或开发板。
- 11 - ON: 连接到 USB 时,此绿色 LED 会亮起,告知我们开发板已通电。
- 14 - 稳压器: 提供给 Arduino 开发板的稳压器。
- 12 - RX-TX LED: 这些 LED 在代码或程序成功上传到微控制器时亮起。这是我目前遇到的实际情况!
有关引脚的更多信息,请参阅 Arduino 引脚。
这就是关于 Arduino 开发板的全部内容,我想说这是一个简要的总结。还有更多内容。请参考 此处。
一些先决条件
以下是学习和开始使用 Arduino 所需的一些先决条件。在您从市场获得 Arduino 开发板后,下一步是在您的系统上安装 Arduino IDE,以便与微控制器进行交互。
要安装 IDE,请访问此链接:Arduino IDE 下载。在这里,您会看到可以安装的操作系统列表,这证明它是跨平台的!:O 哇!又一个很棒的功能!
安装完成后,您需要通过连接线将 USB 插孔连接到电脑,从而连接 Arduino。
IDE 大致如下
请注意下面突出显示的部分,它显示 Arduino UNO 在 COM3 上。COM3 是一个串行端口 ID,这表明我们选择 COM3 端口上的开发板连接。
对于 MAC 上的操作,请点击 此处 的链接。选择在以下路径下进行
工具-> 端口-> “选择”
您看到的默认代码如下
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
非常简单易懂。它首先执行设置,然后执行循环代码以完成您配置的主要任务。代码中内置了许多示例程序,我们可以在以下位置找到它们
文件->示例->基本->闪烁。
运行“闪烁”程序并尝试理解它做了什么。这非常简单。
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
Serial.begin(9600);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(13, LOW); // turn the LED off(LOW is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, HIGH); // turn the LED ON by making the voltage HIGH
delay(1000); // wait for a second
}
这里,`pinMode` 函数激活您指定为输入或输出的引脚。这里是引脚 13,并且是输出。引脚 13 众所周知是默认的 LED。这里它设置了引脚,然后在循环方法中,我们找到了带有 digital-Write 前缀的方法,它表示连接在数字引脚上。我们看到的方法具有引脚端口号和另一个参数 LOW/HIGH,可以认为是 1/0,以点亮和熄灭 LED 13。已经给出了延迟,以指定 LED 在指定的延迟时间内亮起。
在检查我们即将构建的电路之前,让我们先看看要使用的其他组件。
- 面包板:所有电气或工程专业的学生都熟悉的电路板。
我们还是简单介绍一下。正如我们在图中看到的,+ 符号表示电压连接到此端口。整条线,按列连接。加号列中的每个孔都在内部连接。您可以使用万用表检查和验证面包板。
同样适用于 - 符号列。但是,这通常用于连接 Arduino 的接地引脚。a,b,c,d.. 列用于连接 LED 和电阻器,我们稍后会看到。与 +/- 不同,它们在内部是按行连接的。
- 跳线:这些是用于连接 Arduino 和面包板端口的连接线。它们价格低廉且可靠。它们看起来像
- 一些 LED 和电阻器。
接下来是设计我们的电路,它看起来像
以上是基本的面包板连接电路。我将提供整个电路连接的图片。在本文中,我将分享如何通过串口获取用户输入并用它来点亮和熄灭 LED。电路连接如下图所示
连接图如下
以上图表仅供参考。如有任何疑问,您可以提出与连接相关的查询。
如您所见,我使用引脚 13 将 Arduino 程序连接到面包板。也就是说,上传的程序将用于通过引脚 13 控制 LED 的开/关。让我们看一下相关的代码
int userInput = 0;
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
Serial.begin(9600);
}
// the loop function runs over and over again forever
void loop() {
if (Serial.available() > 0) {
// read the incoming byte:
userInput = Serial.read();
// say what you got:
Serial.print("Received Input: ");
Serial.println(userInput, DEC);
}
if(userInput==49){ //As checked through, if 1 is pressed,
//the result comes to be 49 based on the ASCII code
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
}else{
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
}
因此,以上代码简单易懂。我们使用了串口来跟踪用户输入,这是 Arduino IDE 的一部分。
在这里,用户输入,我们的代码会检查,如果输入 1(ASCII 码 49),LED 就会亮起,如果按下任何其他键,LED 就会熄灭。
结论
我们简要介绍了 Arduino 开发板及相关电路,并通过 Arduino IDE 上传了基本的 Arduino 开发板编程。同样的理念可以应用于检测房间内的移动,如果没有移动,则使用运动检测传感器关闭房间的 MCB!各位,就是这样!我真的觉得这很有趣,这无疑是未来!物联网是未来。我希望能够连接更多的传感器并进行编程!我会做好我的功课!如果所有开发者都能投身其中并创造奇迹,那将是太棒了!!分享您的经验,如果我错了,也请纠正我!我仍在学习阶段。