我们不仅销售产品,我们还传播知识
商品分类

Arduino入门

Arduino平台自2005年成立以来,已发展成为电子和嵌入式设计领域最知名的品牌之一。
但是Arduino的基石是什么?什么是“板”,我如何为它编写代码,以及创建自己的项目需要哪些工具?本指南的目标是为您提供Arduino项目的概述。

在本指南中,您将获得Arduino生态系统的概述。

概述

本指南分为四个主要部分:硬件软件工具Arduino API 和快速参考。您可以通过侧边导航栏直接导航到这些部分:

Arduino硬件

在本节中,我们将花一些时间来了解电子学的一些基础知识,以及Arduino板的基本操作。

  • Arduino板剖析
  • 基本操作
  • 电路基础知识
  • 电子信号
  • 模拟信号
  • 数字信号
  • 传感器和执行器
  • 串行通信协议
  • 存储
  • 嵌入式传感器
  • 物联网 (IoT)

Arduino API

在本节中,您将了解Arduino API是什么,以及如何创建可以在Arduino板上运行的代码。

  • 主要部件
  • 程序结构
  • “Sketch”
  • 示例程序
  • 核心特定 API

Arduino软件工具

在本节中,您将学习如何设置开发环境,以及了解有哪些选项。

  • 经典工作流程
  • Arduino IDE 1.8.x
  • Arduino IDE 2
  • Arduino云
  • 网络编辑器
  • 库管理器
  • Arduino CLI

快速参考

快速参考是从完整的Arduino API中摘录的,包含流行的函数,结构和方法。

  • 常规
  • 串行通信
  • GPIO/引脚管理
  • 结构

Arduino硬件

多年来,Arduino已经发布了数百种各种形状和形式的硬件设计。

Arduino板剖析

虽然所有Arduino板都各不相同,但几乎可以在任何Arduino上找到几个关键组件。让我们看一下下图:
Arduino入门

  • 1. 微控制器 – 这是Arduino的大脑,也是我们加载程序的组件。把它想象成一台微型计算机,设计用于执行特定数量的事情。
  • 2. USB端口 – 用于将Arduino板连接到计算机。
  • 3. USB 转串口芯片 – USB 转串口是一个重要的组件,因为它有助于将来自计算机等的数据转换为板载微控制器。这就是从您的计算机对Arduino板进行编程成为可能的原因。
  • 4. 数字引脚 – 使用数字逻辑(0,1 或 LOW/HIGH)的引脚。通常用于开关和打开/关闭 LED。
  • 5. 模拟引脚 – 可以读取 10 位分辨率 (0-1023) 模拟值的引脚。
  • 6. 5V / 3.3V 引脚 – 这些引脚用于为外部组件供电。
  • 7. GND – 也称为 ,或简称 ,用于完成电路,其中电平为 0 伏。ground negative-
  • 8. VIN – 代表 Voltage In,您可以在其中连接外部电源。

根据Arduino板的不同,您会发现更多的组件。上面列出的项目通常可以在任何Arduino板上找到。

基本操作

大多数Arduino板设计为在微控制器上运行单个程序。该程序可以设计为执行单个操作,例如闪烁 LED。它还可以设计为在一个周期中执行数百个操作。范围因程序而异。
加载到微控制器的程序将在通电后立即开始执行。每个程序都有一个称为“循环”的函数。在循环函数中,您可以例如:

  • 读取传感器
  • 打开一盏灯
  • 检查是否满足条件
  • 以上所有

程序的速度非常快,除非我们告诉它放慢速度。这取决于程序的大小以及微控制器执行程序所需的时间,但通常以 微秒(百万分之一秒) 为单位。
Arduino入门
图 Arduino的基本操作

电路基础知识

电路由至少一个有源电子元件和导电材料(如导线)组成,以便电流可以通过。使用Arduino时,在大多数情况下,您将为您的项目构建电路。
电路的一个简单例子是 LED 电路。一根电线从Arduino上的引脚连接到LED,通过电阻器连接到LED(以保护LED免受大电流的影响),最后连接到接地引脚(GND)。当引脚设置为高电平状态时,Arduino板上的微控制器将允许电流流过电路,从而打开LED。当引脚设置为低电平状态时,LED 将熄灭,因为电流不会流过电路。
Arduino入门

