memodifikasi programnya agar LED berkedip mengikuti pola kode Morse SOS. Kode Morse SOS adalah ... --- ...
yang berarti:
Tiga titik (pendek)
Tiga garis (panjang)
Tiga titik (pendek)
Kita akan mendefinisikan durasi untuk "titik" dan "garis", serta durasi jeda di antaranya.
Berikut adalah kode yang dimodifikasi:
// Mendefinisikan pin tempat LED terhubung
const int ledPin = 13; // Pin LED bawaan pada Arduino
// Mendefinisikan durasi untuk kode Morse
const int dotDuration = 100; // Durasi "titik" (100 milidetik)
const int dashDuration = dotDuration * 3; // Durasi "garis" adalah 3x "titik"
const int interElementPause = dotDuration; // Jeda antar elemen (titik/garis)
const int letterPause = dotDuration * 3; // Jeda antar huruf (SOS adalah satu "kata")
const int wordPause = dotDuration * 7; // Jeda antar kata (jika SOS diulang)
// Fungsi untuk menyalakan LED (titik)
void dot() {
digitalWrite(ledPin, HIGH);
delay(dotDuration);
digitalWrite(ledPin, LOW);
delay(interElementPause);
}
// Fungsi untuk menyalakan LED (garis)
void dash() {
digitalWrite(ledPin, HIGH);
delay(dashDuration);
digitalWrite(ledPin, LOW);
delay(interElementPause);
}
// Fungsi setup() berjalan satu kali saat Anda menekan reset atau menyalakan board
void setup() {
// Mengatur pin LED sebagai output
pinMode(ledPin, OUTPUT);
}
// Fungsi loop() berjalan berulang kali selamanya
void loop() {
// S ( ... )
dot();
dot();
dot();
delay(letterPause); // Jeda setelah huruf 'S'
// O ( --- )
dash();
dash();
dash();
delay(letterPause); // Jeda setelah huruf 'O'
// S ( ... )
dot();
dot();
dot();
delay(wordPause); // Jeda setelah seluruh kata "SOS" sebelum mengulang
}
Penjelasan Perubahan
Definisi Durasi:
dotDuration
: Ini adalah durasi dasar untuk "titik" (misalnya, 100 milidetik).dashDuration
: Durasi "garis" biasanya tiga kali durasi "titik".interElementPause
: Jeda singkat antara titik atau garis dalam satu huruf (misalnya, antara dua titik pada 'S').letterPause
: Jeda yang lebih panjang antara huruf-huruf (misalnya, antara 'S' dan 'O'). Ini biasanya tiga kali durasi titik.wordPause
: Jeda terpanjang setelah seluruh kode Morse (misalnya, setelah 'SOS' sebelum mengulang). Ini biasanya tujuh kali durasi titik.
Fungsi Pembantu (
dot()
dandash()
):Saya membuat dua fungsi baru:
dot()
dandash()
. Ini membuat kode di dalamloop()
menjadi lebih rapi dan mudah dibaca.Fungsi
dot()
menyalakan LED selamadotDuration
, lalu mematikannya dan memberikan jedainterElementPause
.Fungsi
dash()
menyalakan LED selamadashDuration
, lalu mematikannya dan memberikan jedainterElementPause
.
Logika di
loop()
:Untuk huruf 'S': Panggil
dot()
tiga kali. Setelah itu, tambahkandelay(letterPause)
untuk jeda antar huruf.Untuk huruf 'O': Panggil
dash()
tiga kali. Setelah itu, tambahkandelay(letterPause)
.Untuk huruf 'S' (kedua): Panggil
dot()
tiga kali. Setelah itu, tambahkandelay(wordPause)
agar ada jeda yang jelas sebelum pola SOS diulang kembali dari awal.
Cara Menggunakan:
Sama seperti sebelumnya:
Salin kode ini ke Arduino IDE.
Pastikan board dan port Arduino Anda sudah terpilih dengan benar.
Unggah program ke Arduino Anda.
Anda akan melihat LED berkedip dalam pola ... --- ...
secara berulang. Anda bisa eksperimen dengan mengubah nilai dotDuration
untuk mempercepat atau memperlambat kedipan kode Morse tersebut.
Komentar
Posting Komentar