Panduan · 14 mnt baca

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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

BahanPer kelompokTotal kelas (6 kelompok)Eksperimen
Arduino Uno + kabel USB16Semua
Komputer (Arduino IDE terinstal)16Semua
Breadboard + 10 kabel jumper male-to-male1 set6 setSemua
Probe DS18B20 tahan air + resistor 4,7 kΩ1 + 16 + 61 Pendinginan
Mug tahan panas (sekitar 250 mL) + gelas ukur1 + 16 + 61 Pendinginan
Air panas (sekitar 60 °C, dibagikan oleh guru)200 mL1,2 L + cadangan1 Pendinginan
LDR + resistor 10 kΩ1 + 16 + 62 Cahaya
Senter LED kecil atau senter ponsel + meteran gulung1 + 16 + 62 Cahaya
Sensor jarak HC-SR04163 Gerak
Papan datar 1–1,5 m, 2–3 buku, mobil mainan + karton 10 × 10 cm1 set6 set3 Gerak
Termometer laboratorium (sebagai pembanding)—1Kalibrasi
EksperimenSensorPengkabelan Arduino UnoKomponen tambahan dan catatan
1 PendinginanProbe DS18B20Merah → 5V, hitam → GND, kuning (DQ) → D2Resistor 4,7 kΩ antara kabel kuning dan 5V; library OneWire dan DallasTemperature
2 CahayaLDRSatu kaki → 5V, kaki lainnya → A0Resistor 10 kΩ antara A0 dan GND (pembagi tegangan); tidak perlu library
3 Gerak dan suaraHC-SR04VCC → 5V, GND → GND, Trig → D9, Echo → D10Tidak ada komponen tambahan; jaga agar kerucut sekitar 15° di depan sensor tetap kosong

Eksperimen 1: Kurva pendinginan air panas (DS18B20)

Probe sensor suhu DS18B20 tahan air dengan ujung baja tahan karat
Ujung logam probe DS18B20 tahan air bisa langsung dimasukkan ke air; dengan kabel merah, hitam, dan kuningnya, probe ini terhubung ke satu pin digital Arduino.

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).

C++ (Arduino IDE)
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)

Sensor cahaya LDR (fotoresistor)
Hambatan LDR turun ketika cahaya bertambah. Dalam pembagi tegangan dengan resistor 10 kΩ, input A0 Arduino mengubah perubahan ini menjadi angka antara 0 dan 1023.

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.

C++ (Arduino IDE)
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 1Pembacaan 2Pembacaan 3Rata-rata mentahHambatan LDR (Ω)
Senter mati—……………
100,0100……………
150,0044……………
200,0025……………
300,0011……………
400,0006……………
500,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?”

LDR bukan alat ukur yang linear, dan dua LDR bisa memberi nilai berbeda pada cahaya yang sama. Jangan melaporkan nilai mentah seolah-olah itu lux, dan jangan membandingkannya langsung antarkelompok; setiap kelompok sebaiknya menggambar kurvanya sendiri dengan LDR-nya sendiri. Hukum kuadrat terbalik juga hanya berlaku untuk sumber kecil (titik) dan pada jarak yang jauh lebih besar daripada ukuran sumbernya: jangan mengukur dari 5 cm dengan lampu meja yang lebar, gunakan senter LED kecil mulai 10 cm ke atas.

Eksperimen 3: Gerak di bidang miring dan kecepatan suara (HC-SR04)

Sensor jarak ultrasonik HC-SR04
HC-SR04 memancarkan pulsa suara dan mengukur berapa lama gemanya kembali. Dengan sekitar 16 pembacaan per detik, kamu bisa membuat grafik posisi-waktu dari benda yang mendekat.

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.

C++ (Arduino IDE)
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}
KolomHeaderIsi atau rumusApa yang ditunjukkan
Azaman_ms (waktu)Dari CSVWaktu sejak awal putaran
Bmesafe_cm (jarak)Dari CSVJarak mobil dari sensor
Czaman_s (waktu)=A2/1000Sumbu horizontal grafik
Dyol_cm (jarak tempuh)=B$2-B2Jarak tempuh dari titik pelepasan
Ehiz_cm_s (kecepatan)=(D7-D2)/(C7-C2), mulai di E7Kecepatan rata-rata selama sekitar 0,3 s
Fkosul (kondisi)1, 2, atau 3 bukuPutaran 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

  1. 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.
  2. 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).
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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

TopikYang perlu diketahuiYang 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.
LDRTidak 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-SR042–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 samplingSampling 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 berulangSatu 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).
WaktuDengan 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 menitGuruKelompokHasil
Pertemuan 1, 0–5Membuka 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–12Menjelaskan 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–20Menunjukkan 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–35Berkeliling 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–40Mengingatkan siswa soal aturan penamaan file.Menyalin data, menyimpannya sebagai .csv, menaruhnya di folder bersama.File CSV
Pertemuan 2, 0–10Menunjukkan pemisah desimal dan langkah impor di papan tulis.Mengimpor CSV ke spreadsheet, menambahkan kolom hitungan.Tabel yang rapi
Pertemuan 2, 10–22Mengingatkan siswa soal aturan nama sumbu, satuan, dan judul.Membuat grafik XY, membandingkannya dengan sketsa hipotesis.Grafik
Pertemuan 2, 22–32Menanyakan baris mana dari tabel kesalahan yang berlaku untuk eksperimen kelompok.Menulis kesimpulan dan sumber kesalahan.Paragraf kesimpulan dan kesalahan
Pertemuan 2, 32–37Memandu tur grafik.Menjelaskan grafiknya ke kelompok sebelah dalam 1 menit, menerima satu pertanyaan.Umpan balik teman sejawat
Pertemuan 2, 37–40Mengajukan 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.

Lihat semua proyek
Mengukur Intensitas Cahaya dengan LDR
#11Pemula

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

4.6(81)
139
Pengukuran Jarak HC-SR04 (Tampilan Serial)
#27Pemula

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

4.6(46)
71
Suhu dan Kelembapan dengan DHT11
#55Menengah

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

4.7(47)
73
Membaca Intensitas Cahaya dengan Modul LDR ESP32
#113Pemula

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.

4.6(36)
55
Sensor Jarak Ultrasonik HC-SR04 ESP32
#116Menengah

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.

4.9(28)
45
Suhu dan Kelembapan DHT22 ESP32 (dengan Layar LCD)
#117Menengah

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.

4.8(38)
56
Mengukur Suhu dengan NTC dan Layar LCD 2x16
#44Pemula
Premium

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

4.5(33)
44
Pencatat Data Suhu ESP32 (DHT22 + RTC DS1307 + microSD + OLED)
#144Mahir
Premium

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.

4.7(7)
12