0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan3 halaman

Merancang Program DJ Controller Arduino

Dokumen ini menjelaskan cara merancang program kendali untuk sistem 'Smart DJ' menggunakan Arduino. Program ini melibatkan input dari tombol dan potensiometer serta output ke LED dan buzzer, dengan logika yang mengatur fungsi berdasarkan status tombol. Terdapat juga penjelasan tentang perencanaan variabel, penulisan kode, dan pentingnya delay untuk kestabilan pembacaan sensor.

Diunggah oleh

Siti Nurhayati
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan3 halaman

Merancang Program DJ Controller Arduino

Dokumen ini menjelaskan cara merancang program kendali untuk sistem 'Smart DJ' menggunakan Arduino. Program ini melibatkan input dari tombol dan potensiometer serta output ke LED dan buzzer, dengan logika yang mengatur fungsi berdasarkan status tombol. Terdapat juga penjelasan tentang perencanaan variabel, penulisan kode, dan pentingnya delay untuk kestabilan pembacaan sensor.

Diunggah oleh

Siti Nurhayati
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

LKPD 04: MERANCANG PROGRAM KENDALI (DJ CONTROLLER)

A. SKENARIO (Misi)
Kamu harus membuat program untuk sistem "Smart DJ".
1. Input: Ada Tombol (Pin 2) dan Potensiometer (Pin A0).
2. Output: Ada LED (Pin 9) dan Buzzer (Pin 8).
3. Logika:
○ Sistem hanya menyala jika Tombol Ditekan.
○ Jika tombol ditekan, putaran Potensiometer akan mengatur terang-redup LED dan tinggi-rendah
nada Buzzer.
○ Jika tombol dilepas, semua mati.

B. TAHAP 1: PERENCANAAN VARIABEL & TIPE DATA

Sebelum menulis kode, tentukan dulu nama panggilan (Variabel) dan jenis datanya untuk setiap
komponen.

Tips:
● Gunakan const int untuk angka pin yang tidak akan berubah.
● Gunakan int untuk nilai sensor yang bisa berubah-ubah.
● Penting: Nama variabel bebas (contoh: lampu, ledPin, tombol), tapi harus konsisten dipakai di seluruh
kode!

C. TAHAP 2: PENULISAN KODE (CODING)


Salinlah struktur di bawah ini ke Arduino IDE. Isilah bagian kosong ( _______ ) menggunakan Nama Variabel
yang sudah kamu buat di tabel atas, serta tentukan Logika dan Mode Pin yang tepat.
Komponen Pin Tipe Data (const int / Nama Variabel (Tentukan
int) Sendiri!)

LED 9 ____________________ ____________________

Buzzer 8 ____________________ ____________________

Tombol 2 ____________________ ____________________

Potensio A0 ____________________ ____________________

// --- 1. DEKLARASI VARIABEL (Gunakan Tabel B) --- statusTombol = digitalRead(_______);

_______ _______ = 9; // Variabel untuk LED // Baca nilai analog potensiometer (0 s/d 1023)
_______ _______ = 8; // Variabel untuk Buzzer nilaiPotensio = analogRead(_______);
_______ _______ = 2; // Variabel untuk Tombol
_______ _______ = A0; // Variabel untuk Potensio // C. PENGAMBILAN KEPUTUSAN (Logic If-Else)
// Ingat: Karena pakai INPUT_PULLUP, tombol
void setup() { DITEKAN nilainya adalah LOW.
// --- 2. SETUP (Menentukan Siapa Input & Siapa
Output) --- if (statusTombol == _______) {
// --- JIKA TOMBOL DITEKAN (SISTEM NYALA) ---
// LED dan Buzzer adalah komponen yang
DIKENDALIKAN // 1. Logika Mapping: Ubah rentang 0-1023 menjadi
pinMode(_______, _______); // Atur Variabel LED 0-255 (untuk LED)
sebagai OUTPUT int levelCahaya = map(nilaiPotensio, 0, 1023, 0, 255);
pinMode(_______, _______); // Atur Variabel Buzzer
sebagai OUTPUT // 2. Logika Mapping: Ubah rentang 0-1023 menjadi
100-1000 (untuk Buzzer)
// Tombol adalah PENGENDALI (Gunakan Resistor int nadaSuara = map(nilaiPotensio, 0, 1023, 100, 1000);
Internal)
pinMode(_______, _______); // 3. Eksekusi ke Hardware
analogWrite(_______, levelCahaya); // Nyalakan
// (Opsional) Potensiometer tidak perlu pinMode di LED (PWM)
setup karena Analog Input tone(_______, nadaSuara); // Bunyikan Buzzer
}
} else {
void loop() { // --- JIKA TOMBOL DILEPAS (SISTEM MATI) ---
// --- 3. LOGIKA UTAMA (Looping) ---
digitalWrite(_______, LOW); // Matikan LED
// A. Siapkan wadah (int) untuk menyimpan hasil noTone(_______); // Matikan Buzzer
bacaan }
int statusTombol = 0;
int nilaiPotensio = 0; // D. DELAY (Untuk kestabilan pembacaan)
delay(_______);
// B. BACA SENSOR (Input) }
// Baca status digital tombol (0 atau 1)

D. EKSPLORASI MANDIRI (Critical Thinking)


Variabel: Mengapa untuk nomor Pin (seperti 9, 8, 2) kita disarankan menggunakan const int sedangkan untuk
statusTombol kita menggunakan int biasa?
○ Jawaban: ____________________________________________________
1. Logika: Jika kamu lupa menulis baris delay(10); atau delay-nya dihapus, apakah alat masih berfungsi?
Mengapa delay kecil itu penting?
○ Jawaban: ____________________________________________________
Kunci Jawaban (Untuk Guru) 🗝️
Bagian B (Tabel):
● Tipe Data Pin: const int (karena nomor pin tidak berubah selamanya).
● Nama Variabel: (Bebas, misal: led, buzzer, btn, pot).

Bagian C (Kode):
● Deklarasi:
○ const int [nama_led] = 9;
○ const int [nama_buzzer] = 8;
○ const int [nama_tombol] = 2;
○ const int [nama_pot] = A0;
● Setup:
○ pinMode([nama_led], OUTPUT);
○ pinMode([nama_buzzer], OUTPUT);
○ pinMode([nama_tombol], INPUT_PULLUP);
● Loop:
○ digitalRead([nama_tombol]);
○ analogRead([nama_pot]);
○ if (statusTombol == LOW)
○ analogWrite([nama_led], levelCahaya);
○ tone([nama_buzzer], nadaSuara);
○ digitalWrite([nama_led], LOW);
○ noTone([nama_buzzer]);
○ delay(10); (atau angka kecil lainnya misal 50).

Bagian D (Analisis):
1. const int (Constant Integer) mengunci nilai agar tidak bisa diubah secara tidak sengaja oleh program di
tengah jalan, dan menghemat memori. int biasa dipakai untuk nilai yang dinamis/berubah-ubah seperti
hasil bacaan sensor.
2. Alat tetap berfungsi, tetapi pembacaan sensor mungkin menjadi sangat sensitif atau bergetar (jitter).
Delay kecil memberikan waktu "napas" bagi prosesor Arduino agar pembacaan lebih stabil (debouncing
sederhana).

Anda mungkin juga menyukai