arduino入门教程.docx
- 文档编号:17632980
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:117
- 大小:11.98MB
arduino入门教程.docx
《arduino入门教程.docx》由会员分享,可在线阅读,更多相关《arduino入门教程.docx(117页珍藏版)》请在冰点文库上搜索。
arduino入门教程
Arduino是什么?
开始讲之前跟大家普及一个知识点,Arduino是一个意大利品牌。
Arduino是一个开放源码电子原型平台,拥有灵活、易用的硬件(各种开发板)和软件(arduinoIDE也就是编程器)。
吉安优创电子科技有限公司作为arduino国内为数不多的正版授权公司,坚持正版。
打击抵制各类盗版,改版,兼容版的侵权行为,也奉劝广大消费者不要去购买,以免带来不必要的麻烦。
Arduino专为设计师,工艺美术人员,业余爱好者,以及对开发互动装置或互动式开发环境感兴趣的人而设的。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。
板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器对Arduino的编程是利用Arduino编程语言(基于Wiring)和Arduino开发环境(basedonProcessing)来实现的。
基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信(比如Flash,Processing,MaxMSP)来实现。
如何学习arduino
认识ArduinoUNO
ArduinoUNO是Arduino入门的最佳选择,在编著本书时,其最新的版本为UNOR3,本书大部分内容都是基于ArduinoUNOR3写成的。
ArduinoUNO的详细组成信息如下图所示。
1.电源(Power)
ArduinoUNO有三种供电方式:
●通过USB接口供电,电压为5V;
●通过DC电源输入接口供电,电压要求7~12V;
●通过电源接口处5V或者VIN端口供电,5V端口处供电必须为5V,VIN端口处
供电为7~12V。
2.指示灯(LED)
ArduinoUNO带有4个LED指示灯,作用分别是:
●ON,电源指示灯。
当Arduino通电时,ON灯会点亮。
●TX,串口发送指示灯。
当使用USB连接到计算机且Arduino向计算机传输数据
时,TX灯会点亮。
●RX,串口接收指示灯。
当使用USB连接到计算机且Arduino接收计算机传来的
数据时,RX灯会点亮。
●L,可编程控制指示灯。
该LED通过特殊电路连接到Arduino的13号引脚,当
13号引脚为高电平或高阻态时,该LED会点亮;当为低电平时,不会点亮。
因
此可以通过程序或者外部输入信号来控制该LED的亮灭。
3.复位按键(ResetButton)
按下该按键可以使Arduino重新启动,从头开始运行程序。
4.存储空间(Memory)
Arduino的存储空间即是其主控芯片所集成的存储空间。
也可以通过使用外设芯片的方式来扩展Arduino的存储空间。
ArduinoUNO的存储空间分三种:
●Flash,容量为32KB。
其中0.5KB作为BOOT区用于储存引导程序,实现通过串
口下载程序的功能;另外的31.5KB作为用户储存的空间。
相对于现在动辄几百
GB的硬盘,可能觉得32KB太小了,但是在单片机上,32KB已经可以存储很大
的程序了。
●SRAM,容量为2KB。
SRAM相当于计算机的内存,当CPU进行运算时,需要
在其中开辟一定的存储空间。
当Arduino断电或复位后,其中的数据都会丢失。
●EEPROM,容量为1KB。
EEPROM的全称为电可擦写的可编程只读存储器,是
一种用户可更改的只读存储器,其特点是在Arduino断电或复位后,其中的数据
不会丢失。
5.输入/输出端口(Input/OutputPort)
如图1-20所示,ArduinoUNO有14个数字输入/输出端口,6个模拟输入端口。
其中一些带有特殊功能,这些端口如下:
●UART通信,为0(RX)和1(TX)引脚,被用于接收和发送串口数据。
这两个
引脚通过连接到ATmega16U2来与计算机进行串口通信。
●外部中断,为2和3引脚,可以输入外部中断信号。
●PWM输出,为3、5、6、9、10和11引脚,可用于输出PWM波。
●SPI通信,为10(SS)、11(MOSI)、12(MISO)和13(SCK)引脚,可用于
SPI通信。
●TWI通信,为A4(SDA)、A5(SCL)引脚和TWI接口,可用于TWI通信,兼
容IIC通信。
●AREF,模拟输入参考电压的输入端口。
●Reset,复位端口。
接低电平会使Arduino复位。
当复位键被按下时,会使该端口
接到低电平,从而使Arduino复位。
ArduinoIDE开发环境
在开始使用Arduino之前,需要在电脑上安装Arduino的集成开发环境(此后简称IDE)。
打开资料中的官方软件(亲也可以自己到官网下载https:
//www.arduino.cc/en/Main/Software),如下图所示,
按照安装以下步骤安装到熟悉的文件位置(后面经常会用到的哦)。
同意软件使用协议。
点击进入下一步
安装.件位置(需记住)
等待安装
安装完成
安装好官方的IDE以后电脑桌面或出现这个图标
以后编写代码都是打开这个图标进行的哦。
双击桌面的软件图标,进入ArduinoIDE之后。
如下图所示
在工具栏上,ArduinoIDE提供了常用功能的快捷键:
校验(Verify),验证程序是否编写无误,若无误则编译该项目。
下载(Upload),下载程序到Arduino控制器上。
新建(New),新建一个项目。
打开(Open),打开一个项目。
保存(Save),保存当前项目。
串口监视器(SerialMonitor),IDE自带的一个简单的串口监视器程序,用它可以查看串口发送或接收到的数据。
相对于IAR、Keil等专业的硬件开发环境,Arduino的开发环境给人以简单明了的感觉,但正是这种简单,省去了很多不常用的功能,使得基础知识不多的使用者更容易上手。
驱动安装教程
把开发板接上电脑,一定要带数据传输功能的USB接口哦。
这个时候系统会自动安装驱动文件的,在电脑的右下角会有一个安装驱动的提示。
大概几秒钟不到就会安装好的。
安装好后在电脑的设备管理器页面会出现下图所示:
此时如果亲还是未能安装上的话,那就有可能是亲的电脑系统有点问题,可以通过以下解
决办法处理
打开资料中的驱动安装文件夹如下图所示:
进行手动安装驱动程序,
HelloWorld实验
实验器件:
■UNO控制板:
1个
■USB数据线:
1条
实验连线
将代码上传到开发板。
直接打开对应的例程,选择对应的开发板和端口,即可直接烧录到开发板中。
程序代码(直接打开对应例程即可)
intval;//定义变量val
intledpin=13;//定义数字接口13
voidsetup()
{
Serial.begin(9600);//设置波特率为9600,这里要跟软件设置相一致。
当接入特定设备(如:
蓝牙)时,我们也要跟其他设备的波特率达到一致。
pinMode(ledpin,OUTPUT);//设置数字13口为输出接口,Arduino上我们用到的I/O口都要进行类似这样的定义。
}
voidloop()
{
val=Serial.read();//读取PC机发送给Arduino的指令或字符,并将该指令或字符赋给val
if(val=='R')//判断接收到的指令或字符是否是“R”。
{//如果接收到的是“R”字符
digitalWrite(ledpin,HIGH);//点亮数字13口LED。
delay(500);
digitalWrite(ledpin,LOW);//熄灭数字13口LED
delay(500);
Serial.println("HelloWorld!
");//显示“HelloWorld!
”字符串
}
}
实验结论:
打开串口监视器,如下图:
在串口监视器内输入“R”
开发板上的13号LED灯会闪一下;
串口监视器会收到来自Arduino的信息HelloWorld
LED灯闪烁实验
产品介绍:
led灯:
发光二极管(LightEmittingDiode),简称LED
发光二极管在电路中用文字符号VD表示,其图形符号如图所示。
发光二极管的图形符号
实物分析图
普通发光二极管的工作电压一般为2~2.5V,在电路中使用时一般串联一个220Ω~1k的电阻。
实验器件:
■Led灯:
1个
■220欧的电阻:
1个
■多彩面包板实验跳绳:
若干
实验连线
1.将发光二极管插入面包板,
2.用杜邦线将发光二极管的短脚连接到开发板的GND接口,
3.将电阻的一端连接到发光二极管的长脚,
4.将电阻的另外一端用杜邦线连接到10引脚。
将代码上传到开发板。
程序代码(直接打开对应例程即可)
intLED=10;//定义数字接口10,对应
voidsetup()
{
pinMode(LED,OUTPUT);//设置数字10口为输出接口,Arduino上我们用到的I/O口都要进行类
似这样的定义。
}
voidloop()//死循环体
{
digitalWrite(LED,HIGH);//IO口10设置为高电平,点亮数字10口LED
delay(500);//延时500MS
digitalWrite(LED,LOW);//IO口10设置为低电平,熄灭数字10口LED
delay(500);//延时500MS
}
实验结论:
led灯闪烁
LED流水灯实验
产品介绍:
电阻:
电阻器通常分为三类:
固定电阻器、可调电阻器及特殊电阻器。
普通电阻器的识别
电阻器阻值和允许误差常用的标志方法有下列3种。
1、直接标志法
将电阻器的阻值和误差等级直接用数字印在电阻器上。
对小于1000W的阻值只标出数值不标单位;对kW、MW只标注k、M;精度等级标Ⅰ级或Ⅱ级,Ⅲ级不标明。
2、文字符号法
将需要标志的主要参数与技术指标用文字和数字符号有规律地标志在产品表面上,如欧姆用W表示,千欧用k表示,兆欧(106W)用M表示,吉欧(109 W)用G表示,太欧(1012W)用T表示。
3、色环标志法
对体积很小的电阻和一些合成电阻器,其阻值和误差常用色环来标注,如图1.2所示色环标志法有4环和5环两种。
4环电阻的第1道环和第2道环分别表示电阻的第1位和第2位有效数字,第3道环表示10的乘方数(10n,n为颜色所表示的数字),第4道环表示允许误差(若无第4道色环,则误差为±20%)。
色环电阻器的单位一律为W。
实验器件:
■LED灯:
6个
■220欧电阻:
6个
■多彩杜邦线:
若干
实验连线
1.将6个发光二极管依次插入面包板,
2.用杜邦线将6个发光二极管的短脚连接到面包板的横排插口中,
3.用电阻将6个发光二极管的长脚连接到面包板的竖排插口中。
4.将电阻的另外一端用杜邦线连接到开发板的依次234567引脚。
这样我们就完成了实验的连线部分。
将代码上传到开发板。
程序代码(直接打开对应例程即可)
intval;//定义变量val
intBASE=2;//第一颗LED接的I/O脚
intNUM=6;//LED的个数
voidsetup()
{
for(inti=BASE;i
{
pinMode(i,OUTPUT);//設定數字I/O腳為輸出
}
}
voidloop()
{
for(inti=BASE;i
{
digitalWrite(i,LOW);//設定數字I/O腳輸出為"低",即逐漸關燈
delay(200);//延遲
}
for(inti=BASE;i
{
digitalWrite(i,HIGH);//設定數字I/O腳輸出為"低",即逐漸開燈
delay(200);//延遲
}
}
实验结论:
可以看到LED灯被逐个点亮,然后逐个熄灭。
流水灯的效果。
LED交通灯实验
实验器件:
■红色LED灯:
1个
■黄色LED灯:
1个
■绿色LED灯:
1个
■220欧电阻:
3个
■面包板:
1个
■多彩杜邦线:
若干
实验连线
1.将3个发光二极管插入面包板,
2.用杜邦线将3个发光二极管的长脚连接到开发板的4710接口,
3.将电阻的一端连接到面包板的横排插口,
4.将面包板的横排插口用导线连接到开发板的GND接口。
这样我们就完成了实验的连线部分。
将代码上传到开发板。
程序代码(直接打开对应例程即可)
intredled=10;//定义数字10接口
intyellowled=7;//定义数字7接口
intgreenled=4;//定义数字4接口
voidsetup()
{
pinMode(redled,OUTPUT);//定义红色小灯接口为输出接口
pinMode(yellowled,OUTPUT);//定义黄色小灯接口为输出接口
pinMode(greenled,OUTPUT);//定义绿色小灯接口为输出接口
}
voidloop()
{
digitalWrite(greenled,HIGH);////点亮绿灯
delay(5000);//延时5秒
digitalWrite(greenled,LOW);//熄灭绿灯
for(inti=0;i<3;i++)//闪烁交替三次,黄灯闪烁效果
{
delay(500);//延时0.5秒
digitalWrite(yellowled,HIGH);//点亮黄灯
delay(500);//延时0.5秒
digitalWrite(yellowled,LOW);//熄灭黄灯
}
delay(500);//延时0.5秒
digitalWrite(redled,HIGH);//点亮红灯
delay(5000);//延时5秒
digitalWrite(redled,LOW);//熄灭红灯
}
实验结论
可以看到绿色LED灯被点亮5秒,然后熄灭。
同时黄色LED灯被点亮闪烁3妙,然后熄灭。
然后红色LED灯被点亮5秒,然后熄灭。
按键控制实验
产品介绍:
轻触开关:
我们称为“按键”或“按钮”,这种开关由金属触点和触片组成。
轻触开关是一种电子开关,属于电子元器件类。
轻触开关常分为两脚开关和四脚开关。
两脚开关:
两个触点平时不和触片接触(常开触点),当按下按键时,触片同时和两个触点接触,使与两个触点相连的线路接通。
四脚开关:
对四脚按键而言,当按键按下时,1、2脚就和3、4脚导通了。
因此在使用时要是无法识别具体的引脚,接斜对角的两个引脚便可。
也可用万用表测出那两个脚在不按下的情况下是导通的,然后在选择引脚接入电路。
基本参数:
相对湿度:
<95%
额定电压:
12V
额定电流:
50mA
温度:
-25~70℃
实验器件:
■按键开关:
1个
■红色LED灯:
1个
■10K电阻:
1个
■220欧电阻:
1个
■面包板:
1个
■多彩杜邦线:
若干
实验连线
将代码上传到开发板。
程序代码(直接打开对应例程即可)
intledpin=11;//定义数字11接口
intinpin=7;//定义数字7接口
intval;//定义变量val
voidsetup()
{
pinMode(ledpin,OUTPUT);//定义小灯接口为输出接口
pinMode(inpin,INPUT);//定义按键接口为输入接口
}
voidloop()
{
val=digitalRead(inpin);//读取数字7口电平值赋给val
if(val==HIGH)//检测按键是否按下,按键按下时小灯亮起
{digitalWrite(ledpin,HIGH);}
else
{digitalWrite(ledpin,LOW);}
}
实验结论
当按键按下时,LED灯被点亮。
抢答器实验
实验器件:
■按键开关:
4个
■红色LED灯:
1个
■黄色LED灯:
1个
■绿色LED灯:
1个
■220欧电阻:
7个
■面包板:
1个
■多彩杜邦线:
若干
实验连线
将代码上传到开发板。
程序代码(直接打开对应例程即可)
intredled=8;//红色LED输出
intyellowled=7;//黄色LED输出
intgreenled=6;//绿色LED输出
intredpin=5;//红色按键引脚
intyellowpin=4;//黄色按键引脚
intgreenpin=3;//绿色按键引脚
intrestpin=2;//复位按键引脚定义
intred;
intyellow;
intgreen;
voidsetup()
{
pinMode(redled,OUTPUT);
pinMode(yellowled,OUTPUT);
pinMode(greenled,OUTPUT);
pinMode(redpin,INPUT);
pinMode(yellowpin,INPUT);
pinMode(greenpin,INPUT);
}
voidloop()//按键循环扫描
{
red=digitalRead(redpin);
yellow=digitalRead(yellowpin);
green=digitalRead(greenpin);
if(red==LOW)RED_YES();
if(yellow==LOW)YELLOW_YES();
if(green==LOW)GREEN_YES();
}
voidRED_YES()//一直执行红灯亮,直到复位键按下,结束循环
{
while(digitalRead(restpin)==1)
{
digitalWrite(redled,HIGH);
digitalWrite(greenled,LOW);
digitalWrite(yellowled,LOW);
}
clear_led();
}
voidYELLOW_YES()//一直执行黄灯亮,直到复位键按下,结束循环
{
while(digitalRead(restpin)==1)
{
digitalWrite(redled,LOW);
digitalWrite(greenled,LOW);
digitalWrite(yellowled,HIGH);
}
clear_led();
}
voidGREEN_YES()//一直执行绿灯亮,直到复位键按下,结束循环
{
while(digitalRead(restpin)==1)
{
digitalWrite(redled,LOW);
digitalWrite(greenled,HIGH);
digitalWrite(yellowled,LOW);
}
clear_led();
}
voidclear_led()//清除LED
{
digitalWrite(redled,LOW);
digitalWrite(greenled,LOW);
digitalWrite(yellowled,LOW);
}
实验结论
当红灯按键按下时,红色LED灯被点亮,按其他按键不会点亮其他LED灯。
按下复位按键,LED灯熄灭。
按下黄灯按键,黄灯点亮。
按其他按键不会点亮其他LED灯。
按下复位按键,LED灯熄灭。
按下绿灯按键,绿灯点亮。
按其他按键不会点亮其他LED灯。
按下复位按键,LED灯熄灭。
旋钮电位器实验
产品介绍:
旋钮电位器:
既可调电位器,其电气符号如图所示。
旋钮电位器的两端两个引脚为固定引脚,中间脚为阻值可变脚。
标在电位器上的阻值叫作标称阻值,其值等于电位器两固定引脚之间的阻值,其系列与电阻的系列类似。
电位器的阻值随滑动片触点旋转角度(或滑动行程)而变化。
实验器件:
■旋钮电位器:
1个
■面包板:
1个
■多彩杜邦线:
若干
实验连线
1.将旋钮电位器插在面包板上,
2.用杜邦线将两个固定引脚一个接5v,一个接GND,
3.用杜邦线将旋钮中间脚接到开发板上的模拟信号输入口A0
这样我们就完成了实验的连线部分。
将代码上传到开发板。
程序代码(直接打开对应例程即可)
constintanalogInPin=A0;//模拟输入引脚
intsensorValue=0;//电位器电压值
voidsetup()
{//初始化串口参数
Serial.begin(9600);
}
voidloop(){
//读取模拟量值
sensorValue=analogRead(analogInPin);
//打印结果到串口监视器
Serial.println(sensorValue);
}
实验结论
打开串口监视器,转动旋钮电位器可以观察到其数值变化,对应其电阻变化。
PWM调光实验
实验器件:
■旋钮电位器:
1个
■LED灯:
1个
■220欧的电阻:
1个
■面包板:
1个
■多彩面包板实验跳绳:
若干
实验连线
1.将发光二极管插入面包板,
2.用杜邦线将发光二极管的长脚连接到开发板的11引脚,
3.将电阻的一端连接到发光二极管的短脚,另一端接到面包板上的“-”极
4.将旋钮电位器插入面包板,两个固定引脚一个接面包板的“+”,一个接面包板的“-”。
5.将旋钮电位器的中间引脚用杜邦线接到开发板的模拟信号A0口
6.将开发板上的5v和GND接到面包板上的“+”,“-”极。
这样我们就完成了实验的连线部分。
将代码上传到开发板。
程序代码(直接打开对应例程即可)
intpotpin=0;//定义模拟接口0
intledpin=11;//定义数字接口11(PWM输出)
intval=0;//暂存来自传感器的变量数值
voidsetup()
{
pinMode(ledpin,OUTPUT);//定义数字接口11为输出
Serial.begin(9600);//设置波特率为9600
//注意:
模拟接口自动设置为输入
}
voidloop()
{
val=analogRead(potpin);//读取传感器的模拟值并赋值给val
Serial.println(val);//显示val变量
analogWrite(ledpin,val/4);//打开LED并设置亮度(PWM输__________出最大值255)
delay(10);//延时0.01秒
}
实验结论
调节旋钮电位器可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- arduino 入门教程