图 带有Arduino的LED电路。

电路通常表示为原理图,即电路的蓝图。下图显示了上图所示相同电路的原理图表示。
Arduino入门

电子信号

电子元件之间的所有通信都由**电子信号促进。**电子信号主要有两种类型:模拟信号和数字信号。

模拟信号

Arduino入门
图 模拟信号的基础知识

模拟信号通常绑定到一个范围。在Arduino中,该范围通常为0-5V或0-3.3V。
例如,如果我们使用电位计(用于改变电路电阻的模拟元件),我们可以手动调整此范围(0-5V)。在程序中,这以 0-1023 的范围表示,这是 10 位分辨率。
如果我们使用脉宽调制 (PWM) 编写模拟信号,我们可以使用 0-255 之间的范围,因为我们使用的是 8 位分辨率。

阅读有关模拟输入模拟输出 (PWM) 的更多信息。

数字信号

Arduino入门
图 数字信号的基础知识

数字信号的工作方式略有不同,仅表示两个二进制状态(0 或 1),在程序中被读取为高或低状态。这是现代技术中最常见的信号类型。

您可以轻松地在Arduino上读取和写入数字信号,例如,这对于读取按钮状态或打开或关闭某些东西很有用。

数字信号可能看起来非常基本(只有 0 或 1),但实际上要先进得多。例如,我们可以通过多次快速发送高或低状态来创建序列。这称为二进制序列比特流

让我们看一下两个二进制序列:

101101
101110001110011

十进制格式为:

45
23667

这是一种通过快速发送高低信号将大量数据从一个点发送到另一个点的聪明方法。为了解释来自信号的数据,我们使用串行通信协议

传感器和执行器

使用Arduino时,了解传感器执行器以及它们之间的区别非常重要。

什么是传感器?

简单来说,传感器用于感知其环境,这意味着它记录物理参数(例如温度)并将其转换为电子信号。

传感器也可以采用简单按钮的形式:当状态发生变化时(我们按下按钮),电子信号从低电平切换到高电平(0 到 1)。

传感器有多种类型,以及从它们记录数据的几种方法。也许最容易使用的是模拟传感器,我们通过改变馈入Arduino模拟引脚的电压输入(通常在0-5伏之间)来传达一系列值。这仅为您提供了 0-1023(10 位分辨率)之间的范围。

数字传感器更先进一些,具体取决于类型。它们依靠串行通信协议来相应地发送数据,并且需要更多的努力来转换数据。如上面的“电子信号”部分所述,数据使用二进制序列发送101101(例如45 ),这需要在软件级别进行寻址和配置。幸运的是,许多传感器都带有软件库,这使得它更容易阅读。

在许多情况下,使用库时,我们只需要一行代码:

sensorValue = sensor.read();

什么是执行器?

简单来说,执行器用于驱动或改变物理状态。一些例子是:

  • 一盏灯(如 LED)
  • 电机
  • 一个开关

执行器将电信号转换为辐射能(光)或机械能(运动)。
执行器的控制方式实际上取决于我们拥有的组件类型。最简单的方法是简单地打开/关闭某些东西,而更高级的方法是控制组件接收的电压量(即电机的速度)。
为了控制执行器,通常使用digitalWrite()和analogWrite()

digitalWrite(LED, HIGH); //turn on an LED
digitalWrite(LED, LOW);  //turn off an LED

analogWrite(motor, 255); //set a motor to maximum capacity
analogWrite(motor, 25);  //set a motor to 10% of its capacity

输入和输出

传感器和执行器通常称为输入和输出。当我们编写程序时,通常会构造条件来检查传感器的状态,并决定它是否应该启动某些东西。
一个基本的例子是按钮和 LED。我们可以编写一个条件来检查按钮是否被按下,打开 LED,如果按钮未按下,则将其关闭。在Arduino程序中,它看起来像这样:

