首先是硬件部分的知识,关于Arduino开发板的相关资料及选择,开发者论坛上有很多,这里主要阐述一下整个软件编码部分的开发流程及技术难点。板子选择的是MEGA2560,如图:
黑白两根线分别为电源和数据线,黄灯为板载灯L,绿灯为Power。其他的串口后面用到的时候再说吧。
首先是搭建Arduino的开发环境。Arduino是基于C语言开发的,在VS及Eclipse上均有插件,不过设置略显麻烦。简单起见,选择官方自己的IDE吧(下载地址)
如图,官方IDE是绿色软件包,无须安装即可使用,注意左上角的dirvers文件夹,一会USB连接开发板后需要安装的驱动就在这里。
将板子通电后连接PC端,提示安装驱动,搜索文件夹设为刚才我们看到的dirvers文件夹。安装完毕之后,开发环境的搭建就此结束,接下来我们就进入IDE开始编码。
进入IDE后首先设置一下开发版型号,点击Tools -> Board 并选择自己的开发板型号,这里我用的是Mega2560
然后是设置串口号 Tools -> Serial Port 串口号可以在设备管理器中看到。
完毕后开始编码,首先了解下Arduino的语言特性及程序结构,以下是官方描述:
在Arduino中, 标准的程序入口main函数在内部被定义, 用户只需要关心以下两个函数:
void setup()
void loop()
setup() 函数用于初始化, loop() 函数用于执行. 初始化函数一般放在程序开头, 用于设置一些引脚的输出/输入模式, 初始化串口通讯等类似工作. loop() 函数中 的代码将被循环执行, 例如: 读入引脚状态, 设置引脚输出状态等.
现在编码如下:
1 2 3 4 5 6 7 8 9 10 11 | int ledPin = 13;//板载黄色LED灯的引脚编号 //初始化 void setup() { pinMode(ledPin, OUTPUT);//设置引脚状态为OUTOUT模式 } //主循环 void loop() { digitalWrite(ledPin, HIGH); //写入引脚电平 } |
这里解释下,pinMode及digitalWrite均为API函数,分别为设置引脚状态及对引脚进行高低电平的写入。
OUTPUT是写出状态,与之对应的是INPUT是读取,用于获得某一个引脚的电平状态,需要用到digitalRead函数,并返回一个int型1或0。
这里digitalWrite(13,HIGH)意为将13号引脚设为高电平状态。点击编译并Update到Mega里,如图
OK,首个test demo就已经完成了,Update完毕之后,Mega主板自动开始运行代码,LED灯持续高电平状态,即保持常亮。
接下来我们可以试试digitalRead()这个函数,代码修改如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | int ledPin = 13;//板载黄色LED灯的引脚编号 int keyPin = 7;//声明一个要使用的引脚 //初始化 void setup() { pinMode(ledPin, OUTPUT);//设置引脚状态为OUTOUT模式 pinMode(keyPin, INPUT); } //主循环 void loop() { if (digitalRead(keyPin) == 1 ) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } } |
此时我们需要用到PMW区域的7号引脚。程序会监听7号引脚的电平状态,当其接地(GND)时为低电平返回值为0,反之则为1。烧入程序,可看到,当用一根线将PMW7和GND相连时,L灯熄灭。证明运行正常
以上仅为Arduion的基础应用。关于Arduino的其他语法,大家可以参考API,这里提供一份下载(点击下载API)
后续内容会继续更新。谢谢关注。
BeiTown
2013.03.23