Arduino

Arduino（ɑː）是一家意大利开源硬件和软件公司、专案和使用者社群。它们设计和制造用于建造数位设备的单板微控制器和微控制器套件。Arduino 的硬件产品获得 CC BY-SA 许可，而软件根据 GNU 宽通用公共授权 (LGPL) 或 GNU 通用公共授权 (GPL) 获得许可，这意味着任何人都可以建立 Arduino 板并分卖软件。Arduino板可以从官方网站或授权经销商购买。

Arduino 板是使用各种微处理器和控制器设计的。该板配备一组数位和类比输入/输出 (I/O) 引脚，可连接到各种扩展板或面包板和其他电路。该板也具有能用于安装程式的USB和其它类型的串行通讯接口。

微控制器可以使用 C 和 C++ 程式语言以及标准 API（原文： Arduino Programming Language）进行编程。API灵感来自于处理语言，并与处理 IDE 的修改版本一起使用。除了使用传统的编译工具链外，Arduino专案还提供了整合开发环境（IDE）和使用Go语言开发的命令列工具。

Arduino 计划始于 2005 年，作为意大利伊夫雷亚互动设计学院学生的工具，旨在为新手和专业人士提供一种低成本、简单的方法来创建使用感测器和执行器进行互动的设备。对于初学者和爱好者来说，此类设备的常见范例包括简单的机器人、恒温器和运动侦测器。

Arduino 的名字来自于意大利伊夫雷亚的一家酒吧，该计划的一些创始人就是在那里相遇的。酒吧以伊夫雷亚侯爵、1002 年至 1014 年意大利国王阿杜因 (Arduin of Ivrea) 的名字命名。

## 关于

Arduino 系列电路板的设计大多使用 Atmel AVR 单片机。这些电路板配有一组数字和模拟I/O引脚，可以连接各种扩展板或面包板（Shields 扩充版）和其他电路。这些电路板具有串行通信接口，包括某些型号上的通用串行总线（USB），也用于从个人电脑加载程序。

软件编程方面，通常使用C/C++程式语言，官方提供了一个开发用的Arduino 集成开发环境(IDE)。除了使用传统的编译工具链之外，Arduino 项目还提供了一个基于 Processing 语言专案的集成开发环境。另外，一些少儿编程教育软件提供了对 Arduino 的可视化编程。

## 开发沿革

Arduino 的核心开发团队成员包括：马西莫·班齐（Massimo Banzi）、大卫·奎提耶斯（David Cuartielles）、汤姆·伊果（Tom Igor）、赞布罗塔·马提诺（Gianluca Martino）、大卫·梅利斯（David Mellis）和尼可拉斯·兰比提（Nicholas Zambetti）。

马西莫·班齐曾是意大利 Ivrea 一家高科技设计学校的教师，他的学生们经常抱怨找不到便宜又好用的微控制器。2005年冬天，班齐与西班牙籍芯片工程师大卫·奎提耶斯讨论了这个问题，奎提耶斯当时在学校担任访问学者。两人决定设计自己的电路板，并邀请班齐的学生大卫·梅利斯负责电路板的编程语言设计。两天后，梅利斯完成了程式码，三天后，电路板也宣告完工，并被命名为 Arduino。

Arduino 的设计使几乎任何人都能轻松创作，即使不懂编程的人也能利用它来响应感测器、闪烁灯光或控制马达。随后，班齐、奎提耶斯和梅利斯将设计图上传至网络，并秉持开放源码的理念，决定采用共享创意许可（Creative Commons License）。这种许可旨在保护开放版权行为，类似于 GPL，但更适用于硬件。根据共享创意许可，任何人都可以生产印刷电路板的复制品，重新设计，甚至销售原设计的复制品，而无需支付版税或获得 Arduino 团队的许可。

不过，如果有人重新发布引用了 Arduino 的设计，必须给予原始团队条款。此外，若对电路板进行调整或改动，新的设计也必须使用相同或类似的共享创意许可，以确保新版本的 Arduino 电路板保持自由和开放。唯一保留的就是“Arduino”这个名字，因为它已被注册为商标。如果有人希望使用这个名字销售电路板，可能需要向 Arduino 核心开发团队成员支付商标费用

