亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

如何使用 Arduino 测量地球质量

组件和用品

Arduino UNO
× 1
USB-A 转 B 线
× 1
560 欧姆电阻
× 4
电阻 100 ohm
× 2
压电传感器
× 4
红外发射器(通用)
× 1
红外接收器(通用)
× 1
旋转电位器(通用)
× 1
运算放大器 UA741C
× 1
面包板(通用)
× 1
1.2 米长的电线
× 1
通用 PCB
× 1
胶带
× 1
纸板
× 1

应用和在线服务

Arduino IDE

关于这个项目

介绍

一天晴朗的日子,我在秤上称自己的体重。突然一个想法出现在我的脑海中,“地球的质量有多大?”把它分开“我们怎么能测量它?”没有这样的秤可以放置地球。必须有一些间接的方法来测量地球的质量。在这里,我介绍了一种测量地球质量的间接方法的实现。

第 1 步:间接方法

19 世纪初,科学家们使用牛顿第二定律和牛顿万有引力定律来测量地球的质量。这些方程分别是 F =ma 和 F=(GmM)/(r^2)(m=物体的质量,a=加速度,G=引力常数,M=地球的质量,r=地球的半径) .如果我们用 g,即重力加速度代替“a”加速度项,并将这两个方程结合起来,我们得到。

毫克 =GmM/r^2

这个方程可以求解M,即地球的质量。

M =(gr^2)/G.

我们将假设我们知道 G 和 r 的值。我们将通过一个涉及 arduino 和一些传感器的小型实验找到 g,即重力加速度。最后我们将把所有的东西放在一起来找出 M 的值。

查看附加的图像以获取正确的数学表达式。

让我们开始实验吧。

第 2 步:实验概述

(请耐心等待一些数学知识,arduino 很快就会开始使用)

为了确定重力加速度,我们需要知道一些叫做“自由落体”的东西,它是一种身体/物体仅在重力作用下向下朝向地球移动的运动。现在,描述这种自由落体的科学术语很少。它们是初始速度、最终速度、行驶距离、飞行时间和加速度。

  • 初始速度 - 自由落体开始或实验开始时自由落体的速度。
  • 最终速度 - 实验结束自由落体结束时自由落体的速度。
  • 长途旅行 - 自由落体过程中自由落体的距离。
  • 飞行时间 - 在自由落体下完成距离所用的时间。
  • 加速 - 身体在自由落体中观察到的速度变化率。它等于重力加速度。

现在,有一个牛顿方程是这样的 -

行驶距离=(初速度*飞行时间)+(加速度*(飞行时间)^2)/2

上述方程中有 4 个变量,包括我们感兴趣的一个变量,即“加速度”,在这 4 个变量中,如果我们知道 3 个,我们可以计算出剩余的第 4 个未知变量。

我们可以修复其中的 2 个

  • 行进距离 =1 米(我们将从 1 米高处放下物体)
  • 初始速度 =0 m/s(我们将从静止开始我们的实验)

我们还剩下 2 个未知变量,这就是 arduino 的用武之地,它帮助我们找到飞行时间。 为了准确确定飞行时间,我们需要两个时间戳:1. 飞行开始和 2. 飞行结束。

我们将在第 4 步中制作自定义电路来确定这两个时间戳,我将描述用于查找飞行开始和第 5 步飞行结束的时间戳的电路。

在 arduino 和少量传感器的帮助下,我们将计算飞行时间,在上述方程中只留下一个未知数,即重力加速度(bingoooo !!!)。

让我们把我们的固定变量值放在上面提到的方程中,进一步简化方程。

1 =(g * (飞行时间)^2)/2

所以,

g =2 /(飞行时间)^2

实验的详细信息将在第 7 步中进行。

如有任何疑问,请参阅附图。

第 3 步:我们需要的东西

这是我们在实验中测量重力加速度所需的清单。

  • 任何 Arduino 板,最好是 uno/duomilanove(没有具体原因,只是我在这个实验中使用了这个板)
  • 用于将 Arduino 连接到 PC 的 USB 电缆
  • 560 欧姆电阻(4 个)、100 欧姆电阻(2 个)
  • 压电传感器(4 个)
  • 一对 IR Tx(IR LED)和 Rx(光电二极管)
  • 一个电位器
  • 一个运算放大器(如 UA741C)
  • 一块面包板
  • 三根 1.2 米长的电线
  • 用于组装红外电路的小型 5cmx5cm 通用 PCB
  • 胶带
  • 纸板

如有任何疑问,请查看所附图片。

第 4 步:原理图 1:IR 电路

该电路将用于为用于测量“g”的物体标记自由落体的开始时间。以下是关于所附fritzing示意图的要点。

  • 红外 LED 用于正向偏压,在此应用中充当普通 LED,即照亮红外接收器光电二极管。
  • 光电二极管用于反向偏置。
  • 阴极和电阻结点的输出连接到运算放大器的输入端之一。
  • 运算放大器的另一个输入端连接到决定阈值电压的电位器。
  • 运算放大器的输出进入 Arduino 板。

如有疑问请参考视频(时间=5m 16s)。

第 5 步:原理图 2:压电电路

该电路将用于为用于测量“g”的物体标记自由落体的结束时间。以下是关于所附fritzing示意图的要点。

  • 4 个压电传感器如示意图所示连接。
  • 4 个 560 欧姆电阻与压电传感器并联,以减少自由落体物体撞击其表面时压电传感器产生的电压尖峰。
  • 压电传感器的负极连接到电路地。
  • 压电传感器的正极连接到模拟输入引脚。

