Langsung ke isi
Stasiun 3 · MikrokontrolerSerial monitor dan debugging

Materi 10 dari 12 · Stasiun 3

Serial monitor dan debugging

20 menit7 kartuDraf AI · belum direview

Setelah materi ini, kamu bisa:

  • Bisa memakai Serial.begin dan Serial.println untuk melihat isi variabel saat program berjalan.
  • Bisa memperbaiki tampilan Serial Monitor yang berisi karakter aneh (baud rate tidak cocok).
  • Bisa mencari kesalahan logika dengan mencetak nilai di titik-titik penting.

Sebaiknya sudah belajar:

Program yang tidak error, tapi salah

Programmu berhasil diunggah tanpa pesan error. Tapi kipas tidak pernah menyala walau suhunya panas. Papan tidak punya layar. Bagaimana tahu apa yang terjadi di dalamnya?

Caranya, minta program "berbicara". Lewat kabel USB, papan bisa mengirim teks ke komputermu, dan teks itu terbaca di Serial Monitor.

Dasar Serial

Di Arduino IDE, Serial Monitor ada di menu Tools. Ada juga Serial Plotter yang menggambar angka sebagai grafik.

void setup() {
  Serial.begin(115200);
  Serial.println("Mulai");
}
void loop() {
  int adc = analogRead(34);
  Serial.print("adc = ");
  Serial.println(adc);
  delay(500);
}
  • Baris 2: Mulai komunikasi dengan kecepatan 115200 baud (baud adalah satuan kecepatan kirim data). Serial Monitor harus diatur ke angka yang sama.
  • Baris 7: print mencetak tanpa pindah baris. println mencetak lalu pindah baris.
  • Baris 9: Beri jeda. Tanpa jeda, ribuan baris per detik membanjiri layar.

Tebak dulu

  1. Serial Monitor menampilkan "⸮⸮x⸮⸮" bukan teks. Penyebab paling mungkin?
    • Papan rusak
    • Kecepatan baud di Serial Monitor tidak sama dengan Serial.begin
    • Kabel USB terbalik
    Jawaban

    Kecepatan baud di Serial Monitor tidak sama dengan Serial.begin. Kedua sisi harus memakai kecepatan yang sama. Samakan, misalnya 115200 di keduanya.

Cari kesalahannya

Program ini seharusnya menyalakan kipas saat suhu di atas 30 °C. Jalankan pelan-pelan dan baca keluarannya. Di baris mana kesalahannya? Kartu terbuka setelah program selesai.

Simulasi interaktif tersedia saat JavaScript aktif.

Kesalahannya di baris 2, pembagian bilangan bulat (lihat Pemrograman: variabel dan urutan perintah). Perbaikannya, float suhu = adc * 100.0 / 4095;. Tanpa println di baris 3, kesalahan ini sangat sulit ditemukan.

Cara mencari kesalahan

Ketuk semuanya.

Cetak masukan
Apakah sensor terbaca benar? Cetak nilai mentahnya dulu.
Cetak hasil antara
Cetak setiap tahap konversi (adc, volt, suhu). Kesalahan ada di tahap pertama yang angkanya aneh.
Cetak keputusan
Cetak pesan di dalam if. Kalau pesannya tidak pernah muncul, kondisinya tidak pernah benar.
Ubah satu hal setiap kali
Kalau mengubah banyak hal sekaligus, kamu tidak tahu mana yang memperbaiki atau merusak.
Beri label
Serial.print("suhu = ") sebelum angkanya. Deretan angka tanpa label cepat membingungkan.

Benar atau salah?

  1. "Program yang berhasil diunggah tanpa error pasti benar."
    • Benar
    • Salah
    Jawaban

    Salah. Compiler (program yang menerjemahkan kodemu untuk chip) hanya memeriksa tata bahasa. Kesalahan logika seperti pembagian bulat atau = yang seharusnya == lolos tanpa peringatan.

  2. "Serial.println bisa dipakai saat papan tidak tersambung ke komputer."
    • Benar
    • Salah
    Jawaban

    Benar. Program tetap berjalan, teksnya hanya tidak dibaca siapa pun. Tidak merusak, tapi memakan sedikit waktu.

Selesai

  • Serial.begin(115200) di setup, Serial.println untuk mencetak. Samakan baud rate.
  • Cetak masukan, hasil antara, dan keputusan untuk melacak kesalahan.
  • Tidak ada error bukan berarti benar.

Pancingan

Sensor analog butuh konversi dan kalibrasi. Ada sensor yang langsung mengirim angka suhu matang lewat dua kabel. Itu I2C: sensor digital (lanjutan). Atau langsung rakit pengendali suhu di materi Proyek: pengendali suhu mandiri.

Berikutnya

Referensi
  • Arduino Language Reference, Serial (begin, print, println).
  • Dokumentasi Arduino IDE, Serial Monitor dan Serial Plotter.

Draf AI. Belum direview manusia.

Kode materi p9 · versi 0.1 · 2026-10-06