天天看点

《动手玩转Arduino》——2.3 在IDE里创建第一个程序

本节书摘来自异步社区《动手玩转arduino》一书中的第2章,第2.3节,作者【澳】john boxall,译者 翁恺,更多章节内容可以访问云栖社区“异步社区”公众号查看。

一个arduino程序就是用来实现一个特定任务的一组指令。本节我们要创建和上传一个简单的程序,能让arduino的led(见图2-11)亮一秒、灭一秒,形成不断的闪烁。

《动手玩转Arduino》——2.3 在IDE里创建第一个程序

注意:

首先,用usb线把arduino板连到计算机上,然后打开ide,选择tools->serial port,确认正确的串口已经被勾选上,这样就能确认arduino板已经被正确地连接了。

首先,输入一条注释,说明程序的用途。注释是程序里任意长度的说明,是为了程序的用户而写的。程序里的注释用来给你自己或其他人加些说明,这是很有用的。注释可以是说明指令,也可以是说明各种细节。在给arduino编程(写程序)的时候,把你的想法写成注释是个好主意,将来修改程序的时候,这些注释能提供有用的信息。

在一行里加上注释,需要输入两个斜杠,然后写注释,就像下面这样。

这两个斜杠告诉ide在检查程序的时候忽略后面跟着的内容(前面提过,在检查程序的时候,你要求ide检查程序书写正确没有错误)。

输入占据两行或多行的注释,需要在注释开始之前输入/,然后在注释结束的地方输入/,就像下面这样。

和两个斜杠开头的单行注释一样,/和/告诉ide忽略它们所括起来的文字。

用以上两种方法之一输入一条描述你的arduino程序的注释,然后选择file->save as保存程序。给你的程序输入一个简短的文件名(比如blinky),然后点击ok。

arduino程序的默认文件名后缀是.ino,ide应该会自动加上这个后缀。所以,你的程序的文件名就应该是blinky.ino,在菜单的sketchbook(素描本)里可以看到它。

创建任何程序,接下去的事情都是加上void setup()函数。这个函数里是arduino每次重启或开机时只执行一次的指令。要创建这个setup函数,在程序的注释后面,加入下面的行。

我们的程序要让arduino板上的用户led闪烁,用户led连接在arduino的13号数字引脚上。数字引脚可以检测电信号,也可以根据指令产生信号。在这个作品中,我们要产生一个电信号来点亮led。这也许看上去有点复杂,数字引脚更多的细节会在后续的章节中介绍,此刻,只要继续写程序就好。

在程序的大括号({})之间输入下面的内容。

程序里的数字13就是我们用的数字引脚的编号,设置这个引脚为输出,就表示要在这个引脚上产生(输出)一个电信号。如果你想在引脚上检测所受的电信号,就需要用input。注意这个函数的调用pinmode()以分号(;)结尾。arduino程序里的每个函数调用都要以分号结尾。

再次保存你的程序,确保你不会丢失了你的辛苦劳作。

我们的目标是让led不停地闪烁。为此,需要写一个loop(循环)函数来让arduino不断地重复执行一些指令,直到断电或是有人按了reset按钮。

输入下面代码中在void setup()后面加粗的部分,就有了一个空的loop函数。别忘了这个新的部分要以另一个大括号(})结束,然后再保存一次程序。

警告:

下面,输入实际的要在loop()里让arduino执行的代码。

在loop函数的大括号之间输入下面的内容,然后点击verify按钮来确认输入的一切都是对的。

我们分开来逐一说明。digitalwrite()函数控制在数字引脚上输出的电压,在这个程序里,就是控制连接了led的13引脚上的电压。设置这个函数的第2个参数为high,这就输出了“高”电平,会有电流从引脚流出,led就会被点亮。如果设置这个参数为low,流经led的电流就会停止。

led亮了以后,用deay(1000);让它保持1秒。delay()函数可以使程序在一段时间内什么也不做。这里是1000毫秒,或者说1秒,程序什么也不做。

然后,用digitalwrite(13,low);把led上的电压取消掉。最后,再用delay(1000);让led保持1秒的熄灭状态。

完整的程序如下:

在做任何事情之前,保存程序。

检查程序是确保程序以arduino理解的方式书写。要检查整个程序,点击ide的verify按钮,然后等待一会儿。一旦程序被检查完毕,就会在消息窗口显示一条消息,如图2-12所示。

《动手玩转Arduino》——2.3 在IDE里创建第一个程序

“done compiling”消息告诉你程序已经ok了,可以上传到arduino板。它还告诉你程序用了多少内存(这里是1 076字节),这块arduino上总的可用内存是32 256字节。

不过,如果你的程序不对呢?比如,你忘了在第二个delay(1000)函数的后面加上一个分号。如果程序有问题,那么在点击了verify按钮之后,消息窗口会显示检查错误消息,如图2-13所示。

《动手玩转Arduino》——2.3 在IDE里创建第一个程序

这条消息告诉你,错误出在void loop函数里,并且列出了它认为你的错误所在的程序行号(blinky:16,是blinky程序的第16行),然后是错误的描述,即error: expected ';' before '}' token(错误:在 '}'符号之前应该有一个';')。另外,ide还会把错误的地方用黄色高亮显示,或是在错误的地方打一个点。这样能让你方便地找到并修改错误。

一旦程序已经正确输入了,保存好,确认arduino板已经连接,然后点击ide的upload(上传)按钮。ide可能会再次检查程序,然后再上传到arduino板。在此过程中,板上的tx/rx led(见图2-6)会不时地闪烁,说明数据正在arduino和计算机之间来回传递。

现在,arduino应该开始运行程序了。如果一切都做对了,led应该闪烁,亮一秒灭一秒!

恭喜你,现在,你已经基本了解如何输入、检查和上传arduino程序了。

运行程序之后,可能想要改变它的动作,比如,调节led亮或灭的时间。因为ide很像一个文字处理软件,所以可以打开之前保存的程序,修改其中的内容,然后保存、上传到arduino。比如,要提高闪烁的频率,改变两次delay函数的调用,调整延迟的数值为250,就可以让led每1/4秒闪烁一次,如下所示。

然后再次上传程序,led就会闪烁得快点儿了,每1/4秒变化一次。