最近开始准备考取Arduino的官方认证,但之前没有系统地学习,因此打算好好整理一下,一方面当作考试复习,另一方面给想学习Arduino的朋友们一些帮助
在学习之前,建议大家先在Arduino中文社区看一下使用教程,里面有很多答疑帖,还有很多干货,值得一看:
https://www.arduino.cn/thread-1066-1-1.html
本篇文章将分为5大部分,如下所示:
编程语法
1. Arduino使用的编程语言
Arduino使用C/C++编写程序,虽然C++兼容C语言,但这是两种语言:
- C语言 是一种面向过程的编程语言
- C++ 是一种面向对象的编程语言
早期的Arduino核心库使用C语言编写,后来引进了面向对象的思想,目前最新的Arduino核心库采用C与C++混合编写而成
通常我们说的Arduino语言,是指Arduino核心库文件提供的各种应用程序编程接口(Application Programming Interface,简称API)的集合。这些API是对更底层的单片机支持库进行二次封装所形成的。例如,使用AVR单片机的Arduino的核心库是对AVR-Libc(基于GCC的AVR支持库)的二次封装。
2. Arduino程序基本结构
按照图示方法即可新建一个Arduino程序的文件:
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
如果你使用过C/C++语言,你会发现Arduino的程序结构与传统的C/C++结构的不同之处就在于Arduino程序中没有main函数
准确说,其实并不是Arduino没有main函数,而是main函数的定义隐藏在了Arduino的核心库文件中。Arduino开发一般不直接操作main函数,而是使用Setup和loop这个两个函数
换句话说,Arduino程序基本结构由setup() 和loop() 两个函数组成
Arduino控制器通电或复位后,即会开始执行setup() 函数中的程序,该部分只会执行一次,相当于JAVA中的构造方法。
通常我们会在setup() 函数中完成Arduino的初始化设置,如配置I/O口状态,初始化串口等操作。
在setup() 函数中的程序执行完后,Arduino会接着执行loop() 函数中的程序。而loop()函数是一个死循环,其中的程序会不断的重复运行。
通常我们会在loop() 函数中完成程序的主要功能,如驱动各种模块,采集数据等。
3. Arduino中的Hello World
按照图示方法打开Blink程序:
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(