《Arduino技术及应用》—实验教学大纲及指导书

更新时间:2023-04-05 22:53:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《Arduino技术及应用》实验大纲

课程编号:SJ001568 大纲执笔人:

课程名称:Arduino技术及应用大纲审批人:

英文名称:The Technology and Application of Arduino

实验室名称:计算机学院实验中心

课程学时:40实验学时:8

一、本课程实验教学目的与要求

Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。Arduino简单的开发方式使得开发者更关注于创意与实现,更快地完成自己的项目开发,大大节约学习的成本,缩短开发的周期。如今它已成为了学习微控制器的首选,并且在全球智能化以及物联网快速发展的大背景下,将迎来学习它的新热潮。通过本课程学习,学生可以了解Arduino技术基本概念和基本知识,掌握Arduino软硬件设计的基本方法。本课程的特点是针对迄今为止使用最广泛的Arduino UNO开发板与Arduino IDE 开发环境进行详细剖析,并结合具体Arduino开发实验,使学生能够熟练掌握Arduino的设计与开发方法。本课程采用讲课和实验相结合的方式,注重培养学生的实际应用能力与创新能力,以达到“学习Arduino,使用Arduino”的教学目的。

二、需要仪器设备及现有套数:

1、装有IAR8.10软件的教师PC机一台;投影仪一台。

2、太原理工大学电气与动力工程学院研发的物联网应用开发平台网关箱1套。

3、太原理工大学电气与动力工程学院研发的物联网应用开发平台开发箱30套。

4、电脑笔记本学生人手一套(自带)。

三、实验课程内容和学时分配:

四、考核方式

1、本门课程实验是综合性和设计性相结合,以操作为主。在实验四结束后要求学生演示所做实验内容,对关键技术进行讲解,并提交电子作品和纸质实验报告。

2、实验报告应包括:①目的和要求,②开发环境和主题,③设计步骤,④关键技术分析,⑤实验结果及分析。

3、考核方式:

(1)实验课的成绩占课程总成绩的10%。

(2)成绩按满分100分计算,每个实验为25分,分值分配如下:

五、实验教材、参考书

1、教材:

2、参考书:

《Arduino技术及应用-试验指导》

实验一控制三色LED灯闪烁

1.实验目的

1.1掌握Arduino的配置、程序代码的编写,以及编译及调试的过程

1.2学会如何运用Arduino IDE编写并在线调试程序LED灯闪烁实验

2.实验设备

2.1 IDE开发环境

2.2 物联网应用开发平台开发箱一套

3.实验要求

3.1 熟悉IDE开发环境

3.2 能够在IDE开发环境中建设LED灯闪烁实验工程项目,并完成程序编写和调试

4.实验原理

利用Arduino数据手册及LED三色灯的原理图,来编程三色LED灯的驱动程序, 设置与小灯R、G、B相应的端口9、10、11为输出,当这相应端口为高电平时小灯显示相应颜色。

5.实验步骤

5.1 硬件接线

将R、G、B三个引脚与开发板的9、10、11引脚进行连接。如图1-1所示,我们用红色连接线连接R和9,用绿色线连接G和10,用蓝色线连接B和11,用棕色线连接-和GND。

图1-1 LED与UNO连接图

接下来,我们将USB线一端与开发板连接,另一端与电脑连接,如图

1-2

所示:

图1-2 USB与UNO连接图5.2程序代码的编写

5.2.1新建程序文件

双击桌面上的图标,进入Arduino开发环境,开始编写三色LED 灯的控制程序。初始界面如图

1-3 所示:

5.2.2定义LED引脚

模块如图1-4所示:

LED

int redpin = 9; //定义端口9控制红色LED引脚

int greenpin = 10; // 定义端口10控制绿色LED引脚

int bluepin = 11; // 定义端口11控制蓝色LED引脚

5.2.3 main函数

首先,初始化:

