Pada Proyek 6 kita telah membuat LED menyala dan mati secara berulang menggunakan digitalWrite() dan delay().
Sekarang kita akan melakukan eksperimen lebih lanjut dengan mengubah kecepatan kedip LED. Dari percobaan ini kita akan melihat hubungan antara nilai delay(), periode, dan frekuensi kedipan.
Tujuan Percobaan
- Mengubah kecepatan kedip LED melalui program.
- Memahami pengaruh nilai
delay(). - Mengenal konsep periode.
- Mengenal konsep frekuensi.
- Membandingkan hasil perhitungan dengan pengamatan langsung.
Alat dan Bahan
- 1 Arduino Uno atau board yang kompatibel.
- 1 breadboard.
- 1 LED.
- 1 resistor 220 Ω atau 330 Ω.
- Kabel jumper.
- Kabel USB.
Rangkaian
Gunakan rangkaian LED yang sama seperti pada proyek sebelumnya.
Arduino D9
|
330 Ω
|
LED anoda (+)
|
LED katoda (-)
|
Arduino GND
Program Dasar
const int led = 9;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Dengan program tersebut, LED menyala selama 1 detik dan mati selama 1 detik.
Percobaan 1 — Kedip 1 Detik
Gunakan:
delay(1000);
LED akan:
- ON selama 1 detik,
- OFF selama 1 detik.
Satu siklus lengkap membutuhkan:
1 detik + 1 detik = 2 detik
Percobaan 2 — Kedip 0,5 Detik
Ubah kedua nilai delay menjadi:
delay(500);
Program menjadi:
void loop() {
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
}
Sekarang satu siklus memerlukan:
0,5 detik + 0,5 detik = 1 detik
LED terlihat berkedip lebih cepat.
Percobaan 3 — Kedip 0,25 Detik
Ubah nilai menjadi:
delay(250);
Maka:
Waktu ON = 0,25 detik
Waktu OFF = 0,25 detik
Satu siklus:
0,25 + 0,25 = 0,5 detik
Percobaan 4 — Kedip 0,1 Detik
Gunakan:
delay(100);
LED akan menyala dan mati sangat cepat.
Satu siklus:
0,1 detik + 0,1 detik = 0,2 detik
Catat Hasil Pengamatan
| delay() | Waktu ON | Waktu OFF | Periode |
|---|---|---|---|
| 1000 ms | 1 detik | 1 detik | 2 detik |
| 500 ms | 0,5 detik | 0,5 detik | 1 detik |
| 250 ms | 0,25 detik | 0,25 detik | 0,5 detik |
| 100 ms | 0,1 detik | 0,1 detik | 0,2 detik |
Mengenal Periode
Periode adalah waktu yang dibutuhkan untuk menyelesaikan satu siklus penuh.
Dalam percobaan LED kita:
Periode = waktu ON + waktu OFF
Jika LED menyala selama 500 ms dan mati selama 500 ms:
T = 500 ms + 500 ms
T = 1000 ms
T = 1 detik
Mengenal Frekuensi
Frekuensi menunjukkan berapa banyak siklus yang terjadi setiap detik.
Hubungan antara frekuensi dan periode adalah:
f = 1 / T
dengan:
- f = frekuensi dalam Hertz (Hz),
- T = periode dalam detik.
Contoh Perhitungan
Jika periode LED adalah 2 detik:
f = 1 / 2
f = 0,5 Hz
Artinya terdapat setengah siklus setiap detik, atau satu siklus lengkap setiap dua detik.
Jika periode adalah 1 detik:
f = 1 / 1
f = 1 Hz
Jika periode adalah 0,5 detik:
f = 1 / 0,5
f = 2 Hz
Perbandingan Kecepatan Kedip
| delay() | Periode | Frekuensi |
|---|---|---|
| 1000 ms | 2 detik | 0,5 Hz |
| 500 ms | 1 detik | 1 Hz |
| 250 ms | 0,5 detik | 2 Hz |
| 100 ms | 0,2 detik | 5 Hz |
Apa yang Terjadi Jika delay() Semakin Kecil?
Semakin kecil nilai delay(), semakin cepat Arduino mengubah kondisi LED dari HIGH menjadi LOW dan kembali lagi.
delay semakin kecil
↓
periode semakin pendek
↓
frekuensi semakin tinggi
↓
LED berkedip semakin cepat
Percobaan 5 — Kedipan Tidak Simetris
Sampai sekarang waktu ON dan OFF selalu sama.
Coba gunakan:
void loop() {
digitalWrite(led, HIGH);
delay(100);
digitalWrite(led, LOW);
delay(900);
}
LED hanya menyala selama 0,1 detik tetapi mati selama 0,9 detik.
Walaupun satu siklus tetap berlangsung:
0,1 + 0,9 = 1 detik
pola kedipnya terlihat sangat berbeda dibandingkan LED yang ON 500 ms dan OFF 500 ms.
Mengenal Duty Cycle secara Sederhana
Perbandingan antara waktu LED ON terhadap satu periode disebut duty cycle.
Jika:
ON = 500 ms
OFF = 500 ms
maka LED menyala selama setengah dari keseluruhan periode.
Duty Cycle = 50%
Jika:
ON = 100 ms
OFF = 900 ms
maka LED hanya menyala selama 10% dari satu siklus.
Konsep ini nantinya akan sangat penting ketika kita mempelajari PWM atau Pulse Width Modulation.
Percobaan 6 — Cari Batas Mata Kita
Cobalah memperkecil nilai delay secara bertahap:
100 ms
50 ms
20 ms
10 ms
5 ms
Amati pada nilai berapa kedipan LED mulai sulit dilihat sebagai kondisi menyala dan mati yang terpisah.
Pada frekuensi yang cukup tinggi, mata manusia dapat mulai melihat LED seperti menyala terus-menerus.
Fenomena ini nantinya membantu kita memahami mengapa PWM dapat digunakan untuk mengatur terang LED.
Pertanyaan Pengamatan
- Apa yang terjadi ketika nilai
delay()diperkecil? - Apa hubungan antara nilai delay dan periode?
- Apa hubungan antara periode dan frekuensi?
- Berapa frekuensi jika satu periode berlangsung 0,5 detik?
- Apakah LED dengan periode sama selalu mempunyai pola kedip yang sama?
- Apa perbedaan pola 500 ms ON + 500 ms OFF dengan 100 ms ON + 900 ms OFF?
- Mengapa LED terlihat seperti terus menyala ketika kedipannya sangat cepat?
Kesimpulan
Pada Proyek 7 kita tidak hanya mengubah kecepatan kedip LED, tetapi mulai menghubungkan program Arduino dengan konsep waktu dalam elektronika.
Nilai delay() menentukan lamanya kondisi HIGH dan LOW. Dari waktu tersebut kita dapat menentukan periode dan frekuensi sebuah pola kedipan.
Kita juga mulai mengenal duty cycle, yaitu perbandingan antara waktu ON dengan keseluruhan periode.
Konsep periode, frekuensi, dan duty cycle akan terus digunakan pada berbagai pembahasan selanjutnya, termasuk buzzer, PWM, motor, komunikasi digital, sensor, dan sistem kendali.
Proyek berikutnya: 1000 Proyek Arduino : Proyek 8 — Menyalakan Dua LED Secara Bergantian.