Eksperimen Sains dengan Arduino: Pencatatan Data, Tabel, dan Grafik
Eksperimen sains Arduino untuk kelas: 3 praktikum siap pakai dengan DS18B20, LDR, dan HC-SR04, kode pencatat CSV, Serial Plotter, grafik, rencana 2 pertemuan, dan laporan praktikum.
Menjalankan eksperimen sains dengan Arduino pada dasarnya terdiri dari enam langkah: siswa lebih dulu menulis pertanyaan yang bisa diukur dan sebuah hipotesis, lalu menghubungkan sensor yang sesuai ke Arduino; board menulis setiap pembacaan beserta cap waktunya ke port serial dalam format “zaman_ms,deger” (waktu dalam ms, nilai), kurvanya dipantau langsung di Serial Plotter, baris-baris dari Serial Monitor disalin ke spreadsheet sebagai file CSV, grafik dibuat dari tabel, lalu kesimpulan ditulis dengan membandingkan grafik dengan hipotesis. Berbeda dengan mengukur manual memakai termometer dan stopwatch, Arduino mengumpulkan 60 titik dalam 10 menit dengan interval yang sama, tanpa lelah dan tanpa salah baca. Jadi siswa bebas menafsirkan data, bukan sibuk menyalin angka.
Tulisan ini memberimu tiga eksperimen siap jalan yang cocok untuk pelajaran IPA, fisika, dan biologi: kurva pendinginan air panas dengan DS18B20, perubahan intensitas cahaya terhadap jarak memakai LDR, dan gerak di bidang miring dengan HC-SR04 (ditambah pengukuran kecepatan suara). Setiap eksperimen dilengkapi pertanyaan, variabel, bahan, ringkasan pengkabelan, kode yang bisa dikompilasi, templat tabel data, dan hasil yang diharapkan. Setelah itu ada langkah-langkah untuk Serial Plotter dan untuk memindahkan data ke spreadsheet, tabel kesalahan pengukuran dan kalibrasi, alur pelajaran 2 × 40 menit, templat laporan praktikum singkat, dan catatan keselamatan. Contoh-contohnya memakai asumsi berikut: misalnya kamu punya kelas berisi 24 siswa, siswa bekerja dalam 6 kelompok berisi 4 orang, dan tiap kelompok punya satu Arduino Uno dan satu komputer. Detail pengkabelan tiap sensor tidak kita bahas di sini; kami menautkan panduan masing-masing sensor di bagian yang relevan.
Eksperimen sains dengan Arduino dalam 6 langkah: dari pertanyaan sampai kesimpulan
- Pertanyaan dan hipotesis: Pilih pertanyaan yang bisa diukur (“Apakah air panas lebih cepat mendingin dalam 5 menit pertama atau dalam 5 menit berikutnya?”) dan minta siswa menulis hipotesis dengan pola “Jika … maka …, karena …”. Hipotesis harus menyebut arah atau angka; “berubah” saja tidak cukup.
- Variabel: Minta siswa menuliskan variabel bebas (yang kamu ubah: waktu, jarak, kemiringan), variabel terikat (yang diukur sensor: suhu, cahaya, posisi), dan variabel kontrol (jumlah air, senter yang sama, papan yang sama) ke dalam tabel. Kalau sebuah eksperimen kacau, penyebabnya biasanya variabel yang tidak dijaga tetap.
- Sensor dan kode: Hubungkan sensor dan upload kodenya. Kode menulis setiap baris sebagai “zaman_ms,deger”; baris pertama adalah header yang memberi nama kolom. Board mencatat waktu dengan penghitung millis() miliknya sendiri, jadi stopwatch tidak diperlukan.
- Pantauan langsung: Sebelum putaran yang direkam, amati putaran uji singkat di Serial Plotter. Kalau kurvanya melompat tanpa diduga (kabel longgar, bayangan, tangan menyentuh sesuatu), perbaiki di tempat; menyadarinya setelah pengukuran selesai sudah terlambat.
- Data dan tabel: Salin baris-baris dari Serial Monitor, simpan sebagai file .csv, impor ke spreadsheet, lalu tambahkan konversi satuan (ms → s) dan kolom hitungan.
- Grafik dan kesimpulan: Buat grafik XY (scatter), beri nama dan satuan pada kedua sumbu, bandingkan grafik dengan hipotesis, lalu tulis kesimpulan sebagai kalimat yang berdasar pada data: “Hipotesis kami terbukti atau tidak terbukti, karena …”.
Daftar bahan dan ringkasan pengkabelan
| Bahan | Per kelompok | Total kelas (6 kelompok) | Eksperimen |
|---|---|---|---|
| Arduino Uno + kabel USB | 1 | 6 | Semua |
| Komputer (Arduino IDE terinstal) | 1 | 6 | Semua |
| Breadboard + 10 kabel jumper male-to-male | 1 set | 6 set | Semua |
| Probe DS18B20 tahan air + resistor 4,7 kΩ | 1 + 1 | 6 + 6 | 1 Pendinginan |
| Mug tahan panas (sekitar 250 mL) + gelas ukur | 1 + 1 | 6 + 6 | 1 Pendinginan |
| Air panas (sekitar 60 °C, dibagikan oleh guru) | 200 mL | 1,2 L + cadangan | 1 Pendinginan |
| LDR + resistor 10 kΩ | 1 + 1 | 6 + 6 | 2 Cahaya |
| Senter LED kecil atau senter ponsel + meteran gulung | 1 + 1 | 6 + 6 | 2 Cahaya |
| Sensor jarak HC-SR04 | 1 | 6 | 3 Gerak |
| Papan datar 1–1,5 m, 2–3 buku, mobil mainan + karton 10 × 10 cm | 1 set | 6 set | 3 Gerak |
| Termometer laboratorium (sebagai pembanding) | — | 1 | Kalibrasi |
| Eksperimen | Sensor | Pengkabelan Arduino Uno | Komponen tambahan dan catatan |
|---|---|---|---|
| 1 Pendinginan | Probe DS18B20 | Merah → 5V, hitam → GND, kuning (DQ) → D2 | Resistor 4,7 kΩ antara kabel kuning dan 5V; library OneWire dan DallasTemperature |
| 2 Cahaya | LDR | Satu kaki → 5V, kaki lainnya → A0 | Resistor 10 kΩ antara A0 dan GND (pembagi tegangan); tidak perlu library |
| 3 Gerak dan suara | HC-SR04 | VCC → 5V, GND → GND, Trig → D9, Echo → D10 | Tidak ada komponen tambahan; jaga agar kerucut sekitar 15° di depan sensor tetap kosong |
Eksperimen 1: Kurva pendinginan air panas (DS18B20)