void setup() {

pinMode(redpin, OUTPUT);// 定义红色LED引脚为输出引脚

pinMode(bluepin, OUTPUT);// 定义蓝色LED引脚为输出引脚pinMode(greenpin, OUTPUT);// 定义绿色LED引脚为输出引脚}

然后,编写LED灯闪烁函数:

void loop()

{

for (val = 0; val < 255; val++)

{

analogWrite(bluepin , val);//为蓝色LED提供模拟输出电压

delay(20); //停顿1ms

}

analogWrite(bluepin , 0);//关闭蓝色LED

delay(2000);//停顿2s

for (val = 0; val < 255; val++)

{

analogWrite(greenpin , val); //为绿色LED提供模拟输出电压delay(20); //停顿1ms

}

analogWrite(greenpin , 0);//关闭绿色LED

delay(2000);//停顿2s

for (val = 0; val < 255; val++)

{

analogWrite(redpin ,val); //为红色LED提供模拟输出电压

delay(20); //停顿1ms

}

analogWrite(redpin , 0);//关闭红色LED/

delay(2000);//停顿2s

}

5.2.4实验源码

将上述代码合并为一个整体,如下所示:

int redpin = 9; //红色LED引脚

int greenpin = 10; // 绿色LED引脚

int bluepin = 11; // 蓝色LED引脚

int val; // 临时变量,辅助亮度调节

void setup() {

pinMode(redpin, OUTPUT);// 定义红色LED引脚为输出引脚pinMode(bluepin, OUTPUT);// 定义蓝色LED引脚为输出引脚pinMode(greenpin, OUTPUT);// 定义绿色LED引脚为输出引脚}

void loop()

{

for (val = 0; val < 255; val++)

{

analogWrite(bluepin , val);//为蓝色LED提供模拟输出电压

delay(20); //停顿1ms

}

analogWrite(bluepin , 0);//关闭蓝色LED

delay(2000);//停顿2s

for (val = 0; val < 255; val++)

{

analogWrite(greenpin , val); //为绿色LED提供模拟输出电压delay(20); //停顿1ms

}

analogWrite(greenpin , 0);//关闭绿色LED

delay(2000);//停顿2s

for (val = 0; val < 255; val++)

{

analogWrite(redpin ,val); //为红色LED提供模拟输出电压

delay(20); //停顿1ms

}

analogWrite(redpin , 0);//关闭红色LED/

delay(2000);//停顿2s

}

6.实验现象

将程序拷贝到白色空白处,如图1-5所示:

程序图1-5开发环境界面

点击按钮,对代码进行编译,查看是否有语法错误。

然后点击按钮,对代码进行编译,并下载到开发板中,编译无误,看到提示上传成功,那么程序就会被写进开发板中,控制三色LED灯红、绿、蓝由弱到强交替亮灭。效果如图1-6所示:

图1-6 效果图

7.实验总结

本文以“三色LED灯闪烁实验”为基础,分别从硬件接线、程序代码的编写,以及编译及调试的过程介绍了整个实现过程。

实验二温湿度传感器控制

1.实验目的

1.1 学会使用串口监视窗口,查看模块的数据输出内容

1.2 学会温湿度传感器的基本原理

2.实验设备

2.1 IDE开发环境

2.2 物联网应用开发平台开发箱一套

3.实验要求

3.1 掌握温湿度传感器基本原理

3.2 能够搭建IDE环境,建设温湿度数据采集的工程项目

4.实验原理

利用Arduino数据手册及温湿度传感器的原理图,来编程温湿度传感器的驱动程序, 设置温湿度传感器“S”端接UNO的数字端口8 号引脚,高电平接收数据。

5.实验步骤

5.1硬件接线

温湿度传感器的“+”端接UNO的+5V 输出,“-”端接UNO的GND,“S”端接UNO的数字端口8 号引脚(当然这个可以自己定义数字引脚)。如图2-1所示。

图2-1 温湿度传感器与Arduino UNO接线5.2实验源码

int DHpin = 8;

byte dat[5];

byte read_data()

{

byte data;

for(int i=0; i<8; i++)

{

if(digitalRead(DHpin) == LOW)

{

while(digitalRead(DHpin) == LOW); //等待50us;

delayMicroseconds(30); //判断高电平的持续时间,以判定数据是‘0’还是‘1’;

if(digitalRead(DHpin) == HIGH)

data |= (1<<(7-i)); //高位在前,低位在后;

while(digitalRead(DHpin) == HIGH); //数据‘1’,等待下一位的接收;

}

}

return data;

}

void start_test()

{

digitalWrite(DHpin,LOW); //拉低总线,发开始信号;

delay(30); //延时要大于18ms,以便DHT11 能检测到开始信号;

digitalWrite(DHpin,HIGH);

delayMicroseconds(40); //等待DHT11 响应;

pinMode(DHpin,INPUT);

while(digitalRead(DHpin) == HIGH);

delayMicroseconds(80); //DHT11 发出响应,拉低总线80us;

if(digitalRead(DHpin) == LOW);

delayMicroseconds(80); //DHT11 拉高总线80us 后开始发送数据;

for(int i=0;i<4;i++) //接收温湿度数据,校验位不考虑;

dat[i] = read_data();

pinMode(DHpin,OUTPUT);

digitalWrite(DHpin,HIGH); //发送完一次数据后释放总线,等待主机的下一次开始信号;

}

void setup()

{

Serial.begin(9600);

pinMode(DHpin,OUTPUT);

}

void loop()

{

start_test();

Serial.print("Current humdity = ");

Serial.print(dat[0], DEC); //显示湿度的整数位;

Serial.print('.');

Serial.print(dat[1],DEC); //显示湿度的小数位;

Serial.println('%');

Serial.print("Current temperature = ");

Serial.print(dat[2], DEC); //显示温度的整数位;

Serial.print('.');

Serial.print(dat[3],DEC); //显示温度的小数位;

Serial.println('C');

delay(700);

}

6.实验现象

在Arduino IDE软件中根据模块建立工程,编写相应代码,进行编译,下载。如图2-2所示。

图2-2 Arduino IDE界面

在Arduino IDE 软件中点击这个图标编译代码,点击这个图标下载程序到Arduino UNO开发板。

下载成功之后通过菜单“工具”→“串口监视”打开串口监视窗口,查看模块的数据输出内容。

7.实验总结

本节主要讲述了温湿度传感器的使用,以及数据采样的基本原理。

实验三蜂鸣器报警控制

2.实验目的

1.1 学会使用蜂鸣器报警模块

2.实验设备

2.1 IDE开发环境

2.2 物联网应用开发平台开发箱一套

3.实验要求

3.1 掌握蜂鸣器报警模块基本原理

3.2 能够搭建IDE环境,建设蜂鸣器报警的工程项目

4.实验原理

利用Arduino数据手册及蜂鸣器的原理图,来编程蜂鸣器报警的驱动程序, 设置蜂鸣器“S”端接UNO的数字端口8 号引脚,高电平发出声音。

5.实验步骤

5.1硬件接线

蜂鸣器的“+”端接UNO的+5V 输出,“-”端接UNO的GND,“S”端接UNO的数字端口8 号引脚(当然这个可以自己定义数字引脚)。如图3-1所示。

图3-1 蜂鸣器与Arduino UNO连接5.2实验源码

int buzzer=8;//设置控制蜂鸣器的数字IO脚

void setup()

{

pinMode(buzzer,OUTPUT);//设置数字IO脚模式,OUTPUT为输出

}

void loop()

{

unsigned char i,j;//定义变量

while(1)

{

for(i=0;i<80;i++)//输出一个频率的声音

{

digitalWrite(buzzer,HIGH);//发声音

delay(1);//延时1ms

digitalWrite(buzzer,LOW);//不发声音

delay(1);//延时ms

}

for(i=0;i<100;i++)//输出另一个频率的声音

{

digitalWrite(buzzer,HIGH);//发声音

delay(2);//延时2ms

digitalWrite(buzzer,LOW);//不发声音

delay(2);//延时2ms

}

}

}

6.实验现象

上电后蜂鸣器电流达到一定程度时,就会发出声响。7.实验总结

本节主要讲述了蜂鸣器的使用。

实验四步进电机控制实验

1.实验目的

1.1了解步进电机的控制方法和原理;

1.2掌握在Z-STACK协议中网关向传感器节点广播数据包的方法;

1.3学习在传感器中接收和处理数据的方法;

2.实验设备

2.1 IDE开发环境

2.2 物联网应用开发平台开发箱一套

3.实验要求

3.1编程要求:按照实验步骤实现应用程序;

3.2实现功能:通过在物联网平台(TDFY2014WL)中添加步进电机设备并发送控制命令对步进电机进行控制使其开始转动或停止转动。

4.实验原理

利用Arduino数据手册及步进电机的原理图,来编程步进电机的驱动程序, 实现通过在物联网平台(TDFY2014WL)中添加步进电机设备并发送控制命令对步进电机进行控制使其开始转动或停止转动。

5.1硬件接线

1、步进电机和步进电机驱动的接线方法:

红线不接;

out1 接橘色;

out2 接粉色;

out3 接黄色;

out4 接蓝色;

2、步进电机驱动与开发板的接线方法:

5V 接5V;

GND 接GND;

in1接8;

in2接9;

in3接10;

in4接11;

3、Zigbee模块与开发板的接线方法:

3V3 接3.3V;

TXD 接TXD;

RXD 接RXD;

GND 接GND;

可以对比图4-1来检验自己是否接好线:

图4-1 接线图5.2实验源码

int On=1;//判断操作是否完成int Command=0;//控制命令

int Pin0 = 8;//电机控制引脚1

int Pin1 = 9;//电机控制引脚2

int Pin2 = 10;//电机控制引脚3

int Pin3 = 11; //电机控制引脚4

intstep = 0 ; //电机转动步数

int stepperSpeed = 10; //电机转速,1ms一步

//传感器编,从物联网开发平台中获取int sid = 53; //传感器序号(步进电机编号)

char serialbuff[80] = {0};

int seriali = 0;

char serialData;

int val;

void setup( ) {

pinMode(Pin0,OUTPUT);

pinMode(Pin1,OUTPUT);

pinMode(Pin2,OUTPUT);

pinMode(Pin3, OUTPUT);

Serial.begin(9600);

}

//步进电机反转

void down( )

{

switch (_step) {

case 0:

//stepperSpeed++; digitalWrite(Pin0,LOW); digitalWrite(Pin1,LOW); digitalWrite(Pin2, LOW); digitalWrite(Pin3, HIGH);//32A break;

case 1:

digitalWrite(Pin0, LOW); digitalWrite(Pin1,HIGH); digitalWrite(Pin2,LOW); digitalWrite(Pin3, HIGH); break;

case 2:

digitalWrite(Pin0,LOW); digitalWrite(Pin1, HIGH); digitalWrite(Pin2, LOW); digitalWrite(Pin3,LOW); break;

case 3:

digitalWrite(Pin0,LOW); digitalWrite(Pin1,HIGH); digitalWrite(Pin2,HIGH); digitalWrite(Pin3,LOW); break;

本文来源:https://www.bwwdw.com/article/rzfl.html

Top