int buttonState = digitalRead(buttonPin);   //read and store the button state (0 or 1)

if(buttonState == HIGH){        //check if state is high (button is pressed)
    digitalWrite(LED, HIGH);    //turn on LED
} else {
    digitalWrite(LED, LOW);     //turn off LED
}

串行通信协议

有几种串行通信协议使用上述数字信号发送数据。最常见的是UART,SPI和I²C。UART协议用于在计算机和Arduino板之间发送数据,例如上传新程序或直接从Arduino读取数据。
SPI和I²C协议用于内部和外部组件之间的通信。通信由称为串行总线的东西处理,该总线连接到Arduino上的特定引脚。
使用I²C协议,我们可以在同一引脚上连接多个传感器,并准确地检索数据。每个设备都有一个地址,我们需要在程序中指定该地址,我们在发出数据请求时使用该地址。
Arduino SPI指南Arduino I2C指南中了解更多信息。

存储

“标准”Arduino通常有两个存储器:SRAM和闪存。
例如,SRAM(静态随机存取存储器)用于存储变量的值(例如布尔值的状态)。关机后,此内存将重置。
闪存主要用于存储主程序或微控制器的指令。该存储器在断电时不会被擦除,因此在电路板通电后立即执行微控制器的指令。
Arduino上可用的内存量因板而异。例如,Arduino UNO 具有 32kB 闪存/2kB SRAM,而 Nano 33 IoT 具有 256kB 闪存/32kB SRAM。您可以在每个产品的文档页面中找到此信息,这些页面可在Arduino硬件文档中找到。

要了解有关 Arduino 内存的更多信息,请访问 Arduino 内存指南

嵌入式传感器

Arduino入门
图 Nano RP2040 Connect 板上的 IMU(惯性测量单元)

许多新的Arduino板都配备了嵌入式传感器。例如,Nano 33 BLE Sense 有 7 个嵌入式传感器,但只有 45×18 毫米(拇指大小)。如上所述,它们都通过I²C协议连接,并具有唯一的地址。

物联网 (IoT)

现在,大多数现代Arduino板都配备了无线电模块,旨在进行无线通信。有几种不同的:Wi-Fi、蓝牙®、LoRa®、GSM、NB-IoT 等。每个都旨在使用市场上可用的各种技术进行通信。
Arduino入门
图 Nano RP2040 Connect 板上的 u-blox NINA-W102 Wi-Fi / 蓝牙®模块

最受欢迎和最便宜的模块是Wi-Fi和蓝牙®模块。Wi-Fi 模块允许您的开发板连接到路由器,并通过 Internet 请求和发送数据。在某种程度上,当通过 Internet 请求各种类型的数据时,它的工作方式与您的计算机相同,只是规模较小。

蓝牙®用于与附近的设备进行通信,对于保持快速可靠的连接非常有用。例如,在现实生活中的应用中,®蓝牙技术例如用于无线耳机和扬声器。

与串行协议类似,无线电模块使用自己的一套协议进行通信,例如 HTTP、MQTT 和 UPD。

Arduino API

访问 Arduino 语言参考,探索完整的 Arduino API。

主要部件

Arduino API 可以分为三个主要部分:函数、变量结构

  • 功能: 用于控制Arduino板和执行计算。例如,要将状态读取或写入数字引脚,请映射值或使用串行通信。
  • 变量: Arduino常量,数据类型和转换。例如 int boolean array
  • 结构: Arduino(C++)代码的元素,如
    • 程序(loop()、setup())
    • 控制结构(if else while for)
    • 算术运算符(乘法、加法、减法)
    • 比较运算符,例如 (等于==、不等于!=、大于>)

程序结构

Arduino程序的绝对最低要求是使用两个函数:和。“void”表示执行时不返回任何内容。void setup() void loop()

  • void setup()- 此功能仅在Arduino通电时执行一次。在这里,我们定义诸如引脚模式(输入或输出)、串行通信的波特率或库的初始化等内容。
  • void loop()- 在这里,我们编写了要一遍又一遍地执行的代码,例如根据输入打开/关闭灯,或者每 X 秒进行一次传感器读数。

