2.2 让Arduino做些事情
Arduino本身做不了太多事。它可以进行一些数学计算,其内部时钟很准时。但是这个微控制器本身只是一个看起来非常酷的镇纸。(并不是说它很重,因此将其作为镇纸也并不好用。)
将Arduino变得有趣的方法是插入各种各样可以工作的电子元件——电动机、LED、可监测狗叫的声音传感器或你的房间有侵入者的超声波传感器、电阻、电容、晶体管等。即使你还不知道所有这些东西是什么或者它们是如何工作的也没有关系……只要注意,当它们连接到Arduino时,它们就准备做一些工作。就其本身而言,当然,Arduino并不知道如何控制这些元器件。为此,它需要从你这里得到一些指令。这些指令以写好的语句的形式表示,类似于你写的那篇题为“殖民园艺技术的历史”的论文,只是它更有趣。
Arduino得到这些指令并将其存储在内存中。指令的集合通常称为一个程序,但Arduino用户也把它们称为草图(sketch)。不,一个Arduino草图不需要最好的手绘画——如两只鹿在森林中奔跑的那张。一个草图表示写好的指令清单,告诉Arduino要做什么,如何做,以及如何与相连的元件协同合作。他们选择“草图”一词代替“程序”的原因我们也不是很清楚,但是我们确实喜欢这样说:“我只加载一个草图到我的Arduino中。”
Andrew 5.0的话
我想一个例子也许可以帮助读者理解一个草图是什么样子的。代码清单2-1展示了一个简单的草图,可以使一个连接到Arduino上的白色LED闪烁和熄灭。
代码清单2-1?一个使LED闪烁的Arduino程序
/*******************************************************
闪烁:打开一个LED一秒钟,然后熄灭一秒钟,依此循环。
这个例子代码是不受版权限制的。
*********************************************************/
//Arduino板子的13引脚和一个LED相连
//给它一个名字
int led = 13;
//当你按下复位时,setup函数运行一次
void setup()
{
//初始化数字引脚作为输出
pinMode(led, OUTPUT);
}
//loop程序一直循环运行
void loop(){
digitalWrite(led, HIGH); //打开LED(HIGH表示电压电平)
delay(1000); //等待一秒钟
digitalWrite(led, LOW); //通过把电压拉低使LED熄灭
delay(1000); //等待一秒钟
}
也可以在arduino.cc/en/Tutorial/Blink上找到这个程序。
就像不可能马上就学会说古希腊语一样,我们也不要求你现在就完全明白这个程序的意思,但是总有一天你会明白的,你只要记住这些程序只是用了一些你能够读懂的英文单词。我们会给你提供完成挑战所需要的所有程序,但是你还是要学习它们的工作原理,并在本书的指导下创建你自己的草图。编程是一件很有趣的事情,它能够让你真正地控制Arduino,让你的小发明实现你能想到的一切功能。
在编程之前,你得先下载并安装Arduino IDE,也就是先创造一个集成开发环境。你需要了解一点:这个软件工具是IDE,可以用来编程,并将程序下载到Arduino上。