Pertanyaan: Apakah air panas mendingin dengan jumlah yang sama setiap menit, atau pendinginannya makin lambat seiring waktu? Contoh hipotesis: “Pendinginan berlangsung cepat selama selisih suhu antara air dan ruangan masih besar, lalu melambat ketika selisihnya mengecil.” Variabel bebas adalah waktu dan variabel terikat adalah suhu air; variabel kontrol adalah jumlah air (200 mL), jenis wadah, letak wadah di meja, dan suhu ruangan. Kamu juga bisa memberi kelompok pertanyaan kedua: apakah ada perbedaan antara mug bertutup dan tanpa tutup, atau antara gelas kaca dan gelas kertas? Maka wadah menjadi variabel bebas, dua kelompok mengukur bersamaan lalu membandingkan kurvanya. Untuk pengkabelan dan instalasi library, lihat panduan DS18B20. Kalau kamu hanya punya DHT11, jangan pernah memasukkannya ke air: eksperimen setara yang aman dengan DHT11 adalah menghangatkan sensor di genggaman selama satu menit, meletakkannya di meja, lalu mengukur bagaimana sensor itu mendingin di udara (panduan DHT11).
1// Deney 1: Sıcak suyun soğuma eğrisi / Experiment 1: cooling curve of hot water
2// Kütüphaneler: OneWire + DallasTemperature / Libraries: OneWire + DallasTemperature
3#include <OneWire.h>
4#include <DallasTemperature.h>
5
6const int ONE_WIRE_PIN = 2; // DS18B20 veri (DQ) pini / data (DQ) pin
7const unsigned long INTERVAL_MS = 10000; // 10 saniyede bir ölçüm / one reading every 10 s
8const bool PLOTTER_MODE = false; // true: Serial Plotter için yalnız değer / value only for Serial Plotter
9
10OneWire oneWire(ONE_WIRE_PIN);
11DallasTemperature sensors(&oneWire);
12unsigned long startMs = 0;
13unsigned long lastMs = 0;
14
15void setup() {
16 Serial.begin(9600);
17 sensors.begin();
18 if (!PLOTTER_MODE) {
19 Serial.println("zaman_ms,sicaklik_C"); // CSV başlık satırı / CSV header line
20 }
21 startMs = millis();
22 lastMs = startMs - INTERVAL_MS; // ilk ölçüm hemen / first reading right away
23}
24
25void loop() {
26 unsigned long now = millis();
27 if (now - lastMs < INTERVAL_MS) {
28 return; // daha zamanı gelmedi / not time yet
29 }
30 lastMs += INTERVAL_MS; // kaymayan zamanlama / drift-free timing
31
32 sensors.requestTemperatures(); // ölçümü başlat (~750 ms) / start conversion (~750 ms)
33 float tempC = sensors.getTempCByIndex(0);
34 if (tempC == DEVICE_DISCONNECTED_C) { // sensör yanıt vermedi / sensor did not respond
35 return;
36 }
37
38 if (PLOTTER_MODE) {
39 Serial.print("sicaklik_C:");
40 Serial.println(tempC, 2);
41 } else {
42 Serial.print(now - startMs); // deney başından beri ms / ms since start
43 Serial.print(",");
44 Serial.println(tempC, 2);
45 }
46}| Waktu (s) | Suhu air T (°C) | Suhu ruangan T_ruang (°C) | Selisih ΔT = T − T_ruang (°C) | Rasio sisa ΔT / ΔT₀ |
|---|---|---|---|---|
| 0 | … | … | … | 1,00 |
| 60 | … | … | … | … |
| 120 | … | … | … | … |
| 300 | … | … | … | … |
| 600 | … | … | … | … |
| 900 | … | … | … | … |
| 1200 | … | … | … | … |
Kode menulis satu baris setiap 10 detik, jadi pengukuran 20 menit menghasilkan 120 baris. Waktu berasal dari penghitung millis() milik board, dan karena lastMs selalu ditambah tepat 10.000 setiap kali, pembacaan tidak bergeser; tekniknya dijelaskan di artikel millis() dan delay(). Ubah PLOTTER_MODE di bagian atas kode menjadi true, maka kolom waktu hilang dan Serial Plotter hanya menggambar suhu. Templat di atas adalah tabel ringkasan untuk laporan, sedangkan data lengkapnya tetap ada di file CSV; ukur suhu ruangan di udara dengan sensor yang sama di awal eksperimen dan catat hasilnya. Hasil yang diharapkan: Kurvanya bukan garis lurus, melainkan kurva yang perlahan makin landai: suhu turun cepat di menit-menit pertama, lalu penurunannya melambat. Inilah hukum pendinginan Newton: laju pendinginan sebanding dengan selisih suhu antara benda dan lingkungannya. Siswa yang menghitung kolom terakhir akan melihat bahwa selisihnya menyusut dengan rasio yang kurang lebih sama dalam selang waktu yang sama; misalnya selisihnya tinggal separuh dalam 8 menit pertama, maka dalam 8 menit berikutnya selisih itu tinggal separuh lagi. Mug bertutup mendingin lebih lambat, karena panas yang hilang lewat penguapan lebih sedikit. Di pelajaran biologi, eksperimen yang sama yang diulang dengan wadah kecil dan besar bisa mengantar ke diskusi mengapa hewan kecil kehilangan panas lebih cepat.
Eksperimen 2: Intensitas cahaya dan jarak (LDR)

