什么是Arduino?
Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。
Arduino的优点
开放性:Arduino的硬件电路的软件开发环境都是完全开源的,在不从事商业用途的情况下任何人都可以使用、修改和分发它。这样不但可以使用户更好的理解Arduino的电路原理,更可以根据自己的需要而去修改它。比如由于空间的限制,需要设计异形的电路板;或是将自己的扩展电路与主控制电路设计到一起。
易用性:对于稍微有心的人,不论基础如何,只要他有兴趣,拿到Arduino之后的一个小时之内,应该就可以成功运行第一个简单的程序了。Arduino与PC的连接采用了当下最主流的USB连接,你可以像使用一只MP3一样把Arduino与电脑直接连起来而不要再额外安装任何驱动程序。而且Arduino的开发环境软件也非常的简单,一目了然的菜单,仅提供了最必须的工具栏,除去了一切可能会使初学者眼花缭乱的元素,你甚至可以不阅读手册便实现代码的编译与下载(我可没说编写)。
交流性:对于初学者来说,交流与展示是非常能激发学习热情的途径。但有些时候,你用AVR做了个循迹小车,我用PIC做了个小车循迹。那么对单片机理解还不是特别深刻的初学者来说,交流上恐怕就会有些困难。而Arduino已经划定了一个比较统一的框架,一些底层的初始化采用了统一的方法,对数字信号和模拟信号使用的端口也做了自己的标定,初学者在交流电路或程序的时候非常方便。
丰富的第三方资源:Arduino无论硬件还是软件,都是全部开源的,你可以深入的了解到底层的全部机理,也预留了非常友好的第三方库开发接口。秉承了开源社区一贯的开放性和分享性,很多爱好者在成功的实现了自己的设计后,会把自己的硬件和软件拿出来与大家分享。对于后来者来说,你可以在Arduino社区轻松找到自己想要使用的一些基本功能模块:舵机控制、PID调速、A/D转换等。特别一些模块供应商也开始越来越重视Arduino社区,会为自己的产品提供Arduino下的使用库,这些都极大的方便了Arduino开发者,使你可以不必拘泥于一些基本功能的编写,而可以把自己的精力更多的放在自己想要的功能设计中去。
个人觉得主要是在于它易于上手,而且相对其他单片机而言价格相对较低,学习成本较低!
入门实例(红绿灯的实现)
我们完成这个实验所需的元件除了Arduino 控制器和下载线还需要的硬件如下:
红色M5 直插LED*1
黄色M5 直插LED*1
绿色M5 直插LED*1
220Ω电阻*3
面包板*1
面包板跳线*1 扎
准备好上述元件我们就可以开工了,我们可以按照上面小灯闪烁的实验举一反三,下面是我们提供参考的原理图,我们使用的分别是数字10、7、4、接口.
实物连接示意图:
既然是交通灯模拟实验,红黄绿三色小灯闪烁时间就要模拟真实的交通灯,我们使用Arduino 的delay()函数来控制延时时间,相对于C 语言就要简单许多了。
下面是一段参考程序:
int redled =10;
//定义数字10 接口
int yellowled =7;
//定义数字7 接口
int greenled =4;
//定义数字4 接口
void setup() {
pinMode(redled, OUTPUT);
//定义红色小灯接口为输出接口
pinMode(yellowled, OUTPUT);
//定义黄色小灯接口为输出接口
pinMode(greenled, OUTPUT);
//定义绿色小灯接口为输出接口
}
void loop() {
digitalWrite(redled, HIGH);
//点亮红色小灯
delay(1000);
//延时1 秒
digitalWrite(redled, LOW);
//熄灭红色小灯
digitalWrite(yellowled, HIGH);
//点亮黄色小灯
delay(200);
//延时0.2 秒
digitalWrite(yellowled, LOW);
//熄灭黄色小灯
digitalWrite(greenled, HIGH);
//点亮绿色小灯
delay(1000);
//延时1 秒
digitalWrite(greenled, LOW);
//熄灭绿色小灯
}
下载程序完成后就可以看到我们自己设计控制的交通灯了。
实拍成品展示
*RadeBit瑞安全原创文章,未经许可禁止转载!
最新评论