本文章介绍Arduino的第一个程序 ,通过点亮Arduino uno R3上板载的LED灯来示例编写、上传程序的过程。
一、安装Arduino IDE。
Arduino IDE用来编写、编译、上传Arduino程序,还带有一个串口监视器,用来查看串口输出信息。
下载地址:
- 在这个页面下载所需要的Arduino IDE:https://www.arduino.cc/en/Main/Software?setlang=en
- windows下Arduino IDE(1.8.3)下载地址:https://www.arduino.cc/download_handler.php?f=/arduino-1.8.3-windows.exe
- MAC OS X 下Arduino IDE(1.8.3)下载地址:https://www.arduino.cc/download_handler.php?f=/arduino-1.8.3-macosx.zip
在工具栏上,Arduino IDE提供了常用功能的快捷键:
- 校验(Verify) ,验证程序是否编写无误,若无误则编译该项目。
- 下载(Upload) ,下载程序到Arduino控制器上。
- 新建(New) ,新建一个项目。
- 打开(Open) ,打开一个项目。
- 保存(Save) ,保存当前项目。
- 串口监视器(Serial Monitor),IDE自带的一个简单的串口监视器程序,用它可以查看串口发送或接收到的数据。 相对于IAR、Keil等专业的硬件开发环境,Arduino的开发环境给人以简单明了的感觉,但正是这种简单,省去了很多不常用的功能,使得基础知识不多的使用者更容易上手。
如果使用的是Arduino UNO、Arduino MEGA r3、Arduino Leonardo或者这些型号对应的兼容控制器,并且计算机系统为Mac OS或者Linux,那么只需要使用USB连接线,并插上Arduino控制器,系统会自动安装驱动,安装完成后即可使用。 其他型号的控制器或者Windows系统则需要手工安装驱动程序。
二、原理介绍
数字信号是以0、1表示的不连续信号,也就是以二进制形式表示的信号。在Arduino中数字信号用高低电平来表示,高电平为数字信号1 ,低电平为数字信号0。 Arduino上每一个带有数字编号的引脚都是数字引脚,包括写有“A”编号的模拟输入引脚。使用这些引脚可以完成输入/输出数字信号的功能。
在使用输入或输出功能前,需要先通过pinMode ()函数配置引脚的模式为输入模式或输出模式,即 pinMode(pin, mode); 其中参数pin为指定配置的引脚编号,参数mode为指定的配置模式。如之前在Blink程序中使用到的pinMode(13, OUTPUT)语句,就是把13号引脚配置为输出模式。 配置为输出模式以后,还需要使用digitalWrite ()函数使该引脚输出高电平或低电平。其调用形式为: digitalWrite(pin, value); 其中参数pin为指定输出的引脚编号。参数value为要指定的输出电平,使用HIGH指定输出高电平,使用LOW指定输出低电平。 Arduino中输出的低电平为0 V,输出的高电平为当前Arduino的工作电压,例如UNO的工作电压为5 V,则其高电平输出也是5 V。
数字引脚除了用于输出信号外,还可用digitalRead ()函数读取外部输入的数字信号,其调用形式为: digitalRead(pin); 其中参数pin为指定读取状态的引脚编号。 当Arduino以5 V供电时,会将范围为-0 . 5~1 . 5 V的输入电压作为低电平识别,而将范围在3~5. 5 V的输入电压作为高电平识别。所以,即使输入电压不太准确,Arduino也可以正常识别。需要注意的是,过高的输入电压会损坏Arduino。
板载的LED灯阳极连接到了Arduino的第13号引脚上,将13号引脚输出高电平,即可点亮LED灯;如果再设置位低电平,就可以熄灭LED灯。
三、代码
在Arduino 窗口中可以选择“文件”→“示例”→01 . Basics→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(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
在Blink程序中,使用“LED_BUILTIN”则可代表对应编号的引脚(或者是该引脚上连接的设备)。也可以使用int LED=13来定义LED对应来连接的引脚,这种写法可以提高程序的可读性,并且便于修改,若设备需要更换连接引脚,则直接修改该变量对应的数值即可。也可使用#define语句,以定义常量的方式来为设备设置一个别名。 delay()为毫秒延时函数,delay(1000)即延时1 秒(1 000 毫秒),在本程序中用来控制开关LED的间隔时间。其中的参数可以自行修改,以便观察实际运行效果。
四、编译下载
在编译或下载该程序之前,需要先在“工具”→“板卡”菜单中选择正在使用的Arduino控制器型号,如下图所示。
接着在“工具”→“端口”菜单中选择Arduino控制器对应的串口。在Windows系统中,串口名称为“COM”加数字编号,如COM3。在选择串口时,需要查看设备管理器中所选Arduino控制器对应的串口号。 在Mac OS或者Linux中,串口名称一般为 /dev/tty. usbmodem加数字编号或/dev/cu. usbmodem加数字编号。 板卡和串口设置完成后,就可以在IDE的右下角看到当前设置的Arduino控制器型号及对应串口了。windows下选择选择开发板所在的串口,如下图所示:
接着单击校验(Verify)工具按钮,IDE会自动检测程序是否正确,如果程序无误,则调试提示区会依次显示“编译程序中”和“编译完毕”。并显示:
项目使用了 928 字节,占用了 (2%) 程序存储空间。最大为 32256 字节。
全局变量使用了9字节,(0%)的动态内存,余留2039字节局部变量。最大为2048字节。
在上图中,“928字节”为当前程序编译后的大小,“最大32 ,256字节”表示当前控制器可使用的Flash程序存储空间的大小。如果程序有误,则调试提示区会显示相关错误提示。
单击下载(Upload)工具按钮,调试提示区会显示“编译程序中”,很快该提示会变成“下载中”,此时Arduino控制器上标有TX、RX的两个LED会快速闪烁,这说明当前程序正在被写入Arduino控制器中。 当显示“下载完毕”时,就可以看到该段程序的效果了——板子上标有L的LED灯正在按照亮1秒灭1秒的间隔闪烁。