Pertanyaan: Bagaimana intensitas cahaya berkurang ketika kamu menjauh dari sumber cahaya; ketika jaraknya menjadi dua kali lipat, apakah cahayanya turun menjadi separuh atau seperempat? Contoh hipotesis: “Ketika jarak menjadi dua kali lipat, intensitas cahaya turun menjadi seperempat.” Variabel bebas adalah jarak dari senter ke LDR (10, 15, 20, 30, 40, dan 50 cm), variabel terikat adalah nilai yang dibaca dari A0; variabel kontrol adalah senter yang sama, baterai yang sama, senter yang menghadap lurus ke LDR, dan cahaya sekitar. Lakukan eksperimen dengan tirai tertutup dan, kalau bisa, lampu ruangan diredupkan; kalau cahaya sekitar kuat, kontribusi senter tenggelam pada jarak yang lebih jauh. Dengan pengkabelan ini, nilai yang terbaca naik ketika cahaya bertambah; konsep pembagi tegangan di baliknya ada di panduan LDR. Geser senter di sepanjang meteran gulung, tunggu 5 detik di setiap jarak sampai nilainya stabil, lalu tulis tiga nilai berurutan dari Serial Monitor ke tabel. Di awal, ambil satu pembacaan dengan senter mati: inilah nilai latar ruangan. Kalau nilai pada jarak terjauh sangat dekat dengan nilai latar, keluarkan jarak itu dari grafik.
1// Deney 2: Işık şiddeti ve mesafe / Experiment 2: light intensity and distance
2// Bağlantı: 5V - LDR - A0 - 10 kΩ - GND / Wiring: 5V - LDR - A0 - 10 kΩ - GND
3const int LDR_PIN = A0; // bölücünün orta noktası / divider midpoint
4const unsigned long INTERVAL_MS = 500; // yarım saniyede bir satır / one line every 0.5 s
5const int SAMPLES = 16; // ortalama için örnek sayısı / samples per average
6const bool PLOTTER_MODE = false; // true: Serial Plotter için yalnız değer / value only for Serial Plotter
7
8unsigned long startMs = 0;
9unsigned long lastMs = 0;
10
11int readAverage() {
12 long sum = 0;
13 for (int i = 0; i < SAMPLES; i++) {
14 sum += analogRead(LDR_PIN); // 0 (karanlık) ... 1023 (aydınlık) / dark ... bright
15 delay(2);
16 }
17 return (int)(sum / SAMPLES); // gürültüyü azaltır / reduces noise
18}
19
20void setup() {
21 Serial.begin(9600);
22 if (!PLOTTER_MODE) {
23 Serial.println("zaman_ms,ldr_ham"); // CSV başlık satırı / CSV header line
24 }
25 startMs = millis();
26 lastMs = startMs - INTERVAL_MS; // ilk ölçüm hemen / first reading right away
27}
28
29void loop() {
30 unsigned long now = millis();
31 if (now - lastMs < INTERVAL_MS) {
32 return;
33 }
34 lastMs += INTERVAL_MS;
35
36 int raw = readAverage();
37 if (PLOTTER_MODE) {
38 Serial.print("ldr_ham:");
39 Serial.println(raw);
40 } else {
41 Serial.print(now - startMs); // deney başından beri ms / ms since start
42 Serial.print(",");
43 Serial.println(raw);
44 }
45}| Jarak d (cm) | 1 / d² (1/cm²) | Pembacaan 1 | Pembacaan 2 | Pembacaan 3 | Rata-rata mentah | Hambatan LDR (Ω) |
|---|---|---|---|---|---|---|
| Senter mati | — | … | … | … | … | … |
| 10 | 0,0100 | … | … | … | … | … |
| 15 | 0,0044 | … | … | … | … | … |
| 20 | 0,0025 | … | … | … | … | … |
| 30 | 0,0011 | … | … | … | … | … |
| 40 | 0,0006 | … | … | … | … | … |
| 50 | 0,0004 | … | … | … | … | … |
Setiap setengah detik, kode mencetak rata-rata dari 16 pembacaan, sehingga getaran kecil pada nilai analogRead tunggal teredam. Untuk menghitung hambatan LDR, jika rata-rata mentah ada di kolom F, ketik =10000*(1023-F3)/F3 di kolom G lalu tarik ke bawah (untuk resistor tetap 10 kΩ dan LDR yang terhubung ke 5V). Hasil yang diharapkan: Nilai yang terbaca turun ketika jarak bertambah, cepat di jarak dekat dan lambat di jarak jauh. Namun nilai mentahnya tidak turun menjadi seperempat antara 10 cm dan 20 cm, karena angka mentah itu bukan intensitas cahaya, melainkan ukuran tegangan pembagi. Untuk melihat hukum kuadrat terbalik, plot jarak terhadap hambatan LDR pada grafik dengan kedua sumbu logaritmik: titik-titiknya kurang lebih berjajar di satu garis lurus. Intensitas cahaya berbanding terbalik dengan kuadrat jarak, dan hambatan LDR kurang lebih berbanding terbalik dengan intensitas cahaya pangkat γ; jadi kemiringan garisnya bukan 2, melainkan 2 × γ. Untuk LDR yang umum, γ biasanya antara 0,5 dan 0,9, jadi perkirakan kemiringan antara 1 dan 1,8. Di kelas fisika SMA, ini pembuka yang bagus untuk pertanyaan “bagaimana perilaku alat ukur itu sendiri memengaruhi hasil?”
Eksperimen 3: Gerak di bidang miring dan kecepatan suara (HC-SR04)