The “Sketch”

在Arduino项目中,程序被称为“Sketch”。Sketch是您在其中编写程序的文件。它具有扩展名,并且始终存储在同名文件夹中。.ino

该文件夹可以包含可包含在程序中的其他文件,例如头文件

示例程序

下面是一个标准的Arduino程序的例子,其中包含一些流行的Arduino编程元素。

/* 
This is a comment at the top of a program, 
it will not be recognized as code. Very good 
to add an explanation of what your code does 
here.

This sketch shows how to read a value from a
sensor connected to pin A1, print it out in 
the Serial Monitor, and turn on an LED connected
to pin number 2 if a conditional is met.
*/

int sensorPin = A1; //define pin A1 (analog pin)
int ledPin = 2; //define pin 2 (digital pin)
int sensorValue; //create variable for storing readings

//void setup is for configurations on start up
void setup() { 
    Serial.begin(9600); //initialize serial communication
    pinMode(ledPin, OUTPUT); //define ledPin as an output
}

void loop() {
    sensorValue = analogRead(sensorPin); // do a sensor reading
    
    Serial.print("Sensor value is: "); //print a message to the serial monitor
    Serial.println(sensorValue); //print the value to the serial monitor
    
    //check if sensorValue is below 200
    if(sensorValue < 200) { 
        digitalWrite(ledPin, HIGH); //if it is, turn on the LED on pin 2.
    }
    //if sensorValue is above 200, turn off the LED
    else{ 
        digitalWrite(ledPin, LOW);
    }
}

Arduino库是标准Arduino API的扩展,由数千个库组成,包括官方库和社区贡献的库。
库简化了其他复杂代码的使用,例如读取特定传感器、控制电机或连接到 Internet。您不必自己编写所有这些代码,只需安装一个库,将其包含在代码顶部,然后使用它的任何可用功能即可。所有Arduino库都是开源的,任何人都可以免费使用。

若要使用库,需要将其包含在代码顶部,如下例所示:

#include <Library.h>

大多数库还具有一组示例,这些示例对于开始使用库很有用。

您可以在Arduino库页面中浏览所有官方和贡献库。

核心特定 API

每个Arduino板都需要一个“内核”或“封装”,需要安装才能对其进行编程。所有软件包都包含标准的Arduino API,但也包含只能与特定板一起使用的特定API。
例如,经典的 ArduinoCore-avr 封装自动包含 EEPROM 和 SoftwareSerial 库,无需任何额外安装即可自由使用。在此软件包中,您将找到经典的 Arduino UNO、Nano、Mega2560 等。
另一个例子是 ArduinoCore-mbed 软件包,它包括 40 多个库,专为特定板功能而设计,例如:

  • PDM – 用于从 Nano 33 BLE Sense 和 Nano RP2040 Connect 上的麦克风对音频进行采样。
  • 以太网 – 用于使用 Portenta Vision Shield 的以太网功能。
  • GSM – 访问 Portenta Cat 上的 GSM 功能。M1/NB 物联网 GNSS 扩展板。

这些功能记录在每个产品的文档登录页中。可以在 docs.arduino.cc 上找到所有硬件的列表。

Arduino软件工具

Arduino IDE可在软件下载页面免费下载。

Arduino生态系统的另一个组成部分是其软件工具。

通常所说的Arduino IDE是一个 集成开发环境。 但这究竟意味着什么?


为了对电路板进行编程,您需要编写一个程序,将该程序编译成机器代码,最后:将新程序发送到您的电路板。
Arduino IDE促进了所有这些,从编写的第一行代码开始,就可以在Arduino板的微控制器上执行。它是一个程序或应用程序,您可以下载(或使用在线版本)来管理您的所有代码开发。在过去,这是一个复杂的过程,需要一套良好的电子和计算机科学知识。现在,任何人都可以在Arduino IDE的帮助下学习如何做到这一点。

