139 lines
2.9 KiB
Markdown
139 lines
2.9 KiB
Markdown
---LESSON_INFO---
|
|
Pelajaran Arduino: Komunikasi Serial Monitor dan debugging.
|
|
|
|
**Learning Objectives:**
|
|
- Memahami fungsi `Serial.begin()` dan baud rate
|
|
- Menggunakan `Serial.println()` dan `Serial.print()` untuk mengirim data
|
|
- Membedakan `println` (dengan newline) dan `print` (tanpa newline)
|
|
- Menggunakan `millis()` untuk tracking waktu
|
|
|
|
**Prerequisites:**
|
|
- Hello, World!
|
|
---END_LESSON_INFO---
|
|
|
|
# Hello Serial — Komunikasi Serial Arduino
|
|
|
|
Serial Monitor adalah **alat debugging utama** saat bekerja dengan Arduino.
|
|
Dengan Serial Monitor, kamu bisa mengirim teks dari Arduino ke komputer
|
|
untuk memantau apa yang sedang terjadi dalam program.
|
|
|
|
## Apa itu Komunikasi Serial?
|
|
|
|
Arduino berkomunikasi dengan komputer melalui **port serial** (USB).
|
|
Data dikirim bit-per-bit dengan kecepatan tertentu yang disebut **baud rate**.
|
|
|
|
```
|
|
Arduino ──USB──► Komputer (Serial Monitor)
|
|
TX/RX
|
|
```
|
|
|
|
## Fungsi Serial Dasar
|
|
|
|
### 1. `Serial.begin(baud_rate)`
|
|
Memulai komunikasi serial. Harus dipanggil di `setup()`:
|
|
|
|
```
|
|
Serial.begin(9600); // Baud rate 9600 (paling umum)
|
|
```
|
|
|
|
### 2. `Serial.println(data)`
|
|
Mengirim data + **newline** (`\n`) di akhir:
|
|
|
|
```
|
|
Serial.println("Hello"); // output: Hello↵
|
|
Serial.println("World"); // output: World↵
|
|
```
|
|
|
|
### 3. `Serial.print(data)`
|
|
Mengirim data **tanpa newline**:
|
|
|
|
```
|
|
Serial.print("Suhu: "); // output: Suhu:
|
|
Serial.println("25 C"); // output: 25 C↵
|
|
```
|
|
|
|
Hasil gabungan: `Suhu: 25 C`
|
|
|
|
### 4. `millis()`
|
|
Mengembalikan jumlah milidetik sejak Arduino dinyalakan:
|
|
|
|
```
|
|
unsigned long waktu = millis();
|
|
Serial.print("Waktu: ");
|
|
Serial.print(waktu / 1000);
|
|
Serial.println(" detik");
|
|
```
|
|
|
|
## Contoh Program
|
|
|
|
```
|
|
void setup() {
|
|
Serial.begin(9600);
|
|
Serial.println("Arduino Ready!");
|
|
Serial.println("Serial Monitor aktif");
|
|
}
|
|
|
|
void loop() {
|
|
Serial.print("Uptime: ");
|
|
Serial.print(millis() / 1000);
|
|
Serial.println(" detik");
|
|
delay(2000);
|
|
}
|
|
```
|
|
|
|
---EXERCISE---
|
|
### Tantangan
|
|
|
|
**Tulis program Arduino** yang melakukan hal berikut saat dinyalakan (`setup`):
|
|
|
|
1. Mulai komunikasi serial dengan baud rate `9600`
|
|
2. Cetak teks `Hello Arduino` (dengan newline)
|
|
3. Cetak teks `Serial Ready` (dengan newline)
|
|
|
|
Kemudian di `loop()`:
|
|
4. Cetak `Tick` setiap 1 detik
|
|
|
|
Setelah selesai menulis kode, tekan **Compile & Run** dan tunggu beberapa detik agar Serial output muncul.
|
|
|
|
> **Tips:** Lesson ini tidak memerlukan wiring — cukup tulis kode saja!
|
|
---
|
|
|
|
---INITIAL_CODE_ARDUINO---
|
|
// Hello Serial - Belajar Serial Monitor
|
|
// Kirim pesan ke Serial Monitor
|
|
|
|
void setup() {
|
|
// 1. Mulai serial dengan baud rate 9600
|
|
|
|
// 2. Cetak "Hello Arduino"
|
|
|
|
// 3. Cetak "Serial Ready"
|
|
|
|
}
|
|
|
|
void loop() {
|
|
// 4. Cetak "Tick" setiap 1 detik
|
|
|
|
}
|
|
---END_INITIAL_CODE_ARDUINO---
|
|
|
|
---VELXIO_CIRCUIT---
|
|
{
|
|
"board": "arduino:avr:uno",
|
|
"components": [],
|
|
"wires": []
|
|
}
|
|
---END_VELXIO_CIRCUIT---
|
|
|
|
---EXPECTED_SERIAL_OUTPUT---
|
|
Hello Arduino
|
|
Serial Ready
|
|
Tick
|
|
---END_EXPECTED_SERIAL_OUTPUT---
|
|
|
|
---KEY_TEXT---
|
|
Serial.begin
|
|
Serial.println
|
|
delay
|
|
---END_KEY_TEXT---
|