산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Arduino를 사용하여 지구의 질량을 측정하는 방법

구성품 및 소모품

Arduino UNO
× 1
USB-A-B 케이블
× 1
560옴 저항기
× 4
저항 100옴
× 2
압전 센서
× 4
IR 송신기(일반)
× 1
IR 수신기(일반)
× 1
회전 전위차계(일반)
× 1
opamp 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=지구 반지름) . 예를 들어 'a' 가속도 항을 중력으로 인한 가속으로 대체하고 이 두 방정식을 결합하면 다음을 얻습니다.

mg =GmM/r^2

이 방정식은 M 즉 지구의 질량에 대해 풀 수 있습니다.

M =(gr^2)/G.

<그림>

우리는 G와 r의 값을 알고 있다고 가정합니다. 우리는 arduino와 몇 개의 센서를 포함하는 작은 실험을 사용하여 중력으로 인한 가속도를 찾을 것입니다. 마지막으로 M의 가치를 찾기 위해 모든 것을 합칠 것입니다.

적절한 수학적 표현은 첨부된 이미지를 참조하세요.

실험을 시작해 보겠습니다.

2단계:실험 개요

(아두이노가 곧 시작될 예정입니다. 여기에서 약간의 수학을 참고하세요)

중력에 의한 가속도를 결정하기 위해서는 '자유낙하'라는 것을 알아야 합니다. 그것은 물체/물체가 중력의 힘에 의해서만 지구를 향해 아래로 움직이는 운동입니다. 이제 이 자유낙하를 특징짓는 과학 용어가 거의 없습니다. 초기 속도, 최종 속도, 이동 거리, 비행 시간 및 가속도입니다.