今天,有三种Arduino IDE可用:

  • Arduino IDE 1.8.x(经典)
  • Arduino IDE 2 (新)
  • Arduino Web 编辑器(在线)

典型工作流程

要使用 IDE 将代码上传到 Arduino 板,通常执行以下操作:

1. 安装您的开发板 – 这意味着为您的开发板安装正确的“软件包”。如果没有封装,您根本无法使用您的电路板。安装直接在 IDE 中完成,操作快速简便。
2. 创建一个Sketch – Sketch是您的主程序文件。在这里,我们编写一组要在微控制器上执行的指令。
3. 编译你的程序 – 我们编写的代码与上传到 Arduino 时的样子不完全相同:编译代码意味着我们检查它是否有错误,并将其转换为二进制文件(1 和 0)。如果出现故障,您将在错误控制台中收到此消息。
4. 上传您的程序 – 编译成功后,代码可以上传到您的开发板。在此步骤中,我们将板卡物理连接到计算机,并选择正确的串行端口。
5. 串行监视器(可选) – 对于大多数 Arduino 项目,了解电路板上的情况非常重要。所有 IDE 中都提供了串行监视器工具,允许将数据从电路板发送到计算机。

Arduino IDE 1.8.x

Arduino入门
图 经典的Arduino IDE

对于现在被认为是“传统”编辑器,Arduino IDE 1.8.X或“Java IDE”是Arduino启动时首次发布的编辑器。

如需了解更多信息,请访问Arduino IDE 1文档

Arduino IDE 2

Arduino入门
图 新的Arduino IDE

2021 年,Arduino IDE 2 发布。新的 IDE 具有相同的功能,但也支持自动完成和调试等功能。
如需了解更多信息,请访问Arduino IDE 2文档

网络编辑器

Arduino入门
图 Web 编辑器

Arduino Web Editor 是一个在线 IDE,是 Arduino Cloud 套件的一部分。在功能上类似,该编辑器完全基于网络,具有在线存储等功能。要使用Web编辑器,您需要注册一个Arduino帐户。
如需了解更多信息,请访问 Web 编辑器文档

Arduino云

Arduino入门
图 Arduino云

Arduino Cloud 允许您配置、编程和控制/监控您的设备 – 所有这些都在一个基于 Web 的应用程序中。通过使用事物或“数字孪生”,您可以直接从仪表板控制和监控变量。该服务还支持 Webhook 和与其他服务(例如 Amazon Alexa)的集成。
云是供任何人使用的,不需要太多的经验就可以开始使用。

首先阅读 Arduino Cloud 入门指南,或访问完整文档

库管理器

Arduino入门
图 IDE 1.8.x 和 IDE 2 上的库管理器

每个版本的IDE都有一个库管理器,用于安装Arduino软件库。数以千计的图书馆,包括官方图书馆和贡献图书馆,都可以直接下载。每个库的代码示例均可在下载时获得。
要探索所有可用的Arduino库,请访问Arduino库页面

Arduino CLI

Arduino入门
图 Arduino CLI(命令行界面)

Arduino CLI 是一个命令行工具,可用于编译代码并将其上传到您的开发板。它没有可视化 UI,但对自动化非常有用。它是为更高级的用户设计的。
正确使用 CLI 可以加快您的开发时间,因为任何操作的执行速度都比在常规 IDE 中快得多。
要了解更多信息,请访问Arduino CLI文档

快速参考

在本节中,您将找到标准Arduino API中一些最常见的元素的列表。这将帮助您熟悉一些关键的构建块。
要探索整个Arduino API,请参阅Arduino语言参考,这是一个由Arduino及其社区维护的深入wiki。您将找到数百个条目,并附有代码示例和详细的描述。

常规

setup()
该函数是您进行程序配置的地方。

void setup() {
    //program configurations here
}

loop()
该函数是存储主程序的位置。只要您的电路板通电,它就会运行。

void loop() {
    //main program here
}

delay()
该函数将程序暂停设定的毫秒数。
经典的延迟函数示例可以在下面的代码片段中找到:

