您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Arduino基础入门套件教程
Arduino介绍篇概述什么是Arduino?Arduino是一块基于开放原始代码的Simplei/o平台,并且具有开发语言和开发环境都很简单、易理解的特点。让您可以快速使用Arduino做出有趣的东西。它是一个能够用来感应和控制现实物理世界的一套工具。它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成。Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。Arduino项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:Flash,Processing,MaxMSP)进行通讯。Arduino开源的IDE可以免费下载得到。特色描述z开放原始码的电路图设计,开发界面免费下载,也可依需求自己修改!!z下载程序简单、方便。z可简单地与传感器、各式各样的电子元件连接(如:LED灯、蜂鸣器、按键、光敏电阻等等),做出各种各样有趣的东西。z使用高速的微处理控制器(ATMEGA328)。z开发语言和开发环境都非常的简单、易理解,非常适合初学者学习。性能描述zDigitalI/O数字输入/输出端口0—13。zAnalogI/O模拟输入/输出端口0-5。z支持ISP下载功能。z输入电压:接上USB时无须外部供电或外部5V~9V直流电压输入。z输出电压:5V直流电压输出和3.3V直流电压输出和外部电源输入。z采用AtmelAtmega328微处理控制器。因其支持者众多,已有公司开发出来32位的MCU平台支持arduino。zArduino大小尺寸:宽70mmX高54mm。几个比较特殊的端口说明:VIN端口:VIN是inputvoltage的缩写,表示有外部电源时的输入端口。如果不使用USB供电时,外接电源可以通过此引脚提供电压。(如电池供电,电池正构接VIN端口,负构接GND端口)。AREF:Referencevoltagefortheanaloginputs(模拟输入的基准电压)。使用analogReference()命令调用。ArduinoC语法介绍Arduino语法是建立在C/C++基础上的,其实也就是基础的C语法,Arduino语法只不过把相关的一些参数设置都函数化,不用我们去了解他的底层,让我们去了解AVR单片机(微控制器)的朋友也能轻松上手。那么这里我就简单的注释一下Arduino语法。关键字:zif zif...else zfor zswitchcase zwhile zdo...w hilezbreak zcontinue zreturn zgoto 语法符号:z; z{} z// z/**/ 运算符:z =z+ z -z* z/ z% z== z!= z z z= z= z&& z|| z! z++ z --z+= z -=z*= z/= 数据类型:zboolean 布尔类型zchar 字符类型zbyte 字节类型zint 整数类型zunsignedint 无符号整型zlo ng长整型zunsignedlong 无符号长整型zfloat 实数类型zdouble zstring zarray zvoid 常量:z HIGH|LOW表示数字IO口的电平,HIGH表示高电平(1),LOW表示低电平(0)。zINPUT|OUTPUT 表示数字IO口的方向,INPUT表示输入(高阻态),OUTPUT表示输出(AVR能提供5V电压40mA电流)。z true|falsetrue表示真(1),false表示假(0)。以上为基础c语法的关键字和符号,大家可以了解,具体使用可以结合实验的程序。结构voidsetup() 初始化发量,管脚模式,调用库函数等voidloop() 连续执行函数内的语句功能数字I/Oz pinMode(pin,mode)数字IO口输入输出模式定义函数,pin表示为0~13,mode表示为INPUT或OUTPUT。z digitalWrite(pin,value)数字IO口输出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。比如定义HIGH可以驱动LED。z intdigitalRead(pin)数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。比如可以读数字传感器。模拟I/Oz intanalogRead(pin)模拟IO口读函数,pin表示为0~5(ArduinoDiecimila为0~5,Arduinonano为0~7)。比如可以读模拟传感器(10位AD,0~5V表示为0~1023)。z analogWrite(pin,value)PWM数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数,pin表示3,5,6,9,10,11,value表示为0~255。比如可用于电机PWM调速或音乐播放。时间函数z delay(ms)延时函数(单位ms)。z delayMicroseconds(us)延时函数(单位us)。数学函数z min(x,y)求最小值z max(x,y)求最大值z abs(x)计算绝对值z constrain(x,a,b)约束函数,下限a,上限b,x必须在ab之间才能返回。z map(value,fromLow,fromHigh,toLow,toHigh)约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间。z pow(base,exponent)开方函数,base的exponent次方。z sq(x)平方z sqrt(x)开根号 第一章HelloWorld!这一章,我们简单学习一下利用ArduinoIDE的串口工具,在电脑中显示我们想要显示的内容。实例代码:voidsetup(){Serial.begin(9600);//opensserialport,setsdatarateto9600bpsSerial.println(HelloWorld!);}voidloop(){}说明:Serial.begin(9600);这个函数是为串口数据传输设置每秒数据传输速率,每秒多少位数(波特率)。为了能与计算机进行通信,可选择使用以下这些波特率:“300,1200,2400,4800,9600,14400,19200,28800,38400,57600或115200”。实验结果与操作:1)把代码下载到arduino控制板。2)下载成功后,“”先从选项“tool”,选择相应的arduino控制板,和对应的“com”口。打开串口工具,在新打开的串口工具窗口的“右下角”选择相应的波特率。第二章LED板载闪烁实验第三章LED闪烁实验一、发光二极管介绍1、什么是发光二极管发光二极管简称为LED。由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管,在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。2、工作原理发光二极管的反向击穿电压约5伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。限流电阻R可用下式计算:R=(E-VF)/I;式中E为电源电压,VF为LED的正向压降,I为LED的一般工作电流。发光二极管的工作电压一般为1.5~2.0V,其工作电流一般为10~20mA。所以在5v的数字逻辑电路中,可使用220Ω的电阻作为限流电阻。3、Led灯的内部结构与连线发光二极管的两根引线中较长的一根为正极,应连接电源正极。有的发光二极管的两根引线一样长,但管壳上有一凸起的小舌,靠近小舌的引线是正极。如下图所示:Led灯有两种连线方法:当led灯的阳极通过限流电阻与板子上的数字I/O口相连,数字口输出高电平时,led导通,发光二极管发出亮光;数字口输出低电平时,led截止,发光二极管熄灭。如图:当led灯的阴极与板子上的数字I/O口相连时,数字口输出高电平,led截止,发光二极管熄灭;数字口输出低电平,led灯导通,发光二极管点亮。本实验选择了接线方法1连接发光二极管,将220Ω电阻的一端插在PrototypeShield扩展板上的第8个digitalI/O口,电阻的另一端插在面包板上,电阻和发光二极管通过导线相连,发光二极管的负端插在面包板上与GND相连。具体连接如图:简单的控制一个led灯的闪烁实验1)实验器件Led 灯:1个220Ω 的电阻:1个 多彩面包板实验跳线:若干2)实验连线按照Arduino使用介绍将控制板、板子、面包板连接好,下载线插好。最后,按照图将发光二级管连接到数字的第8引脚。这样我们就完成了实验的连线部分。3)实验原理先设置数字8引脚为高电平点亮led灯,然后延时1s,接着设置数字8引脚为低电平熄灭led灯,再延时1s。这样使led灯亮1s、灭1s,在规视上就形成闪烁状态。如果想让led快速闪烁,可以将延时时间设置的小一些,但不能过小,过小的话人眼就识别不出来了,看上去就像led灯一直在亮着;如果想让led慢一点闪烁,可以将延时时间设置的大一些,但也不能过大,过大的话就没有闪烁的效果了。4)程序代码程序代码如下:intledPin=8;//设定控制LED的数字IO脚voidsetup(){pinMode(ledPin,OUTPUT);//设定数字IO口的模式,OUTPUT为输出}voidloop(){digitalWrite(ledPin,HIGH);//设定PIN8脚为HIGH=5V左右delay(1000);//设定延时时间,1000=1秒digitalWrite(ledPin,LOW);//设定PIN8脚为LOW=0Vdelay(1000);//设定延时时间,1000=1秒}从Arduino教程中我们可以知道,Arduino语法是以setup()开头,loop()作为主体的一个程序极架。setup()是用来初始化发量,管脚模式,调用库函数等等,此函数只运行一次。本程序在setup()中用数字IO口输入输出模式定义函数pinMode(pin,mode),将数字的第8引脚设置为输出模式。loop()函数是一个循环函数,函数内的语句周而复始的循环执行,本程序在loop()中先用数字IO口输出电平定义函数digitalWrite(pin,value),将数字8口定义为高电平,点亮led灯;接着调用延时函数delay(ms)(单位ms)延时1000ms,让发光二极管亮1s;再用数字IO口输出电平定义函数digitalWrite(pin,value),将数字8口定义为低电平,熄灭led灯;接着再调用延时函数delay(ms)(单位ms)延时1000ms,让发光二极管熄灭1s。因为loop()函数是一个循环函数,所以这个过程会不断的循环。5)下载程序按照arduino教程中的程序下载方法将本程序下载到实验板中。6)程序功能将程序下载到实验板后我们可以观察到,发光二极管以1s的时间间隔不断的闪烁。第四章PWM控制实验Arduino端口的输入电压只有两个0V与5V。如我想要3V的输出电压怎么办…,也许你会说串联电阻?OK,这个方法是正确的。但是如果我想1V,3V,3.5V等等之间来回变动怎么办呢?不可能不停地切换电阻吧。这种情况下…,就需要使用PWM了。他是怎么控制的呢,对于arduino的数字端口电压输出只有LOW与HIGH两个开关,对应的就是0V与5V的电压输出,我们本把LOW
本文标题:Arduino基础入门套件教程
链接地址:https://www.777doc.com/doc-3384317 .html