一、实验目的
1、熟悉了解Arduino UNO的硬件组成、使用方法
2、熟练掌握arduino软件的使用方法
3、能够在arduino软件的IDE开发环境编译运行程序
4、掌握Arduino的数字、模拟端口相关功能
二、实验内容和要求
1、完成跑马灯,使3个LED灯轮流闪烁
2、设计一个温度计,显示当前温度、记录的最高温度和记录的最低温度
3、设计一个根据环境亮度自动调节的LED灯,环境越暗灯越亮
三、实验器材
Arduino UNO控制板,光线传感器模块Light Sensor,温度传感器Temperature Sensor,LED灯,USB线缆,面包板Bread Board,杜邦线
四、注意事项
1、选择正确的控制板型号和端口
2、正确进行接线,以防反接短路造成电路板损坏
五、实验步骤
从网上下载好Arduino的IDE开发环境,根据自身情况选择版本,本次实验选择Windows版本。
下载好之后,打开Arduino的软件
首先进行Arduino的型号选择
本实验使用的是Arduino Uno
然后进行串口选择
在IDE中选择对应端口
然后开始编写程序代码
(一)完成跑马灯
代码中,函数setup()是初始化数字端口为输出端口,pinMode()是设置led为输出端口的函数,loop()是一个循环函数,digitalWrite(led,HIGH)表示led输出高电平,点亮LED灯,digitalWrite(led,LOW)表示led输出低电平,熄灭LED灯,delay()为延时函数,表示LED灯状态延时多久。
这里的代码表示使用3个LED灯,分别使用了13,12,8三个数字端口作为输出端口。每个灯延时0.1秒亮一次。
最后点击“上传”按钮编译并下载代码到arduino开发板中
(二)设计一个温度计
编写程序代码如下
在setup()里面Serial.begin(9600)表示设置波特率。全局定义两个变量,最大温度max、最小温度min。在loop()函数里面,analogRead(A0)读取A0引脚的数值, val * (5.0 / 1024) * 100是把读取到的val转换为温度数值。使用Serial.print()进行输出。
编写完代码,点击“上传”按钮编译并下载代码到arduino开发板中
在这个实验中,使用了A0模拟信号引脚,5V电压引脚,以及接地引脚。将温度传感器的数值,通过IDE的串口监视器可以看到输出结果。
串口监视器的位置如下图红色箭头所指
(三)设计一个根据环境亮度自动调节的LED灯
编写程序代码如下
Setup()函数里面Serial.begin(9600)表示设置波特率,pinMode(10,OUTPUT)是设置l0为输出端口。Loop()函数里面,analogRead(A0)读取A0引脚的数值赋给val,val_2 = map(val, 0, 1023, 0, 255)是把val数据从0~1023区间映射到0~255区间。然后使用analogWrite(pin, value)输出,参数pin:支持引脚3、5、6、9、10、11,参数value表示PWM输出的占空比,pin, value这里分别为10和val_2。
六、实验结果与分析
(一)完成跑马灯
效果如图,实现了LED灯轮流闪烁,达到预期效果。
(二)设计一个温度计
通过IDE的串口监视器看到的输出结果如上图,显示了测量时间,当前温度,记录最高温度,记录最低温度,结果符合预期。
(三)设计一个根据环境亮度自动调节的LED灯
传感器上光线越亮LED灯越暗,相反亦然,结果符合预期。