void loop() {

   digitalWrite(LED, HIGH); //turn on an LED
   delay(1000); //as program is paused, with the LED on
   digitalWrite(LED, LOW); //program is unpaused, and the LED is turned off
   delay(1000); //program is paused, with the LED off

}

该函数是一个非常有用的函数,您几乎可以在所有示例中找到它。但是,为了提高代码的效率,这不是最佳选择,因为它会阻止Arduino在延迟期间执行任何操作。delay()

为此,我们可以使用该函数。
millis()

该功能更高级一些,但是一个非常足智多谋的功能。它允许您同时发生多个事件,而无需暂停程序。这是通过测量自程序启动以来经过的时间(以毫秒为单位)来完成的。

然后,通过使用间隔并连续存储最后一个事件的时间,可以制作一个简单的算法,让事件在特定时间发生,而无需暂停程序。
请参阅以下示例:

unsigned long previousMillis_1 = 0; //store time for first event
unsigned long previousMillis_2 = 0; //store time for second event

const long interval_1 = 1000; //interval for first event
const long interval_2 = 2000; //interval for second event


void setup(){

}

void loop() {

//check time since program started, and store in "currentMillis"
unsigned long currentMillis = millis();

   //conditional that checks whether 1 second has passed since last event
   if (currentMillis - previousMillis_1 >= interval_1) {
        previousMillis_1 = millis();
       //execute a piece of code, every *1 second*
   }

   //conditional that checks whether 2 seconds have passed since last event
   if (currentMillis - previousMillis_2 >= interval_2) {
        previousMillis_2 = millis();
    //execute a piece of code, every *2 seconds*
   }

}

虽然函数是一个比函数更高级的概念,但尽早开始练习它是一个很好的选择。millis() delay()

功能

了解有关Arduino功能的更多信息。

您可以创建自定义函数,这些函数要么只执行代码并返回程序,要么返回结果。
不返回的函数示例:void

int x;

void loop(){
    thisFunction(); //execute the function
}

void thisFunction() {
    x++; //increase x by 1 each time function is run.
}

返回值的类型函数的示例。int

int value;

void setup(){

}

void loop(){
    value = returnFunction();
}

int returnFunction() {
    int returnValue = 5 + 2;
    return returnValue;
}

变量定义

变量可以在本地全局创建。在程序中定义的变量被视为局部变量,在程序顶部定义的变量被视为全局变量。loop()

int sensorReading = x; //global variable

void setup(){

}

void loop(){
    int sensorReading = x; //local variable
}

数据类型

语言参考中查看所有数据类型。
有几种数据类型可供使用,以下是一些最常见的数据类型:

bool 
byte
char
double
float
int
long
short
String

要将数据存储在例如(整数)中:int

int exampleNumber = 25;

对于小数点多的数字,我们可以使用:float

float exampleNumber = 22.2123002;

或者要存储一个字符串,我们可以使用以下函数:String

String exampleSentence = "This is a string!";

对于简单的开关和 true/false,我们使用布尔值:

bool exampleSwitch = true; // true/false

串行通信

阅读有关 Serial 类的更多信息。

串行通信对于Arduino编程至关重要,因为它是了解电路板上发生了什么的最简单方法。
为此,我们可以使用该类。Serial

Serial.begin()
初始化主板和计算机之间的串行通信。这在函数中定义,您还可以在其中指定波特率(通信速度)。void setup()

void setup() {
    Serial.begin(9600);
}

Serial.print()
将数据打印到串行端口,可以在Arduino IDE串行监视器工具中查看

void loop() {
    Serial.print();
}

Serial.read()
读取传入的串行数据。

void loop() {
    int incomingByte = Serial.read();
}

GPIO/引脚管理

配置、控制和读取 Arduino 上数字/模拟引脚的状态。

pinMode()
将数字引脚配置为输入或输出。在函数内部配置。void setup()

pinMode(pin, INPUT); //configures pin as an input
pinMode(pin, OUTPUT); //configures pin as an output
pinMode(pin, INPUT_PULLUP); //enables the internal pull-up resistor