如有疑问,请参阅附件视频(时间 =9m 2 sec)。

第 6 步:把东西放在一起

按照这些说明将东西放在一起。

  • 用硬纸板做成屋顶状的结构,贴在墙上1.1米左右。
  • 将 IR 模块朝下连接到纸板屋顶。
  • 使用其中一根 1.2m 长的电线将运算放大器的输出连接到 Arduino 的 4 号引脚。
  • 使用其余 1.2m 长的电线将 arduino 的 Vcc 和 GND 连接到 IR 模块。
  • 确保电线牢固地固定在墙上,红外线模块固定在纸板屋顶上,压电模块固定在红外线模块下方的地面上。

如有疑问,请查看附图,为便于理解组件已正确标记。

第七步:实验细节

一切就绪(除了 Arduino 代码,在第 8 步中讨论过),让我们来完成这个实验的过程。

  • 在用于自由落体的物体顶部粘贴一个小的细投影,如编号为 1 的图像所示。
  • 在我们离开物体继续自由落体之前,将其保持在 1 米标记处,这样顶部的投影会阻挡从 IR 到光电二极管的光。如编号为 2 的图像所示。
  • 在不施加任何力的情况下离开物体,让它在压电着陆区上自由落下。
  • 当它下落时,IR TX 和 RX 的路径上没有障碍物,根据自由落体的开始时间向我们提供关于刚离开物体的信号。
  • 当物体接触着陆区时,压电传感器会产生受控电压尖峰,根据自由落体的结束时间通知物体的到达。
  • 如果我们从开始时间中减去结束时间,我们就会得到飞行时间,我们将使用它来计算重力加速度,如我们在第 2 步中所讨论的那样。

第 8 步:Arduino 代码

我附上了这个实验的 Arduino 代码。代码真的很简单。如有任何疑问,请参阅我详细解释代码的视频(视频时间 =13 分 35 秒)。

第 9 步:让我们做实验

做本实验前应注意以下事项。

  • 应在 arduino 代码中正确设置压电传感器的阈值。
  • 将压电面板放在 IR 模块正下方。
  • 确保在不施加任何外力的情况下将物体从 1 米高处掉落。

在这里,我在所附视频中的时间戳 17 分钟处进行此实验。我们将使用结果计算地球质量,即从该实验中获得的飞行时间。

第 10 步:地球的结果和质量

在重复这个实验 3 次后,我在飞行时间方面得到了以下结果。

  • 443 毫秒
  • 443 毫秒
  • 464 毫秒

让我们取平均值。

平均飞行时间 =450 ms

如果我们将这个值代入方程以获得重力加速度,我们得到的加速度约为 9.8755 m/s2。如附图所示。

最后代入这个“g”的值来获得地球的质量,我们得到大约 6.0066 x 1024 Kg,如您在附图中所见。

根据谷歌,地球的实际质量为 5.972 x 1024 公斤。我想我们接近了。

感谢您的时间,如有任何疑问,请参考视频或在评论中提出,我将很乐意为您提供帮助。


代码

  • Arduino 代码
Arduino 代码Arduino
简单的arduino代码
const int sensorPin1 =A0;const int sensorPin2 =A1;const int sensorPin3 =A2;const int sensorPin4 =A3;const int photoPin =4;const int ledPin =13;const int threshold =110;char stringToPrint [100];int startTime,endTime;int val1,val2,val3,val4;void setup() {Serial.begin(115200); // 把你的设置代码放在这里,运行一次: pinMode(ledPin,OUTPUT); pinMode(sensorPin1,INPUT); pinMode(sensorPin2,INPUT); pinMode(sensorPin3,INPUT); pinMode(sensorPin4,INPUT); pinMode(photoPin,INPUT);}void loop() { // 把你的主要代码放在这里,重复运行: int start =digitalRead(photoPin);开始时间 =毫秒(); if(start ==HIGH) digitalWrite(ledPin,HIGH);而(开始==低){digitalWrite(ledPin,低); val1 =模拟读取(sensorPin1); val2 =模拟读取(sensorPin2); val3 =模拟读取(sensorPin3); val4 =模拟读取(sensorPin4); //sprintf(stringToPrint,"%d,%d,%d,%d",val1,val2,val3,val4); //Serial.println(stringToPrint); if((val1>=threshold) || (val2>=threshold) || (val3>=threshold) || (val4>=threshold)) { endTime =millis(); sprintf(stringToPrint,"%d ms",endTime - startTime); Serial.println(stringToPrint);数字写入(ledPin,高);延迟(1000);数字写入(ledPin,低);开始=高; } }}

示意图

IR电路的fritzing原理图 硬件图片 fritzing 原理图 硬件图片

制造工艺

  1. 如何在 OpenSensors 上测量空气质量
  2. 使用按钮通过 PWM 调光灯光
  3. 使用 ARDUINO 的超声波悬浮机器
  4. 使用 Arduino 的频率和占空比测量
  5. 找到我
  6. Sonar 使用 arduino 并在处理 IDE 上显示
  7. Car Counter using Arduino + Processing + PHP
  8. 使用 MAX30100 可穿戴脉搏传感器和 Arduino
  9. 使用 YL-39 + YL-69 土壤湿度传感器和 Arduino
  10. 如何使用 PHP 创建一个与 Arduino 通信的网站
  11. Arduino Joystick
  12. 如何衡量我公司的数字化成熟度?