Pertanyaan: Apakah mobil yang dilepas di bidang miring meluncur dengan kecepatan tetap, atau terus bertambah cepat? Bagaimana percepatannya berubah ketika kemiringan bertambah? Contoh hipotesis: “Mobil menempuh jarak yang makin jauh dalam selang waktu yang sama, jadi mobil bertambah cepat; kemiringan yang lebih curam membuatnya bertambah cepat lebih pesat.” Variabel bebas adalah waktu (dan kemiringan pada putaran kedua: 1, 2, dan 3 buku), variabel terikat adalah jarak mobil dari sensor; variabel kontrol adalah mobil, titik pelepasan, dan papan. Persiapan: angkat salah satu ujung papan datar 1–1,5 m dengan buku dan letakkan HC-SR04 di ujung yang rendah, menghadap ke atas papan. Tempelkan potongan karton 10 × 10 cm di bagian belakang mobil mainan; sensor tidak bisa mendapat gema yang andal dari benda kecil dan bulat, sedangkan karton datar memberi gema yang kuat. Tahan mobil sekitar 100 cm dari sensor, lepaskan, dan taruh buku di depan sensor agar mobil tidak menabraknya. Cara kerja sensor dan jangkauannya dibahas di panduan HC-SR04.
1// Deney 3: Eğik düzlemde hareket ve ses hızı / Experiment 3: motion on a ramp and speed of sound
2const int TRIG_PIN = 9; // tetik / trigger
3const int ECHO_PIN = 10; // yankı / echo
4const unsigned long INTERVAL_MS = 60; // ölçümler arası en az ~60 ms / at least ~60 ms between pings
5const bool PLOTTER_MODE = false; // true: Serial Plotter için yalnız değer / value only for Serial Plotter
6const bool RAW_ECHO_US = false; // true: ses hızı deneyi için yankı süresi (µs) / echo time for speed of sound
7
8unsigned long startMs = 0;
9unsigned long lastMs = 0;
10
11void setup() {
12 pinMode(TRIG_PIN, OUTPUT);
13 pinMode(ECHO_PIN, INPUT);
14 digitalWrite(TRIG_PIN, LOW);
15 Serial.begin(9600);
16 if (!PLOTTER_MODE) {
17 Serial.println(RAW_ECHO_US ? "zaman_ms,yanki_us" : "zaman_ms,mesafe_cm"); // CSV başlığı / CSV header
18 }
19 startMs = millis();
20 lastMs = startMs - INTERVAL_MS; // ilk ölçüm hemen / first reading right away
21}
22
23void loop() {
24 unsigned long now = millis();
25 if (now - lastMs < INTERVAL_MS) {
26 return;
27 }
28 lastMs += INTERVAL_MS;
29
30 digitalWrite(TRIG_PIN, LOW);
31 delayMicroseconds(2);
32 digitalWrite(TRIG_PIN, HIGH); // 10 µs tetik darbesi / 10 µs trigger pulse
33 delayMicroseconds(10);
34 digitalWrite(TRIG_PIN, LOW);
35
36 unsigned long echoUs = pulseIn(ECHO_PIN, HIGH, 25000UL); // en fazla 25 ms (~4 m) / max 25 ms (~4 m)
37 if (echoUs == 0) { // yankı yok, satırı atla / no echo, skip the line
38 return;
39 }
40 float distanceCm = echoUs * 0.0343 / 2.0; // 343 m/s, gidiş-dönüş / round trip
41
42 if (PLOTTER_MODE) {
43 Serial.print("mesafe_cm:");
44 Serial.println(distanceCm, 1);
45 } else {
46 Serial.print(now - startMs); // deney başından beri ms / ms since start
47 Serial.print(",");
48 if (RAW_ECHO_US) {
49 Serial.println(echoUs);
50 } else {
51 Serial.println(distanceCm, 1);
52 }
53 }
54}| Kolom | Header | Isi atau rumus | Apa yang ditunjukkan |
|---|---|---|---|
| A | zaman_ms (waktu) | Dari CSV | Waktu sejak awal putaran |
| B | mesafe_cm (jarak) | Dari CSV | Jarak mobil dari sensor |
| C | zaman_s (waktu) | =A2/1000 | Sumbu horizontal grafik |
| D | yol_cm (jarak tempuh) | =B$2-B2 | Jarak tempuh dari titik pelepasan |
| E | hiz_cm_s (kecepatan) | =(D7-D2)/(C7-C2), mulai di E7 | Kecepatan rata-rata selama sekitar 0,3 s |
| F | kosul (kondisi) | 1, 2, atau 3 buku | Putaran tempat baris itu berasal |
Kode mencetak satu baris setiap 60 ms, sekitar 16 baris per detik; jeda antarpembacaan ini disarankan agar gema HC-SR04 tidak bercampur. Kalau tidak ada gema yang kembali (benda di luar jangkauan atau posisinya miring), baris itu dilewati. Hitung kecepatan bukan dari dua baris berurutan, melainkan dari baris yang berjarak 5 baris; dengan interval 60 ms, getaran pengukuran 1–2 mm saja sudah membuat kecepatannya melompat-lompat. Hasil yang diharapkan: Grafik posisi-waktu bukan garis lurus, melainkan kurva yang makin curam (parabola), sedangkan grafik kecepatan-waktu kurang lebih berupa garis lurus: mobil bertambah cepat dengan percepatan tetap, dan kemiringan garis itu memberi nilai percepatannya. Di bidang miring tanpa gesekan, percepatannya adalah g × sin θ: papan 1,5 m yang diangkat 10 cm memberi sin θ ≈ 0,067, jadi kira-kira 65 cm/s². Nilai terukur yang lebih kecil dari ini disebabkan oleh gesekan dan putaran roda, dan masuk ke laporan sebagai sumber kesalahan. Variasi kecepatan suara: Ubah RAW_ECHO_US menjadi true, letakkan selembar karton datar di depan sensor pada jarak 20, 40, 60, 80, dan 100 cm, lalu rata-ratakan waktu gema di setiap jarak. Pada grafik dengan jarak pulang-pergi (2 × d) di sumbu horizontal dan waktu di sumbu vertikal, kemiringannya adalah 1/v; v keluar sekitar 340 m/s pada suhu ruangan dan naik seiring suhu (kira-kira v ≈ 331 + 0,6 × T m/s). Metode kemiringan ini juga otomatis menghilangkan jeda tetap di dalam sensor.
Serial Plotter dan memindahkan data ke spreadsheet
- Setelah meng-upload kode, buka Tools > Serial Monitor dan atur kecepatannya ke 9600 baud, sesuai kode. Biarkan tombol timestamp mati; kalau menyala, jam komputer ditambahkan di awal setiap baris dan CSV-nya rusak.
- Sebelum mengukur, bersihkan output dan tekan tombol RESET pada board. Dengan begitu waktu mulai dari 0 dan baris pertama adalah header seperti zaman_ms,sicaklik_C (waktu dan suhu dalam °C).
- Untuk grafik langsung, ubah PLOTTER_MODE di kode menjadi true, upload lagi, dan buka Tools > Serial Plotter. Serial Plotter tidak menyimpan data, hanya menampilkannya; jadi gunakan untuk putaran uji dan kembalikan PLOTTER_MODE ke false untuk putaran yang direkam.
- Setelah pengukuran selesai, pilih baris-baris di Serial Monitor dengan mouse dari baris header sampai baris terakhir, lalu salin dengan Ctrl+C (Cmd+C di macOS). Tempel ke editor teks biasa dan simpan dengan nama yang memuat kelompok, eksperimen, dan tanggal, misalnya kelompok2-pendinginan-1104.csv.
- Impor file ke spreadsheet: di Excel gunakan Data > From Text/CSV (versi bahasa Indonesia: Data > Dari Teks/CSV), di Google Sheets File > Import (File > Impor), dan di LibreOffice Calc cukup buka filenya. Pilih koma sebagai pemisah.
- Perhatikan pemisah desimal: Arduino menulis angka dengan titik, seperti 23.50, sedangkan spreadsheet dengan pengaturan wilayah Indonesia (dan banyak wilayah Eropa) mengharapkan koma. Kalau perlu, pilih English (United States) sebagai lokal ketika mengimpor atau ganti titik dengan koma; kalau tidak, 23.50 terbaca sebagai teks atau tanggal dan grafiknya kosong.
- Tambahkan kolom hitungan (ms → s, selisih, rasio, kecepatan) dan buat grafiknya sebagai grafik XY scatter. Grafik garis (line chart) memperlakukan sumbu horizontal sebagai kategori berjarak sama, sehingga sumbu waktu jadi terdistorsi di tempat baris-baris yang dilewati.
Grafik eksperimen yang baik punya empat hal: variabel bebas di sumbu horizontal, variabel terikat di sumbu vertikal, nama dan satuan di kedua sumbu (“Waktu (s)”, “Suhu (°C)”), dan judul yang menyebutkan apa yang ditunjukkan (“Pendinginan 200 mL air di mug tanpa tutup”). Menampilkan dua kondisi pada grafik yang sama dengan warna berbeda (bertutup dan tanpa tutup, 1 dan 3 buku) membuat perbandingannya terlihat sekilas. Sebelum siswa melihat grafiknya, minta mereka menjawab “Kalau hipotesis kami benar, seperti apa seharusnya grafiknya?” dengan sketsa kasar di kertas; menaruh grafik asli di samping sketsa adalah cara termudah untuk menulis kesimpulan. Kesimpulan selalu harus bersandar pada angka: “Air mendingin … °C dalam 5 menit pertama dan … °C dalam 5 menit berikutnya.” Cara mengunci skala dan memberi label garis di Serial Plotter dijelaskan di panduan Serial Monitor. Kalau kamu tidak mau menyalin pengukuran panjang secara manual, kamu bisa menulis data langsung ke file dengan Python, atau untuk pengukuran tanpa komputer, mencatat CSV ke modul kartu SD.
Kesalahan pengukuran dan kalibrasi
| Topik | Yang perlu diketahui | Yang dilakukan di kelas |
|---|---|---|
| Akurasi DS18B20 | ±0,5 °C antara −10 dan +85 °C; pada 12 bit, satu pembacaan butuh sekitar 750 ms. | Sebelum mengukur, masukkan semua probe ke wadah air es yang sama; catat seberapa jauh masing-masing dari 0 °C dan koreksi di tabel. |
| Akurasi DHT11 | ±2 °C antara 0 dan 50 °C; paling banyak 1 pembacaan per detik, responsnya lambat. | Jangan pernah memasukkannya ke air, gunakan hanya untuk eksperimen di udara; jangan membacanya lebih sering dari sekali per detik. |
| LDR | Tidak linear, berbeda dari satu komponen ke komponen lain; nilainya butuh waktu untuk stabil setelah cahaya berubah. | Gunakan LDR yang sama sepanjang eksperimen, tunggu 5 s di setiap jarak, dan tafsirkan hasilnya hanya dalam data kelompok itu sendiri. |
| HC-SR04 | 2–400 cm, resolusi sekitar 3 mm; kecepatan suara berubah sekitar 0,6 m/s per 1 °C; kerucut sekitar 15°. | Cek pada 20 dan 50 cm dengan meteran gulung; target harus datar dan menghadap sensor, tanpa benda lain yang menghalangi. |
| Frekuensi sampling | Sampling yang terlalu jarang melewatkan bentuk kurva, sampling yang terlalu sering menghasilkan derau dan file yang besar tanpa perlu. | Pilih berdasarkan lamanya peristiwa: pendinginan 10 s, cahaya 0,5 s, gerak 60 ms. Usahakan minimal 20–30 titik selama peristiwa berlangsung. |
| Pengukuran berulang | Satu pembacaan bisa saja kebetulan; pengulangan menunjukkan seberapa andal hasilnya. | Ukur setiap kondisi minimal 3 kali; laporkan rata-ratanya dan selisih antara nilai terbesar dan terkecil (sebaran). |
| Waktu | Dengan stopwatch genggam, waktu reaksi manusia sekitar 0,2 s. | Serahkan pencatatan waktu ke penghitung millis() milik board; gunakan pencatatan waktu manual hanya sebagai pengecekan. |
Alur pelajaran: 2 × 40 menit
Alur di bawah ini cocok untuk ketiga eksperimen. Untuk pertama kali, kami sarankan memberi Eksperimen 1 ke semua kelompok: persiapannya paling sederhana, dan kelompok bisa menyiapkan tabel selagi pengukuran berjalan sendiri. Setelah kelas terbiasa, kamu bisa membagi 6 kelompok menjadi tiga stasiun berisi dua kelompok; karena tiap eksperimen dikerjakan dua kelompok, mereka juga bisa membandingkan hasilnya. Meng-upload kode ke board sebelum pelajaran menghemat 8–10 menit dari pertemuan pertama. Untuk kartu peran dan tata letak stasiun di kelas besar, lihat artikel mengajar Arduino di kelas besar, dan untuk bahan serta tata letak meja, lihat panduan lab Arduino di sekolah.
| Pertemuan dan menit | Guru | Kelompok | Hasil |
|---|---|---|---|
| Pertemuan 1, 0–5 | Membuka pertanyaan dengan pengamatan sehari-hari: “Kenapa teh paling cepat mendingin di menit-menit pertama?” | Menulis pertanyaan di buku catatan, menyampaikan tebakan awal. | Pertanyaan eksperimen |
| Pertemuan 1, 5–12 | Menjelaskan pola hipotesis dan jenis-jenis variabel, membagi peran: pelaksana eksperimen, pencatat waktu dan pemeriksa, penanggung jawab data, pelapor. | Menulis hipotesis dan tabel variabel. | Hipotesis dan tabel variabel |
| Pertemuan 1, 12–20 | Menunjukkan tabel pengkabelan; mungkin sudah meng-upload kode sebelumnya. | Merakit rangkaian, melihat baris header dan nilai pertama di Serial Monitor. | Rangkaian yang berfungsi |
| Pertemuan 1, 20–35 | Berkeliling ke kelompok-kelompok, memeriksa variabel kontrol. | Melakukan pengukuran: 15 menit untuk pendinginan, 7 kondisi × 3 ulangan untuk cahaya, 3 kemiringan × 3 putaran untuk gerak. | Data mentah |
| Pertemuan 1, 35–40 | Mengingatkan siswa soal aturan penamaan file. | Menyalin data, menyimpannya sebagai .csv, menaruhnya di folder bersama. | File CSV |
| Pertemuan 2, 0–10 | Menunjukkan pemisah desimal dan langkah impor di papan tulis. | Mengimpor CSV ke spreadsheet, menambahkan kolom hitungan. | Tabel yang rapi |
| Pertemuan 2, 10–22 | Mengingatkan siswa soal aturan nama sumbu, satuan, dan judul. | Membuat grafik XY, membandingkannya dengan sketsa hipotesis. | Grafik |
| Pertemuan 2, 22–32 | Menanyakan baris mana dari tabel kesalahan yang berlaku untuk eksperimen kelompok. | Menulis kesimpulan dan sumber kesalahan. | Paragraf kesimpulan dan kesalahan |
| Pertemuan 2, 32–37 | Memandu tur grafik. | Menjelaskan grafiknya ke kelompok sebelah dalam 1 menit, menerima satu pertanyaan. | Umpan balik teman sejawat |
| Pertemuan 2, 37–40 | Mengajukan dua pertanyaan penutup di bawah ini. | Menulis jawaban singkat di kertas. | Kartu keluar (exit ticket) |
- Apa variabel bebas dan variabel terikatmu, dan variabel mana yang kamu jaga tetap?
- Di bagian mana grafik perubahannya paling cepat, dan bagaimana kamu bisa tahu dari grafiknya?
- Apakah hipotesismu terbukti? Dua angka mana yang menjadi dasarnya?
- Bagaimana grafikmu akan berubah kalau kamu mengukur setiap 60 detik, bukan setiap 10 detik?
- Apa sumber kesalahan terbesar, dan apa yang akan kamu ubah kalau mengulang eksperimen ini?
Penilaian: templat laporan praktikum singkat
- Judul dan pertanyaan: Nama eksperimen, anggota kelompok, tanggal, dan pertanyaan eksperimen dalam satu kalimat.
- Hipotesis: Dalam pola “Jika … maka …, karena …”, persis seperti yang ditulis sebelum pengukuran; tidak dikoreksi sesudahnya.
- Variabel: Variabel bebas, variabel terikat, dan minimal dua variabel kontrol.
- Bahan dan metode: Sensor, ringkasan pengkabelan, interval sampling, dan jumlah pengulangan; cukup jelas agar kelompok lain bisa mengulang eksperimennya, paling banyak 6 langkah.
- Data: Tabel ringkasan seperti templat, ditambah nama file CSV.
- Grafik: Grafik XY dengan nama sumbu, satuan, dan judul.
- Kesimpulan: Apakah hipotesis terbukti? 2–3 kalimat yang berdasar pada satu atau dua angka.
- Sumber kesalahan dan perbaikan: Minimal dua sumber kesalahan dan apa yang akan kamu ubah kalau mengulang eksperimen. Untuk penilaian, kamu bisa menyesuaikan kriteria dari artikel Rubrik Penilaian Proyek Arduino dengan bagian-bagian ini.
Proyek sensor siap pakai, Pahami kode, dan alat di aplikasi
BlueGrays punya proyek siap pakai lengkap dengan skema rangkaian, daftar komponen, dan kode untuk setiap sensor dalam eksperimen ini; siswa bisa memakainya untuk mengenal sensor sebelum eksperimen. Yang gratis: Mengukur Intensitas Cahaya dengan LDR, Pengukuran Jarak HC-SR04 (Tampilan Serial), dan Suhu dan Kelembapan dengan DHT11; kalau kamu memakai ESP32, Membaca Intensitas Cahaya dengan Modul LDR ESP32, Sensor Jarak Ultrasonik HC-SR04 ESP32, dan Suhu dan Kelembapan DHT22 ESP32 (dengan Layar LCD) juga gratis. Di proyek gratis, blok dan bagian Pahami kode juga terbuka: siswa membaca apa yang dilakukan kode langkah demi langkah, lalu membuat perubahan kecil sendiri di tugas Coba sendiri; cara memakai bagian ini di kelas ada di artikel Pahami kode. Untuk menghitung tegangan pembagi di eksperimen LDR, alat Pembagi tegangan (Premium) bisa dipakai, dan alat gratis Kode warna serta Hukum Ohm membantumu mengecek resistor. Kalau kamu ingin membuka proyek sensor Premium untuk seluruh kelas, seperti Mengukur Suhu dengan NTC dan Layar LCD 2x16 yang menampilkan suhu di LCD, atau Pencatat Data Suhu ESP32 (DHT22 + RTC DS1307 + microSD + OLED) yang menyimpan data ke kartu microSD, untuk itulah ada paket pendidik sekali bayar: siswa mendapat Premium tanpa perlu menambahkan kartu.
Keselamatan: air panas, listrik, dan air di dekatnya
- Air panas: Jangan memakai air mendidih; sekitar 60 °C sudah cukup dan tetap menghasilkan kurva yang jelas. Biarkan guru yang membagikan air, dan letakkan mug di tengah meja, di tempat yang tidak bisa tersangkut kabel. Selama pengukuran, mug tidak dipegang atau dipindahkan.
- Air dan listrik: Hanya ujung logam probe tahan air yang masuk ke air. Jauhkan Arduino, breadboard, dan komputer minimal 30 cm dari air, idealnya di atas nampan terpisah. Kalau air tumpah di meja, cabut kabel USB dulu, baru lap.
- Hanya daya USB: Semua eksperimen ini berjalan dari port USB komputer; tidak ada perangkat bertenaga listrik PLN (ketel listrik, lampu, pemanas) yang boleh dihubungkan ke rangkaian Arduino.
- Pengkabelan: Buat dan ubah sambungan hanya ketika kabel USB dicabut. Kalau ada komponen yang panas atau tercium bau, segera cabut USB.
- Cahaya: Jangan arahkan senter ke mata siapa pun; menatap senter LED yang terang dari dekat membuat mata tidak nyaman.
- Bidang miring: Papan tidak boleh menjorok keluar dari tepi meja, mobil harus dihentikan oleh buku sebelum menabrak sensor, dan buku di bawah papan harus diletakkan agar tidak bisa bergeser.
Satu sensor, output CSV yang rapi, dan pertanyaan yang dirumuskan dengan baik mengubah eksperimen sains dari sekadar mengulang hasil di buku pelajaran menjadi studi pengukuran sungguhan: siswa menggambar grafiknya sendiri, mendiskusikan sumber kesalahannya sendiri, dan mempertahankan kesimpulan dengan angka mereka sendiri. Kalau kamu ingin mengenal sensor dan merakit rangkaian langkah demi langkah di ponselmu sebelum eksperimen, kamu bisa mulai dengan proyek gratis LDR, HC-SR04, dan DHT11 di aplikasi BlueGrays.
Pertanyaan umum
Eksperimen sains apa saja yang bisa dilakukan dengan Arduino?
Besaran apa pun yang bisa diukur sensor bisa menjadi eksperimen: suhu (pendinginan, pemanasan, insulasi), cahaya (jarak, filter berwarna), jarak dan gerak (bidang miring, bandul), kelembapan tanah (eksperimen tanaman), suara, dan tekanan. Untuk memulai, kurva pendinginan, cahaya vs jarak, dan eksperimen bidang miring adalah tiga eksperimen yang paling mudah disiapkan dan memberi hasil paling jelas.
Bagaimana cara memindahkan data Arduino ke Excel?
Cara paling sederhana adalah membuat kode menulis data ke port serial sebagai baris-baris yang dipisah koma, seperti “zaman_ms,deger”. Kamu menyalin baris dari Serial Monitor, menyimpannya sebagai file .csv, lalu mengimpornya di Excel lewat Data > From Text/CSV. Kalau Excel-mu memakai koma sebagai pemisah desimal (seperti pada pengaturan wilayah Indonesia), atur lokal ke English (United States) ketika mengimpor, kalau tidak angkanya terbaca sebagai teks.
Apakah Serial Plotter Arduino menyimpan data?
Tidak, Serial Plotter hanya menampilkan grafik langsung dan tidak menulis data ke file. Untuk menyimpan data, kamu perlu menyalin baris CSV dari Serial Monitor, menuliskannya ke file dengan skrip Python, atau memakai modul kartu SD.
Untuk eksperimen sains, sebaiknya pakai DS18B20 atau DHT11?
Kalau kamu mengukur air atau cairan lain, pakai DS18B20 versi probe tahan air; akurasi ±0,5 °C dan ujung yang bisa masuk ke air membuatnya cocok untuk eksperimen pendinginan. DHT11 mengukur suhu dan kelembapan udara dengan akurasi ±2 °C, tidak boleh dimasukkan ke air, dan responsnya lambat; gunakan hanya untuk eksperimen di udara.
Bagaimana cara mengukur kecepatan suara dengan Arduino?
Cetak waktu gema HC-SR04 dalam mikrodetik dan letakkan selembar karton datar di depan sensor pada beberapa jarak berbeda. Plot jarak pulang-pergi (2 × jarak) terhadap waktu gema; kemiringan garisnya memberi kecepatan suara, yang hasilnya sekitar 340 m/s pada suhu ruangan.
Berapa pertemuan yang dibutuhkan untuk eksperimen sains Arduino?
Dua pertemuan 40 menit cukup untuk satu eksperimen: pertemuan pertama untuk hipotesis, persiapan, dan pengukuran, pertemuan kedua untuk tabel, grafik, kesimpulan, dan laporan. Kalau kode sudah di-upload ke board sebelum pelajaran, waktu untuk mengukur di pertemuan pertama jadi lebih banyak.
Proyek untuk dibuat setelah membaca ini
Lihat semua proyek
Mengukur Intensitas Cahaya dengan LDR
Ingin melihat seberapa terang kamarmu dalam bentuk angka? LDR, komponen kecil yang bereaksi terhadap cahaya, mengukur cahaya di sekitarnya, dan Arduino menulis nilainya ke layar komputermu setiap sete