您可以在有关数字引脚的文章中阅读有关数字引脚的更多信息。

digitalRead()
读取数字引脚的状态。例如,用于检测按钮点击。

int state = digitalRead(pin); //store the state in the "state" variable

digitalWrite()
将高电平或低电平状态写入数字引脚。用于打开或关闭组件。

digitalWrite(pin, HIGH); // writes a high (1) state to a pin (aka turn it on)
digitalWrite(pin, LOW); // writes a low (0) state to a pin (aka turn it off)

analogRead()
读取模拟引脚的电压,并返回介于 0-1023(10 位分辨率)之间的值。用于读取模拟元件。

sensorValue = analogRead(A1); //stores reading of A1 in "sensorValue" variable

analogWrite()
写入介于 0-255(8 位分辨率)之间的值。用于调光灯光或设置电机速度。也称为PWM或脉宽调制。

analogWrite(pin, value); //write a range between 0-255 to a specific pin

PWM仅在特定引脚上可用(标有“~”符号)。

结构

Arduino API的结构基于C++,可以被视为程序的构建块。

条件

条件语句是任何程序中最常用的一些元素。在Arduino中,典型的条件由and语句组成。if else

if(variable == true){
    //do something
}
else {
    //do something else
}

您可以在代码中使用多个 if/else 语句。

循环/迭代

和循环通常用于程序中,用于在设定的次数内执行代码块,或者在满足条件时执行代码块。for while
循环的基本用法是 true 的。while variable

while (variable == true) {
    //do something
}

循环的基本用途是执行自定义次数的代码块(在本例中为 10 次)。for

for (int x = 0; x < 10; x++) {
      //do something 10 times
  }

要打破循环,可以使用 .在下面的代码片段中,如果满足条件(变量为 true),我们将打破循环。break

for (int x = 0; x <= 10; x++) {
      if(variable == true) {
          break;
      }
  }

算术运算符

算术运算符用于加法、减法、乘法、除法等数学计算。

int x = 5;
int y = 2;

x + y; //result is 7
x * y; //result is 10
x - y; //result is 3

比较运算符

比较运算符用于将一个属性与另一个属性进行比较,并且是条件语句的关键组件。
有几个比较运算符:

!= //not equal to
< //less than
<= //less than or equal to
== //equal to
> //greater than
>= //greater than or equal to

若要在条件中使用它们,请参阅以下示例:

if(value > 10) {
    //do something
}

布尔运算符

例如,布尔运算符(逻辑 NOT 、 AND 和 OR )可用于更高级的条件。!;&&;||
要使用 AND 运算符,请执行以下操作:&&

if(value > 10 && otherValue > 10){
    //do something if only if *both* conditions are met
}

要使用 OR 运算符:||

if(value > 10 || otherValue > 10){
    //do something if a one *or* the other condition is met
}

要使用 NOT 运算符:!

if(!value){
    //do something if value is false (!)
}

复合运算符

复合运算符由两个运算符组成,用于在同一语句中执行两个运算符。例如,这可以是同时添加和赋值。+=
以下是一些示例:

x = 5;
y = 2;

x++; //increase by one, so x is now 6
x--; //decrease by one, so x is now 4

x += y; //x is now 7 (add and assign)
x -= y; //x is now 3 (subtract and assign)
x *= y; //x is now 10 (multiply and assign)

结论

在本指南中,我们介绍了Arduino的一些基础知识:硬件,软件工具,什么是Arduino API,以及它的快速介绍。本指南主要介绍Arduino,并了解基本概念。
要了解更多信息,您可以浏览 Arduino 文档和 Arduino 语言参考,您将在其中找到数以千计的详细教程、示例、API 条目和其他资源。
要购买Arduino板,请访问openjumper商店
要下载Arduino IDE的版本,请访问Arduino软件页面

转载自:https://arduino.me/s/40?aid=2899

微信群
微信群
微信客服
微信客服
分享本页
返回顶部
目录
项目初期,精力都在做产品上,网站速度有点慢,请谅解!