赞布罗塔·马提诺创立的 Arduino Srl 被2009年创立的 Arduino LLC 控告侵犯了他们的著作权，这第二家被控侵权的 Arduino（也就是 Arduino Srl），原先叫做 Smart Projects Srl，以前是在意大利负责生产制造 Arduino 控制板的公司。而第一家 Arduino（也就是我们较熟悉的 Arduino LLC）则负责开发控制板，并管理周边的开源专题与社群。在之前，原本双方是合作的关系；2014年马提诺与另外四位共同创办人，对于 Arduino 品牌的发展方向意见不合，导致马提诺另外请费德里科·穆斯托担任 Smart Projects 的新首席执行官，并把公司名称改为 Arduino Srl，不过最终两间公司宣布和解并重新合而为一。

2025年10月9日，高通宣布并购Arduino。

## 特色

- 基于知识共享开源的电路图设计。
- 免费下载，也可依需求自己修改，但需遵照姓名标示，按照作者或授权人所指定的方式，表彰其姓名。
- 依相同方式分享，若改变或转变著作，当散布该衍生著作时，需采用与本著作相同或类似的授权条款。
- Arduino 可使用 ICSP 线上烧入器，将 Bootloader 烧入新的IC芯片。
- 可依据 Arduino 官方网站，取得硬件的设计档，加以调整电路板及元件，以符合自己实际设计的需求。
- 可简单地与感测器及各式各样的电子元件连接，如红外线、超音波、热敏电阻、光敏电阻、伺服马达等。
- 支援多样的互动程式，如Adobe Flash、Max/MSP、VVVV、Pure Data、C及Processing等。
- 使用低价格的微处理控制器（Atmel AVR）（ATmega8、168、328等）。
- USB 界面，不需外接电源。另外有提供直流（DC）电源输入。

## 硬件

### 官方硬件

原始的 Arduino 硬件是从一间意大利公司 Smart Projects 制造有些 Arduino 硬件则是被官方授权由美国公司 SparkFun Electronics 和 Adafruit Industries 设计。

<image>

- Arduino Diecimila in Stoicheia

<image>

- Arduino Duemilanove (rev 2009b)

<image>

- Arduino UNO

<image>

- Arduino Leonardo

<image>

- Arduino Mega

<image>

- Arduino Nano

<image>

- Arduino Due （ARM Cortex-M3核心）

<image>

- LilyPad Arduino (rev 2007)

<image>

- Arduino Yun

<image>

- Arduino Pro Micro

<image>

- Arduino MEGA 2560

### Shields

“Shields”扩充版能够插入 Arduino 和 Arduino 相容硬件，用途是增加 Arduino 硬件本身没有的功能，如马达控制、全球定位系统（GPS）、有线网络、液晶显示器或者是面包板。使用者也可以自己动手做 Shields 扩充版。

<image>

- 多重的Shield可以被堆叠起来。在这张图里，最上层的Shield扩充版上含有面包板。

<image>

- 翅膀形状的螺丝端子Shield扩充版。

<image>

- Adafruit马达Shield扩充版和用于连接马达的螺丝端子Shield扩充版。

<image>

- 内建一个SD卡插槽，以及实时时钟芯片的Adafruit数据记录Shield。

<image>

- HackARobot结构Shield，专为了Arduino Nano硬件设计以推动马达和感测器如：陀螺仪和GPS，以及其他的扩充版如：Wifi、蓝牙、无线射频等。

## 软件

在 Arduino 上执行的程式可以使用任何能够被编译成 Arduino 机器码的程式语言编写，Arduino 官方推荐使用整合了 arduino 库的 C++ 进行编程。

多数 Arduino 电路板上 MCU 的制造商 Atmel 公司也提供了数个可以开发 Atmel 微处理机程式的整合开发环境，AVR Studio和更新的 Atmel Studio。

目前微软在其 Microsoft Visual Studio 也有提供 Arduino 的 SDK，在编译执行上更方便。

基于Scratch程序的在线编程平台Codelab提供了对Arduino UNO的Scratch程序扩展，可以使用Scratch进行Arduino UNO的程序开发。

### IDE

