De massa van de aarde meten met Arduino: een stapsgewijze DIY-gids
Onderdelen en benodigdheden
- Arduino UNO (1×)
- USB-A naar B-kabel (1×)
- 560 Ω weerstand (4×)
- 100 Ω weerstand (2×)
- Piezo-elektrische sensor (4×)
- IR-zender (1×)
- IR-ontvanger (1×)
- Draaipotentiometer (1×)
- Opamp UA741C (1×)
- Breadboard (1×)
- Draden van 1,2 m (3×)
- Universele printplaat (1×)
- Tape (1×)
- Karton vel (1×)
Apps en online diensten
- Arduino IDE
Over dit project
Inleiding
Op een gegeven moment stond ik op een weegschaal en dacht: „Hoe zwaar is de aarde eigenlijk?” Er is geen weegschaal groot genoeg om de aarde te wegen, dus er moet een indirecte methode zijn. Hier presenteer ik een praktische implementatie van zo’n indirecte methode om de massa van de aarde te bepalen.
Stap 1: De indirecte methode
In de vroege 19e eeuw gebruikten wetenschappers Newton’s tweede wet (F = m·a) en de wet van universele zwaartekracht (F = G·m·M / r²). Door de versnelling a te vervangen door de zwaartekrachtsversnelling g en de twee vergelijkingen te combineren, ontstaat:
m·g = G·m·M / r²
Hieruit volgt de massa van de aarde M:
M = (g·r²) / G

We gaan ervan uit dat de gravitatieconstante G en de straal van de aarde r bekend zijn. We bepalen g experimenteel met een Arduino en een paar sensoren, en berekenen daarna M.
Stap 2: Overzicht van het experiment
(Een beetje wiskunde, de Arduino komt er al gauw bij)
Om g te bepalen gebruiken we een vrije val. Kenmerken van een vrije val:
- Beginssnelheid – snelheid aan het begin van de val (0 m/s als we vanuit rust laten vallen).
- Eindsnelheid – snelheid aan het einde.
- Afgelegde afstand – de valhoogte (we kiezen 1 meter).
- Vliegtijd – de tijd die het object nodig heeft om de afstand af te leggen.
- Versnelling – de verandering van snelheid per seconde; dit is g.
Uit de bewegingsvergelijking: s = v₀·t + ½·a·t². Met s = 1 m, v₀ = 0 m/s blijft:
1 = ½·g·t² → g = 2 / t²
De Arduino meet de vliegtijd t door twee tijdstippen te registreren: het begin en het einde van de val. De schakelingen hiervoor volgen in stap 4 en 5.

Stap 3: Benodigde materialen
- Arduino-bord (bijv. Uno of Duemilanove)
- USB-kabel
- 560 Ω weerstanden (4), 100 Ω weerstanden (2)
- Piezo-elektrische sensoren (4)
- IR-zender en -ontvanger (1 paar)
- Potentiometer (1)
- Opamp UA741C (1)
- Breadboard (1)
- Draden van 1,2 m (3)
- Kleine printplaat voor IR-schakeling (5×5 cm)
- Tape, karton
Stap 4: Schema 1 – IR-schakeling (starttijd)
Deze schakeling detecteert het moment dat het vallende object de IR-balans verlaat.
- IR-led in forward bias verlicht de fotodiodo.
- Fotodiodo in reverse bias.
- Uitgang (kathode–weerstand-knooppunt) naar één ingang van de opamp.
- Andere ingang van de opamp aan potentiometer voor drempelspanning.
- Opamp-uitgang naar Arduino-pin 4.
Stap 5: Schema 2 – Piezo-schakeling (eindtijd)
Vier piezo-sensoren met parallele 560 Ω weerstanden vangen de botsing op en geven een spanningspiek door aan de analoge ingangen van de Arduino.
Stap 6: Montage
- Maak een dakje van karton en bevestig het op ~1,1 m hoogte aan de muur.
- Monteer de IR-module naar beneden gericht op het dakje.
- Sluit opamp-uitgang aan op pin 4 (1,2 m draad), VCC en GND van Arduino aan IR-module (overige draden).
- Plaats de piezo-paneel direct onder de IR-module op de vloer.
- Zorg dat alles stevig zit (draden aan muur, sensoren aan dakje/vloer).

Stap 7: Uitvoering van het experiment
- Plak een kleine uitsteeksel bovenop het valobject (zie afbeelding 1).
- Houd het object op 1 m hoogte zodat de uitsteeksel de IR-bundel onderbreekt (afbeelding 2).
- Laat het object zonder extra kracht vallen.
- Zolang de bundel onderbroken is, registreren we de starttijd.
- Bij aanraking van de piezo-sensoren ontstaat een spanningspiek → eindtijd.
- Vliegtijd = eindtijd – starttijd. Hieruit berekenen we g en uiteindelijk M.

Stap 8: Arduino-code
De code is eenvoudig en meet de vliegtijd in milliseconden. Zie de bijgevoegde video (13:35) voor uitleg.
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);
startTime = millis();
if (start == HIGH) digitalWrite(ledPin, HIGH);
while (start == LOW) {
digitalWrite(ledPin, LOW);
val1 = analogRead(sensorPin1);
val2 = analogRead(sensorPin2);
val3 = analogRead(sensorPin3);
val4 = analogRead(sensorPin4);
if ((val1 >= threshold) || (val2 >= threshold) || (val3 >= threshold) || (val4 >= threshold)) {
endTime = millis();
sprintf(stringToPrint, "%d ms", endTime - startTime);
Serial.println(stringToPrint);
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
start = HIGH;
}
}
}
Stap 9: Het experiment uitvoeren
- Stel de drempelwaarde van de piezo-sensoren correct in de code in.
- Plaats het piezo-paneel precies onder de IR-module.
- Laat het object vanaf 1 m vallen zonder duwen.
Stap 10: Resultaten en massa van de aarde
Drie metingen gaven vliegtijden van 443 ms, 443 ms en 464 ms. Gemiddeld: 450 ms.
g = 2 / (0,450)² ≈ 9,88 m/s².
M = (9,88 × (6,371×10⁶)²) / (6,674×10⁻¹¹) ≈ 6,01×10²⁴ kg.
De officiële waarde is 5,972×10²⁴ kg – ons resultaat ligt dichtbij!

Productieproces
- Luchtkwaliteit meten met OpenSensors: Een Arduino & Python Handleiding
- LED helderheid regelen met PWM via drukknop op Arduino Mega
- Bouw een Ultrasonische Zweefapparaat met Arduino – Stap-voor-stap Handleiding
- Nauwkeurige Frequentie- en Duty Cycle-meting met Arduino UNO
- Find Me: Slimme Item Locator met Arduino en Bluetooth
- Realtime afstandsmeting met Arduino Sonar & Processing visualisatie
- Slimme Parkeer Teller: Real-time Voertuigvolging met Arduino, Processing en PHP
- MAX30100 hartslagsensor integreren met Arduino: Stapsgewijze handleiding
- Stapsgewijze handleiding: YL-39/YL-69 bodemvochtigheidsensor aan Arduino UNO koppelen
- Een PHP-webinterface bouwen om je Arduino Uno te besturen
- De digitale rijpheid van uw bedrijf beoordelen: Een bewezen framework