Pengukuran Jarak HC-SR04 (Tampilan Serial)
Sensor HC-SR04 bekerja persis seperti kelelawar yang mencari jalan dalam gelap: ia mengirim suara yang tidak bisa kamu dengar, mendengarkan pantulannya, dan mengukur seberapa jauh benda di depannya. A

Suhu dan Kelembapan dengan DHT11
Seberapa hangat kamarmu, dan apakah udaranya lembap atau kering? Sensor DHT11 mengukur suhu dan kelembapan, dan Arduino menulis nilainya di layar LCD dua baris, diperbarui setiap beberapa detik. Jika

Membaca Intensitas Cahaya dengan Modul LDR ESP32
Memantau secara real-time di Serial Monitor nilai ADC mentah modul LDR dan persentase cahaya relatif yang dihitung dari nilai acuan gelap dan terang. Persentase ini bukan pengukuran lux. Mengajarkan logika kalibrasi modul. Ideal dikerjakan sebelum Proyek 10, karena dipakai untuk menentukan nilai ambang.

Sensor Jarak Ultrasonik HC-SR04 ESP32
Sensor ultrasonik HC-SR04 menghitung jarak dengan mengukur waktu yang dibutuhkan gelombang suara yang dipancarkannya untuk memantul dari benda lalu kembali (Time of Flight). Di proyek ini, kita mengirim pulsa 10 mikrodetik dari ESP32 ke pin TRIG sensor dan membaca durasi pantulan dari pin ECHO dengan pulseIn(). Jarak hasil hitung ditampilkan dalam sentimeter di LCD I2C 16x2. Karena HC-SR04 bekerja di 5V, pembagi tegangan wajib dipasang di pin ECHO.

