当前位置:首页 > arduino从零开始学 - 图文
开始Arduino之旅 第2章
图2-18 VBB软件截图
VBB可以模拟Arduino连接各种电子模块,例如液晶屏、舵机、逻辑数字电路、各种传感器以及其他的输入/输出设备。这些部件都可以直接使用,也可以通过组合,设计出更复杂的电路和模块。
使用VBB可以更加直观的了解电路设计,能够在设计出原型后快速实现。而且虚拟面板具有的可视性和模拟交互效果,可以实时地在软件上看到LED、LCD等可视模块的变化,同时可以确保安全,因为不是实物操作不会引起触电或者烧毁芯片等问题。另外,用VBB设计出的作品也可以更快速的分享和整理,使学习和使用更加方便、简单。
VBB的版本更新很频繁,其官方网站为:http://www.virtualbreadboard.com/。截至到目前为止,官方版本已经更新到了4.45。随着用户的增多,VBB由原来的免费下载变更为收费,想要学习的读者需要购买使用。
还有其他不错的第三方软件如Proteus,既可以进行Arduino的仿真,又能画出标准的电路图和PCB图样,在国内外使用的人很多。读者如果有兴趣可以自行查阅资料下载学习。
2.3 第一次上手Arduino
在下载安装好IDE之后,下一步就可以实践了。通过编写和上传第一个程序,正式进入Arduino的世界。在本节中,需要做的不仅是实现编写和上传程序,更要考虑这些事情背后是如何实现的,通过学习和总结Arduino编程的技巧,快速上手Arduino。
2.3.1 加载第一个程序
在学习一些语言时,比如C语言,经典的入门程序就是鼎鼎有名的Hello World!简短的两个单词敲开了C语言的大门,让学习C语言者感觉非常简单而有趣,同时这个简单的程序延伸了很多深刻的话题,比如主函数、输入输出、编译过程等等。程序2-1便是C语言著名的敲门砖。
程序2-1:C语言的向世界问好
·21· Arduino开发从零开始学 #include
Arduino语言也像C语言一样,同样追随C语言的脚步,在硬件的世界里,使用灯光的闪烁代表hello world,下面我们编写第一个Sketch!
打开Arduino IDE后,需要新建一个空的Sketch。之后就可以在编辑器上编写第一个Sketch,如程序2-2所示。
程序2-2:Arduino向世界问好
void setup() {
pinMode(13,OUTPUT); }
void loop() {
digitalWrite(13,HIGH); delay(1000);
digitalWrite(13,LOW); delay(1000); }
//将13引脚设置为输出引脚
//13引脚输出高电平,即将小灯点亮 //13引脚输出低电平,即将小灯熄灭
这个例子是Arduino示例Basics中的Blink程序,也可以通过图2-19所示的操作打开该程序。Blink作为Arduino入门的初始程序非常简洁易懂,在每句话的后面作者都给出了注释,官方示例中的程序如图2-20所示。
图2-19 Blink所在位置
·22· 开始Arduino之旅 第2章
图2-20 Blink程序
编写或者打开Blink之后,便可以连接Arduino开发板,将开发板的USB接口连接到电脑上,当系统提示安装成功,并且开发板的绿色“ON”指示灯亮起时,就可以进行Blink的上传。单击“上传”按钮,再经过短暂的几秒烧写之后,会发现开发板的串口指示灯闪烁了数次,提示成功之后,开发板装载的LED灯便开始不停闪烁。
之后再来看状态区域,状态区域显示“下载成功”和“二进制程序大小1018字节”的字样。我们第一个Arduino程序就下载并成功运行了。
2.3.2 用Arduino IDE开发程序流程
当程序编写好之后,关闭前需要将文件保存到一个目录中。如果是开发一个项目,编写的Sketch可能不止一个,负责不同部分和模块开发的人员都各自编写好Sketch,最后综合Sketeh时发现程序特别难以阅读,并且很多变量名称不一致,修改起来非常麻烦,这就需要一个规范的开发流程。
在软件工程中,软件项目开发有很多不同的模型适用于不同的开发需求,例如瀑布模型、螺旋模型等。由于嵌入式项目bug排查起来比较费力,为了开发一个稳定的嵌入式系统,往往采用“增量”式模型,即在功能最简单、最基本的系统基础上逐渐扩展其功能。
因此,在编写程序之前,必须对程序所实现的功能有一个详细的规划,对整个系统的基本功能需求有一个清晰的定义。在编写程序时应当约定好各种变量、函数名称,并做好注释和文档记录。不同的模块在开发过程中需要不断的测试,也要做好详细的开发和测试记录。
编写程序时也是同样道理,增量式模型要求迅速将系统整体的基本功能实现出来,对于不同的功能可以利用不同的函数进行实现和测试,而不必在主程序中直接定义和实现,这样既快捷又清晰易读。
·23· Arduino开发从零开始学 2.3.3 函数库和程序架构介绍
Arduino程序的架构大体可分为3个部分。 (1)声明变量及接口的名称。
(2)setup()。在Arduino程序运行时首先要调用setup()函数,用于初始化变量、设置针脚的输出/输入类型、配置串口、引入类库文件等等。每次 Arduino 上电或重启后,setup()函数只运行一次。
(3)loop()。在setup()函数中初始化和定义变量,然后执行loop()函数。顾名思义,该函数在程序运行过程中不断地循环,根据反馈,相应地改变执行情况。通过该函数动态控制Arduino主控板。
程序2-3中包含了完整的Arduino基本程序框架。 程序2-3:闪灯程序
int LEDPin = 3; void setup() {
pinMode(LEDPin, OUTPUT); }
void loop() {
digitalWrite(LEDPin, HIGH); delay(1000);
digitalWrite(LEDPin, LOW); delay(1000); }
//将3引脚设置为输出引脚
//3引脚输出高电平,即将小灯点亮 //3引脚输出低电平,即将小灯熄灭
这是一个简单的实现LED灯闪烁的程序,在这个程序里,int LEDPin = 3;就是上面架构的第一部分,用来声明变量及接口。void setup()函数则将LEDPin引脚的模式设为输出模式。在void loop()中则循环执行点亮熄灭LED灯,实现LED灯的闪烁。
Arduino官方团队提供了一套标准的Arduino函数库,如表2-1所示。
表2-1 Arduino标准库文件
库文件名 EEPROM Ethernet LiquidCrystal Servo SoftwareSerial Stepper Matrix Sprite Wire ·24· 说明 读写程序库 以太网控制器程序库 LCD控制程序库 舵机控制程序库 任何数字IO口模拟串口程序库 步进电机控制程序库 LED矩阵控制程序库 LED矩阵图象处理控制程序库 TWI/I2C总线程序库
共分享92篇相关文档