Arduino实验Word文档格式.docx
《Arduino实验Word文档格式.docx》由会员分享,可在线阅读,更多相关《Arduino实验Word文档格式.docx(40页珍藏版)》请在冰豆网上搜索。
在setup()执行完成后,开始执行loop(),loop()循环执行。
Arduino编程使用的是gcc编译器,c语言编程的第一个函数是main()函数,为什么看
不到?
因为Arduino对其进行了2次封装,打开\arduino-1.5.5\hardware\arduino\avr\cores
\main.cpp,可以看到如图2-5所示的一段封装程序。
图2-5main()函数的封装
5.ArduinoIDE下软硬件开发的基本步骤
1.指向
图标,双击鼠标左键,进入ArduinoIDE界面,如图2-4所示;
2.编写或导入程序;
3.选择使用的Arduino开发板,如选择ArduinoDUE开发板,选择方法如图2-6所示。
图2-6选择ArduinoDUE开发板
ArduinoDUE有两个USB接口,ProgrammingPort接的是ATMEGA16U2芯片,实现USB口-----串口转换,NativeUSBPort接的是SAM3X8E片载的USB口,口的位置如图2-7所示。
图2-7ArduinoDUEUSB口位置
4.选择程序下载串口,将所使用开发板的USB口通过USB线连接到PC,串口驱动程序安装后,可选定程序下载串口,驱动程序在\arduino-1.5.5\drivers文件夹下,ArduinoIDE下选定串口界面如图2-8所示。
图2-8ArduinoIDE下选定程序下载串口界面
5.编译、下载程序:
按
图标,编译、校验程序;
图标,编译、校验及上传程序至Arduino开发板微控制芯片中。
6.如果需要通过串口调试用户程序,按
图标打开串口调试界面。
ArduinoIDE的界面安装后是英文的,如要改为简体中文,按图2-9a、b顺序操作。
ab
图2-9ArduinoIDE界面字体变化操作
在图2-9b中指向OK按钮,单击鼠标左键,退出Arduino。
再次指向
图标,双击鼠标左键,进入ArduinoIDE界面,显示界面如图2-10所示,可以看到已改为中文界面。
图2-10ArduinoIDE中文界面
ArduinoIDE库函数删除方法:
X:
\ProgramFiles\Arduino\libraries和X:
\Documents\Arduino\libraries去这两个地方找库文件,可以删除。
ArduinoDue基础实验
实验一数字IO接口实验
实验内容:
将ArduinoARM开发板上的SW1、SW0波动开关状态读入,在LED1、LED0发
光二极管上显示。
实验电路:
实验电路请参考ArduinoARM开发板介绍。
SW0、SW1、LED0、LED1与ArduinoDUE引脚的对应关系如表2-1所示。
表2-1SW0、SW1、LED0、LED1与ArduinoDUE引脚对应关系
ArduinoDUE引脚
备注
SW0
41
拨到上方输出高电平,下方为低电平
SW1
40
LED0
34
低电平暗,高电平亮
LED1
35
实验相关库函数:
Arduino封装了下面几个函数供数字IO接口使用:
1.数字IO接口模式定义函数
描述:
定义数字IO接口为输入、输出及输入上拉模式。
语法:
pinMode(pin,mode)
参数:
pin:
引脚号;
mode:
INPUT,OUTPUT,orINPUT_PULLUP
返回:
无
2.数字IO输出电平定义函数
写HIGH或LOW值到数字引脚。
digitalWrite(pin,value)
value:
HIGHorLOW
3.数字IO输入数据读取函数
读出数字IO引脚输入数值。
digitalRead(pin)
需要读的数字引脚号(int)
HIGH或LOW
实验参考程序:
intSW1Pin=40;
//定义波动开关对应ArduinoDUE引脚号
intSW0Pin=41;
intLED1Pin=35;
//定义LED发光二极管对应ArduinoDUE引脚号
intLED0Pin=34;
voidsetup(){
pinMode(SW1Pin,INPUT);
//设置SW1为输入模式
pinMode(SW0Pin,INPUT);
//设置SW0为输入模式
pinMode(LED1Pin,OUTPUT);
//设置LED1为输出模式
pinMode(LED0Pin,OUTPUT);
//设置LED0为输出模式
}
voidloop(){
digitalWrite(LED1Pin,digitalRead(SW1Pin));
//将波动开关SW1值读出送LED1显示
digitalWrite(LED0Pin,digitalRead(SW0Pin));
//将波动开关SW0值读出送LED0显示
}
实验步骤:
1.ARDUINOARM开发板MircoUSBProgrammingPort口与PC机通过USB线连
接,如图2-11所示。
电源选择短路子接USBB端,波动开关拨到上方打开电源,电源指示灯ON亮。
图2-11ARDUINOARM开发板与PC机连接图
2.运行ArduinoIDE集成开发环境;
3.编写实验程序;
4.选择使用的Arduino开发板—ArdunioDUE;
5.选择程序下载串口—每台机器有可能不一样;
6.编译、下载程序;
7.拨动SW1、SW0开关,观察LED1、LED0变化。
实验二串口通讯实验
打印各种数据格式数据。
实验中用串口0打印显示数据,ArduinoARM中串口0电路连接框图如图2-12所示。
可见串口0连接到板上MircoUSB的ProgrammingPort口上。
图2-12ArduinoARM串口0电路连接框图
Arduino主要封装了下面几个函数供串口通信使用:
1.指定串口准备与否判别
指示指定的串口已经准备好。
if(Serial)
if(Serial1)
if(Serial2)
if(Serial3)
布尔值:
当串口有效时返回true
2.获取可从串口读取的字节数
获得可供从串行端口阅读的字节数(字符)。
这些数据已经到达并存储在串行接收缓冲区(拥有64字节)。
Serial.available()
Serial1.available()
Serial2.available()
Serial3.available()
串口接收缓冲区中接收的字节数。
3.打开指定串口
打开指定串口,设置串口传输波特率。
可设为常用波特率:
300、1200、2400、4800、9600、14400、19200、28800、38400、57600、或115200bps。
也可设定为其它波特率。
Serial.begin(speed)//串口0
Serial1.begin(speed)//串口1
Serial2.begin(speed)//串口2
Serial3.begin(speed)//串口3
speed:
波特率(long型)
3.关闭指定串口
关闭指定串口,允许相应的RX和TX引脚用做普通的输入输出口。
Serial.end()//串口0
Serial1.end()//串口1
Serial2.end()//串口2
Serial3.end()//串口3
无
4.ASCII文本打印函数1
从串行端口输出数据为ASCII文本。
浮点数同样打印为ASCII数字,默认为两位小数。
字节发送单个字符。
语法:
Serial.print(val)
Serial.print(val,format)
参数:
val:
要打印的值,可以是任何数据类型;
format:
指定的数据类型或小数位数
BIN(binary,orbase2),
OCT(octal,orbase8),
DEC(decimal,orbase10),
HEX(hexadecimal,orbase16).
如果用数字表示代表小数点位数。
5.ASCII文本打印函数2
从串行端口输出数据为ASCII文本后跟一个回车字符(ASCII13,或“\r”)和一个换行符(ASCII10,或“\n”)。
其它同print函数。
Serial.println(val)
Serial.println(val,format)
6.读串口数据函数
读串口数据。
Serial.read()
Serial1.read()
Serial2.read()
Serial3.read()
第一个字节有效(-1没有数据)–int。
7.写串口数据函数
写二进制数据到串口.发送一个或多个字节;
Serial.write(val)
Serial.write(str)
Serial.write(buf,len)
其它串口也支持:
Serial1,Serial2,Serial3
单字节发送的数值
str:
发送字串
buf:
发送数组
len:
缓冲区长度
返回写的字节数,但是阅读这个数值是可选的。
voidsetup(){
Serial.begin(9600);
//打开串口0,设置传输波特率为9600bps
}
intthisByte=33;
voidloop(){//将33~126数值以十进制、十六进制、八进制、二进制形式打印出来
Serial.write(thisByte);
Serial.print("
dec:
"
);
Serial.print(thisByte);
S