Suhu dan Kelembapan DHT22 ESP32 (dengan Layar LCD)
Proyek ini mengukur suhu dan kelembapan sekitar dengan sensor DHT22 dan menampilkan datanya secara real-time di LCD I2C 16x2. Data dibaca dari sensor dengan protokol satu kabel lewat library Adafruit DHT. Proyek ini menjadi dasar untuk stasiun cuaca IoT, otomasi rumah pintar, atau sistem pemantauan lingkungan di rumah kaca. Komunikasi dengan DHT22 dilakukan lewat pin GPIO 4 ESP32.

Mengukur Suhu dengan NTC dan Layar LCD 2x16
Ukur suhu di sekitarmu dengan sensor yang mirip manik-manik kecil. Komponen bernama NTC ini makin mudah dilewati listrik ketika makin hangat; Arduino membaca perubahan itu, mengubahnya menjadi derajat

Pencatat Data Suhu ESP32 (DHT22 + RTC DS1307 + microSD + OLED)
Buat pencatat suhu bercap waktu dengan ESP32! Baca suhu/kelembapan DHT22 setiap menit, ambil waktu sebenarnya dari RTC DS1307, dan catat ke kartu microSD sebagai CSV. OLED menampilkan suhu langsung (font besar), kelembapan, cap waktu, dan penghitung catatan. File /temp_log.csv bisa dibuka di Excel, Google Sheets, atau Python pandas; cocok untuk rumah kaca, suhu kamar, data laboratorium, penyimpanan makanan, atau sarang lebah.
Artikel lainnya
Aplikasi BlueGrays
Rakit rangkaian ini langkah demi langkah di ponselmu
Skema pengkabelan, kode, dan daftar komponen dalam satu layar. 200+ proyek Arduino, ESP32, dan Pico siap dibuat.
Pindai dengan ponselmu
Arahkan kamera ke kode ini dan toko aplikasi di ponselmu akan terbuka.
atau buka toko aplikasi