Arduino 计划也提供了 Arduino Software IDE，一套以 Java 编写的跨平台应用软件。Arduino Software IDE 源自于 Processing程式语言以及 Wiring 计划的整合开发环境。它是被设计于介绍程式编写给艺术家和不熟悉程式设计的人们，且包含了一个拥有语法突显、括号匹配、自动缩排和一键编译并将执行档烧写入 Arduino 硬件中的编辑器。

Arduino Software IDE 使用与C语言和C++相仿的程式语言，并且提供了包含常见的输入/输出函式的 Wiring 软件函式库。在使用GNU 工具链编译和连结后，Arduino Software IDE提供了一个程式“avrdude”用来转换可执行档成为能够烧写入 Arduino 硬件的固件。2019 年后，版本分为简洁、免安装的IDE1 和功能齐全的IDE2

### Sketch

使用Arduino Software IDE编写的程式被称为“sketch”。一个典型的 Arduino C/C++ sketch 程式会包含两个函式，它们会在编译后合成为 main 函式：

- setup：在程式执行开始时会执行一次，用于初始化设定。
- loop：直到Arduino硬件关闭前会重复执行函式放的程式码。

## 相关设备名称

- BASIC Stamp
- OOPic
- PICAXE
- Parallax Propeller
- Fritzing
- Gumstix
- ioBridge
- Make Controller Kit
- Minibloq
- 树莓派 - 单板机电脑
- ESP32
- Simplecortex

## 参见

- 知识共享（Creative Commons）

## 参考资料

### 补充资料

- Exploring Arduino: Tools and Techniques for Engineering Wizardry; 2nd Ed; Jeremy Blum; Wiley; 512 pages; 2019; .
- Arduino For Dummies; 2nd Ed; John Nussey; John Wiley & Sons; 400 pages; 2018; .
- Programming Arduino Next Steps: Going Further with Sketches; 2nd Ed; Simon Monk; McGraw-Hill Education; 320 pages; 2018; .
- Programming Arduino: Getting Started With Sketches; 2nd Ed; Simon Monk; McGraw-Hill Education; 192 pages; 2016; .
- Beginning C for Arduino: Learn C Programming for the Arduino; 2nd Ed; Jack Purdum; Apress; 388 pages; 2015; .
- Arduino: A Quick Start Guide; 2nd Ed; Maik Schmidt; Pragmatic Bookshelf; Pragmatic Bookshelf; 323 pages; 2015; .
- Make: Getting Started with Arduino; 3rd Ed; Massimo Banzi, Michael Shiloh; Make Community; 262 pages; 2014; .
- Make: Sensors; 1st Ed; Tero Karvinen, Kimmo Karvinen, Ville Valtokari; Make Community; 400 pages; 2014; .
- Arduino Workshop: A Hands-On Introduction with 65 Projects; 1st Ed; John Boxall; No Starch Press; 392 pages; 2013; .

## 外部链接

- Arduino官方网站
- Make Magazine article on the Arduino
- "Wiring" software project: http://wiring.org.co/
- Flickr上有关Arduino的图片
- Arduino tutorial – broken into several lessons with photographs and suggestions for appropriate tools for beginners.
- Introduction to the Arduino - Weekend Project Podcast
- Sheepdog Software's Introduction to Arduino："Getting Started" pages and sequenced programming tutorials, with help on hardware.
- Wired article about open source hardware, focusing on Arduino
- 新竹交通大学毛先生的资料
- Freeduino索引
- 自制USB AVR烧录器

### 教程

- Arduino: Robotics for beginners (Spanish with English subtitles)
- Arduino tutorial – in portuguese, but with source codes and videos.
- Cooper Maa的Arduino笔记
- Arduino中文教程-Arduino中文社区
- Arduino中文教程
- 柯博文老师的arduino教学

## 基本资料

- 开发者：arduino.cc
- 制造商：许多
- 类型：单片机
- 中央处理器：Atmel AVR (8-bit)、ARM Cortex-M0+ (32-bit)、ARM Cortex-M3 (32-bit)、Intel Quark (x86) (32-bit)
- 存储：Flash, EEPROM
- 存储器：SRAM
- 日语原文：Arduino Software IDE
- 开发者：Arduino Software
- 操作系统：Windows, macOS, Linux
- 类型：整合开发环境
- 编程语言：Java、C 和 C++
- 许可协议：LGPL或GPL授权