从现在开始,我们将开展一些Arduino的知识学习,首先我们来研究Arduino的程序结构,通过本文的学习,可以了解更多Arduino世界中使用的新术语。记住我们的Arduino软件是开源的,Java environment的源代码遵循GPL,C/ C++微控制器库遵循LGPL。
Sketch — 第一个新术语是Arduino程序“sketch”。(多翻译为草图)
程序结构(Structure)
Arduino程序主要分为三个部分: 结构(Structure)、值(变量和常量)和函数。接下来我们将逐步通过使用Arduino IDE程序来了解如何编写没有语法或编译错误的程序。
我们首先从结构(Structure)开始。软件结构包括两个主要函数,当我们打开Arduino IDE程序,新建一个sketch时,窗口会默认给新sketch添加两个函数,分别为 setup() 和 loop() ,它们的具体功能如下:
Setup( )函数: setup()函数在sketch开始运行时调用,使用它可以完成初始化变量,pinMode设定,库文件引入等等操作。通常情况下,每次开机或复位Arduino开发板后,setup ( ) 函数只会运行一次。如:
void setup()
{
servo_test.attach(8); // 舵机信号脚8
pinMode(8, OUTPUT);
}
在setup()函数中设定舵机控制信号引脚为8,pinMode 8脚为输出引脚。源代码见:制作宠物自动喂食器
Loop( )函数:运行完setup()函数后,程序会循环运行 loop() 函数中的内容,Loop()函数可以设置初始值,它精确地连续循环执行既定操作,Loop里面的代码是控制Arduino板如何工作的精髓。如:
void loop() {
// 在早上6点:
servo_test.write(80); //舵机旋转80度,打开出口
delay(60000); //出口的打开持续时间
servo_test.write(0); // 关闭
delay(25200000UL); //7小时后再次打开出口
//下午1点:
servo_test.write(80); //舵机旋转80度,打开出口
delay(60000); //出口的打开持续时间
servo_test.write(0); // 关闭
delay(25200000UL); //7小时后再次打开出口
// 晚上8点:
servo_test.write(80);
delay(60000);
servo_test.write(0);
delay(36000000UL); //10小时后再次打开出口
}
也就是说,整个代码中,我们可以将loop里面的内容理解为,loop是我们希望Arduino怎么反复去完成工作的具体标准和要求。
Arduino的主要程序结构就是这样,是不是很简单!下一章将介绍Arduino的数据类型。