《arduino学习笔记大全》由会员分享,可在线阅读,更多相关《arduino学习笔记大全(148页珍藏版)》请在金锄头文库上搜索。
1、arduino 学习笔记1 - 什么是 arduino?原文地址:http:/www.geek- arduino 就先要了解什么是单片机,arduino 平台的基础就是 AVR 指令集的单片机。1、什么是单片机?它与个人计算机有什么不同?一台能够工作的计算机要有这样几个部份构成:中央处理单元 CPU(进行运算、控制) 、随机存储器 RAM(数据存储) 、存储器 ROM(程序存储) 、输入/输出设备 I/O(串行口、并行输出口等) 。在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)
2、机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。2、单片机有什么用?实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用酷睿处理器吗?应用的关键是看是否够用,是否有很好的性能价格比。如果一台冰箱都需要用酷睿处理起来进行温度控制,那价格就是天价了。单片机通常用于工业生产的控制、生活中与程序和控制有关(如:电子琴、冰箱、智能空调等)的场合。下图就是一个 Atmega328P-PU 单片机,基于 AVR 指令集的8位处理器,频率20MHz,存储器空间32KB。什么是 Arduino?Ar
3、duino 是一个能够用来感应和控制现实物理世界的一套工具。 它由一个基于单片机并且开放源码的硬件平台,和一套为 Arduino 板编写程序 的开发环境组成。Arduino 可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。Arduino 项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:Flash,Processing,MaxMSP)进行通讯。Arduino 板你可以选择自己去手动组装或是购买已经组装好的;Arduino 开源的IDE 可以免费下载得到。Arduino 的编程语言就像似在对一个类似于物理的计算平台进行相应的连
4、线,它基于处理多媒体的编程环境。为什么要使用 Arduino?有很多的单片机和单片机平台都适合用做交互式系统的设计。例如:Parallax Basic Stamp, Netmedias BX-24,Phidgets,MITs Handyboard 和其它等等提供类似功能的。 所有这些工具,你都不需要去关心单片机编程繁琐的细节,提供给你的是一套容易使用的工具包。 Arduino 同样也简化了同单片机工作的流程,但同其它系统相比 Arduino 在很多地方更具有优越性,特别适合老师,学生和一些业余爱好者们使用: 便宜 和其它平台相比,Arduino 板算是相当便宜了。最便宜的 Arduino 版本
5、可以自己动手制作,即使是组装好的成品,其价格也不会超过200元。 跨平台 Arduino 软件可以运行在 Windows,Macintosh OSX,和 Linux 操作系统。大部分其它的单片机系统都只能运行在 Windows 上。 简易的编程环境 初学者很容易就能学会使用 Arduino 编程环境,同时它又能为高级用户提供足够多的高级应用。对于老师们来说,一般都能很方便的使用 Processing 编程环境,所以如果学生学习过使用 Processing 编程环境的话,那他们在使用Arduino 开发环境的时候就会觉得很相似很熟悉。 软件开源并可扩展 Arduino 软件是开源的,对于有经验的
6、程序员可以对其进行扩展。Arduino 编程语言可以通过 C+库进行扩展,如果有人想去了解技术上的细节,可以跳过 Arduino 语言而直接使用 AVR C 编程语言(因为 Arduino 语言实际上是基于AVR C 的) 。类似的,如果你需要的话,你也可以直接往你的Arduino 程序中添加 AVR-C 代码。 硬件开源并可扩展 Arduino 板基于 Atmel 的 ATMEGA8 和ATMEGA168/328 单片机。Arduino 基于 Creative Commons 许可协议,所以有经验的电路设计师能够根据需求设计自己的模块,可以对其扩展或改进。甚至是对于一些相对没有什么经验的用户
7、,也可以通过制作试验板来理解 Arduino 是怎么工作的,省钱又省事。 Arduino 基于 AVR 平台,对 AVR 库进行了二次编译封装,把端口都打包好了,寄存器啦、地址指针之类的基本不用管。大大降低了软件开发难度,适宜非专业爱好者使用。优点和缺点并存,因为是二次编译封装,代码不如直接使用 AVR 代码编写精练,代码执行效率与代码体积都弱于 AVR 直接编译。性能:Digital I/O 数字输入/输出端口 013。Analog I/O 模拟输入/输出端口 0-5。支持 ICSP 下载,支持 TX/RX。输入电压:USB 接口供电或者 5V-12V 外部电源供电。输出电压:支持 3.3V
8、 级 5V DC 输出。处理器:使用 Atmel Atmega168 328 处理器,因其支持者众多,已有公司开发出来 32 位的 MCU 平台支持 arduino。目前 arduino 的控制板最新的为 Arduino Uno,如下图: 国内使用比较多的为 Arduino Duemilanove 2009,主要原因是 Uno的 usb 控制芯片封装方式改变,制造成本上升,其他变化不大,性价比还是 Arduino Duemilanove 2009 比较好。 因其开源特性,生产 arduino 控制板的厂商众多,同样的Duemilanove 2009 就有很多种颜色。对于一些对电路板大小要求比较
9、严格的地方,arduino 团队提供了arduino Nano,此板体积做的非常小。如下图: arduino 板子上基本端口如图描述,对几个比较特殊的端口下面详细说明下:VIN 端口:VIN 是 input voltage 的缩写,表示有外部电源时的输入端口。AREF:Reference voltage for the analog inputs(模拟输入的基准电压) 。使用 analogReference()命令调用。ICSP:也有称为 ISP(In System Programmer),就是一种线上即时烧录,目前比较新的芯片都支持这种烧录模式,包括大家常听说的8051 系列的芯片,也都慢慢
10、采用这种简便的烧录方式。我们都知道传统的烧录方式,都是将被烧录的芯片,从线路板上拔起,有的焊死在线路板上的芯片,还得先把芯片焊接下来才能烧录。为了解决这种问题,发明了 ICSP 线上即时烧录方式。只需要准备一条 R232线(连接烧录器) ,以及一条连接烧录器与烧录芯片针脚的连接线就可以。电源的+5V,GND,两条负责传输烧录信息的针脚,再加上一个烧录电压针脚,这样就可以烧录了。arduino 学习笔记2 - 制作第一个电路 单 led 闪烁 做任何一个电路之前,一定要先了解电路中原件的参数,其工作电压,工作电流等。第一个实验咱们用到的 LED 从网上查找资料得知,其工作电压一般为1.5-2.0
11、V,工作电流一般为10-20ma,反向击穿电压为5V。控制板逻辑电路供电为5V。根据以上参数假设 LED 工作电压选用1.7 ,工作电流选用15ma,限流电阻=(总电压-LED 电压)/电流,所以限流电阻=(5-1.7)/0.015=220。首先需要从 arduino 官方网站下载其编译软件,地址是http:/arduino.cc/en/Main/Software笔者使用的平台为 win7 32位,如果大家使用的是其他平台,按照对应的下载就可以。下载回来的软件包解压缩后的目录结构如下图,arduino.exe 是程序的启动文件,driver 目录是控制板 usb 芯片驱动,usb 接上控制板后
12、如果要寻找驱动,把目录指定到这里就可以。本次实验所用到的器材为一个面包板,一个 LED,一个220 的电阻,几根导线,如下图: 本次实验的连接方法如下图,LED 两个针脚有一长一短,短的是连接 GND,长的是连接正极。在 LED 的长引脚前,需要添加一个220 的限流电阻。连接数字5号接口。 实物连接如下图: 通过面包板把个个电子器件连接好以后,接上 USB 线,设置好控制板型号、端口号。程序语言先不详解,大家先照猫画虎对着抄,后面通过各个实验,将对不同命令进行详解。编写程序前,先需要选择控制板的型号。如下图: 控制板型号选择好后,选择串口位置,笔者电脑的串口为COM3: 串口具体是多少号可以
13、到设备管理中进行查看,如下图: 先把程序复制进去:int ledPin=5; /设定控制 LED 的数字 IO 脚 void setup() pinMode(ledPin,OUTPUT);/设定数字 IO 口的模式,OUTPUT 为输出 void loop() digitalWrite(ledPin,HIGH); /设定 PIN5脚为 HIGH = 5V 左右 delay(2000); /设定延时时间,2000 = 2秒 digitalWrite(ledPin,LOW); /设定 PIN5脚为 LOW = 0V delay(2000); /设定延时时间,2000 = 2秒 复制代码图中 int
14、;void setup 等褐色的文字是系统命令,OUTPUT 等蓝色文字是命令的功能开关,黑色文字是变量。程序写好以后点击编译按钮进行编译。 编译完成后会显示出来编译后的文件大小,本次编译出来的程序大小为 1026 字节。 然后把编译好的程序下载到 arduino 控制板上,点击下载按钮。 下载完成后会有提示 把所有的 ledpin 换成 xxx 试试,一样可以滴ledpin 只是自己定义的一个名字,作用只是方便识别辨认。 本次实验效果如下,闪烁着光芒的灯。 。 。http:/ setup 等褐色文字是系统命令,OUTPUT 等蓝色文字是系统命令的功能开关,黑色文字是变量。在int ledpi
15、n=5中;设置了 LED 的数字 IO 脚,ledpin 仅仅是 5 号数字端口自定义出来的名字,变成 xxx 等都可以。对于多脚 IO 操作的程序中,为每一个引脚定义名字是有必要性的,程序复杂后方便功能识别。arduino 学习笔记3 - 六灯闪烁实验 通过上一节学习,知道了怎样让一个 led 进行闪烁,下面的实验会对六个 led 进行控制,先看硬件连接图。 按照上面的硬件连接方法接好后,咱们来测试两段程序,看看其中的差别。通过这两段程序介绍一下 arduino 的语言轮廓。 /设置控制 Led 的数字 IO 脚 int Led1 = 1; int Led2 = 2; int Led3 = 3; int Led4 = 4; int Led5 = 5; int Led6 = 6; /led 灯花样显示样式1子程序 void style_1(void) unsigned char j; for(j=1;j=1;j-) digitalWrite(j,LOW)