<울>
  • 초기 속도 - 자유낙하 시작 또는 실험 시작 시 자유낙하 물체의 속도.
  • 최종 속도 - 실험 종료시 자유낙하 종료시 자유낙하체의 속도
  • 이동한 거리 - 자유낙하 중 자유낙하 물체가 덮은 거리.
  • 비행 시간 - 자유낙하 상태에서 이동한 거리를 커버하는 데 걸린 시간입니다.
  • 가속 - 자유낙하 시 물체가 관찰한 속도의 변화율. 중력 가속도와 같습니다.
  • 이제 다음과 같은 뉴턴 방정식 중 하나가 있습니다. -

    이동 거리 =(초기 속도 * 비행 시간) + (가속도 * (비행 시간)^2)/2

    위 방정식에는 '가속'이라는 변수를 포함하여 4개의 변수가 있습니다. 이 4개의 변수 중 3개를 알면 나머지 4번째 미지의 변수를 계산할 수 있습니다.

    그 중 2개를 고칠 수 있습니다

    <울>
  • 이동한 거리 =1미터(1미터 높이에서 물체를 떨어뜨림)
  • 초기 속도 =0m/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(포토다이오드) 1쌍
  • 1개의 전위차계
  • 하나의 opamp(UA741C와 같은)
  • 하나의 브레드보드
  • 1.2미터 길이의 전선 3개
  • IR 회로 조립용 소형 5cmx5cm 범용 PCB
  • 테이프
  • 판지 시트
  • 의심이 가는 경우 첨부된 이미지를 확인하십시오.

    <그림> <그림> <그림> <그림> <그림> <그림> <그림> <그림> <그림> <그림> <그림> <그림> <그림> <그림> <그림>

    4단계:회로도 1:IR 회로

    이 회로는 'g'를 측정하는 데 사용되는 물체에 대한 자유 낙하 시작 시간을 타임스탬프하는 데 사용됩니다. 다음은 첨부된 fritzing 도식 이미지에 대한 중요 사항입니다.

    <울>
  • IR LED는 순방향 바이어스에 사용되며 이 애플리케이션에서는 IR 수신기 포토다이오드를 비추는 일반 LED 역할을 합니다.
  • 포토다이오드는 역 바이어스에 사용됩니다.
  • 음극과 저항의 접점에서 나오는 출력은 opamp의 입력 단자 중 하나에 연결됩니다.
  • opamp의 다른 입력 단자는 임계 전압을 결정하는 전위차계에 연결됩니다.
  • opamp의 출력은 Arduino 보드로 이동합니다.
  • 개미가 의심되는 경우 동영상(시간=5분 16초)을 참조하세요.

    5단계:회로도 2:압전 회로

    이 회로는 'g'를 측정하는 데 사용되는 물체의 자유낙하 종료 시간을 타임스탬프로 표시하는 데 사용됩니다. 다음은 첨부된 fritzing 도식 이미지에 대한 중요 사항입니다.

    <울>
  • 4개의 압전 센서가 회로도와 같이 연결됩니다.
  • 4개의 560옴 저항이 압전 센서와 병렬로 연결되어 자유 낙하하는 물체가 표면에 부딪힐 때 압전 센서에서 발생하는 전압 스파이크를 줄입니다.
  • 압전 센서의 음극 단자는 회로 접지에 연결됩니다.
  • 압전 센서의 양극 단자는 아날로그 입력 핀에 연결됩니다.
  • 의심되는 경우 첨부된 동영상을 참조하십시오(시간 =9m 2초).

    6단계:정리하기

    다음 지침에 따라 정리하세요.

    <울>
  • 카드보드를 이용하여 지붕과 같은 구조물을 만들고 약 1.1m 높이에서 벽에 붙입니다.
  • IR 모듈을 아래로 향하게 하여 판지 지붕에 부착합니다.
  • 1.2m 길이의 전선 중 하나를 사용하여 Arduino의 4번 핀에 opamp의 출력을 연결합니다.
  • 나머지 1.2m 길이의 전선을 사용하여 arduino의 Vcc와 GND를 IR 모듈에 연결합니다.
  • 벽에 전선, IR 모듈이 판지 지붕에, 압전 모듈이 IR 모듈 바로 아래 지면에 단단히 부착되었는지 확인합니다.
  • 헷갈리시면 첨부된 이미지를 보시면 조립이 이해가 쉽도록 알맞게 표기되어 있습니다.

    <그림>

    7단계:실험 세부정보

    모든 것이 준비된 상태에서(8단계에서 논의한 Arduino 코드 제외) 이 실험의 절차를 진행해 보겠습니다.

    <울>
  • 1로 번호가 매겨진 이미지와 같이 자유 낙하에 사용된 물체 위에 작고 얇은 돌출부를 붙입니다.
  • 자유낙하를 계속하기 위해 물체를 떠나기 전에 상단의 돌출부가 IR에서 포토 다이오드로 가는 빛을 차단하도록 1미터 표시만 유지합니다. 2로 번호가 매겨진 이미지에 표시된 대로.
  • 물체가 압전 착지 영역에서 자유롭게 떨어지도록 힘을 주지 않고 둡니다.
  • 낙하할 때 IR TX 및 RX의 경로에 장애물이 없어 자유낙하 시작 시점에서 바로 왼쪽 물체에 대한 신호를 제공합니다.
  • 물체가 착륙 지점에 닿으면 압전 센서가 제어된 전압 스파이크를 생성하여 자유 낙하 종료 시간과 관련하여 물체의 도착을 알려줍니다.
  • 시작 시간에서 종료 시간을 빼면 2단계에서 논의한 중력 가속도를 계산하는 데 사용할 비행 시간을 얻게 됩니다.
  • <그림> <그림>

    8단계:Arduino 코드

    이 실험을 위한 Arduino 코드를 첨부합니다. 코드는 정말 간단합니다. 의심이 가는 경우 코드를 자세히 설명하는 동영상을 참조하세요(동영상 시간 =13분 35초).

    9단계:실험하기

    이 실험을 하기 전에 다음 사항에 주의해야 합니다.

    <울>
  • 압전 센서의 임계값은 arduino 코드에서 적절하게 설정되어야 합니다.
  • IR 모듈 바로 아래에 압전 패널을 배치합니다.
  • 외력을 가하지 않고 1미터에서 물건을 떨어뜨리세요.
  • 여기 첨부된 영상의 타임스탬프 17분에 이 실험을 하고 있습니다. 이 실험에서 얻은 비행 시간과 같은 결과를 사용하여 지구의 질량을 계산합니다.

    10단계:지구의 결과 및 질량

    이 실험을 3번 반복한 후 Time of Flight 측면에서 다음과 같은 결과를 얻었습니다.

    <울>
  • 443ms
  • 443ms
  • 464ms
  • 평균을 구합시다.

    평균 비행 시간 =450ms

    중력 가속도를 얻기 위해 방정식에서 이 값을 대입하면 가속도는 약 9.8755m/s2가 됩니다. 첨부된 이미지와 같이

    마지막으로 이 'g' 값을 지구의 질량으로 대체하면 첨부된 이미지에서 볼 수 있듯이 약 6.0066 x 1024Kg이 됩니다.

    Google에 따른 지구의 실제 질량은 5.972 x 1024 Kg입니다. 가까워진 것 같아요.

    시간을 내주셔서 감사합니다. 의심스러운 점이 있으면 동영상을 참조하거나 댓글에 남겨주세요. 기꺼이 도와드리겠습니다.

    <그림>


    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • 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); 핀모드(센서핀1,입력); 핀모드(센서핀2,입력); 핀모드(센서핀3,입력); 핀모드(센서핀4,입력); pinMode(photoPin,INPUT);}void loop() { // 여기에 기본 코드를 넣어 반복적으로 실행합니다. int start =digitalRead(photoPin); 시작 시간 =밀리(); if(시작 ==HIGH) digitalWrite(ledPin, HIGH); 동안(시작 ==LOW) { digitalWrite(ledPin, LOW); val1 =analogRead(sensorPin1); val2 =analogRead(sensorPin2); val3 =analogRead(sensorPin3); val4 =analogRead(sensorPin4); //sprintf(stringToPrint,"%d,%d,%d,%d",val1,val2,val3,val4); //Serial.println(stringToPrint); if((val1>=임계값) || (val2>=임계값) || (val3>=임계값) || (val4>=임계값)) { endTime =millis(); sprintf(stringToPrint,"%dms",endTime - 시작시간); Serial.println(문자열 인쇄); 디지털 쓰기(LED 핀, 높음); 지연(1000); 디지털 쓰기(LED핀,낮음); 시작 =높음; } }}

    회로도

    IR 회로용 fritzing 회로도 하드웨어 이미지 프리칭 회로도 하드웨어 이미지

    제조공정

    1. OpenSensor의 공기질 측정 방법
    2. 푸시 버튼을 사용하여 PWM으로 조명 디밍
    3. ARDUINO를 사용하는 초음파 부상 기계
    4. Arduino를 사용한 주파수 및 듀티 사이클 측정
    5. 나를 찾기
    6. arduino를 사용한 소나 및 IDE 처리 시 표시
    7. Arduino + Processing + PHP를 사용한 자동차 카운터
    8. Arduino와 함께 MAX30100 웨어러블 펄스 센서 사용
    9. YL-39 + YL-69 토양 습도 센서를 Arduino와 함께 사용
    10. 우리 회사의 디지털 성숙도를 측정하는 방법은 무엇입니까?