利用Arduino探究单摆周期
通过探究单摆周期来学习红外数字避障传感器。
单摆是能够产生往复摆动的一种装置,将无重细杆或不可伸长的细柔绳一端悬于重力场内一定点,另一端固结一个重小球,就构成了单摆。若小球只限于铅直平面内摆动,则为平面单摆;若小球摆动不限于铅直平面,则为球面单摆。本实验中所涉及的单摆默认为平面单摆。
为了探究单摆摆动的规律,需要在实验的过程中记录单摆摆动的次数及摆动的时间。传统的单摆实验中,多是使用人工计数及秒表手动计时的方法,并且实验数据的处理也是由人工来完成的。这种方式,不仅费时费力,还会存在较大的误差。现在,可以利用Arduino自动获取实验数据并进行实时处理,减少实验过程中的误差。
器材清单
Romeo、USB数据线、红外数字避障传感器、单摆支架(含绳、金属球)
红外数字避障传感器
红外数字避障传感器也称红外接近开关,如下图所示,是一种集发射与接收于一体的光电开关传感器,在传感器接收到信号后会引起后测指示灯的亮灭。这款传感器背面有一个电位器,可以根据需要调节障碍的检测距离。当探头前方无障碍时,红外数字避障传感器输出高电平,有障碍时则相反。该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、互动媒体、工业自动化流水线等众多场合。
红外数字避障传感器自带3P接线,其中红线对应5V,绿线对应GND,黄线对应信号线,将其按照对应的颜色接在Romeo控制器的数字针脚上,接线图参考图如下。
实现过程
实验器材搭建
如下图所示,将单摆固定在支架上,把红外传感器对准小球静止时的位置。
实验器材搭建应注意:摆线的上端不要卷在夹子上,而要用夹子加紧,以免单摆摆动时摆线滑动或摆长改变;小球摆动时要在同一个铅直平面内。
在实验过程中,实验装置周围可能会出现其他障碍物。若红外避障传感器检测的范围过大,则很可能会受到障碍物的干扰;若检测的范围过小,则会影响其对小球位置的检测。因此为了降低实验误差,在实验开始前需要对红外避障传感器的检测范围进行调节。
首先将小球放置于检测范围的最大距离处,将红外避障传感器接在Romeo的数字针脚上。当红外避障传感器可以监测到小球(障碍物)时,它后方的指示灯会变亮,如下图所示。当红外避障传感器的检测范围不符合要求时,只需调节其后方的调节旋钮即可,使用一字螺丝刀将旋钮顺时针转动时,其检测范围增大,将旋钮逆时针转动时,其检测范围减小。
使用Arduino测量单摆摆动周期的方法
用手将小球拉至某一角度无初速度释放,利用传感器检测小球是否到达最低点,如果到达,摆动次数加1。红外避障传感器检测到障碍物时,其输出值为1;未检测到障碍物时,其输出值为0(本示例中将红外避障传感器与针脚3连接)。设置变量n来表示红外避障传感器检测到小球的次数,当针脚3的值为1,使n的值加1。参考程序如下图所示。
当小球到达最低点时,为了防止红外避障传感器对小球重复检测,需要在条件语句里嵌套一个二次判断的当循环语句,即检测小球直到它完全通过后才进行次数增加,如下图所示。
由于单摆刚开始摆动的时候稳定性较差,因此需要忽略前几次的实验数据,从单摆摆动的第三次开始计时和计数。当红外避障传感器第3次检测到小球时,读取系统运行时间并将值赋给变量k1(变量k1和k2为实数变量),将最后一次检测(示例中设定为第63次)到小球时的系统运行时间赋给变量k2,则k2与k1的差值就是小球摆动的总时间,系统时间的单位为ms,读取系统运行时间的程序可以参考下图。
需要注意的是,每次传感器检测到小球经过最低点时,是经过了半个周期,因此在计算单摆周期的时候,需要将次数除以2,即(63-3)÷2=30个周期,从而保证单摆周期的总时间除以的是单摆做周期运动的周期数,并将最后所得的单摆摆动周期值显示在串口监视器中,参考程序如下图所示。
测试效果
上传程序,观察单摆的时间周期。
拓展提升
根据实验,探究单摆时间周期与单摆绳长、金属球质量以及摆角的关系。
评论