Program Arduino untuk LED Berkedip Kode Morse SOS

 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:

Arduino
// 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

  1. 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.

  2. Fungsi Pembantu (dot() dan dash()):

    • Saya membuat dua fungsi baru: dot() dan dash(). Ini membuat kode di dalam loop() menjadi lebih rapi dan mudah dibaca.

    • Fungsi dot() menyalakan LED selama dotDuration, lalu mematikannya dan memberikan jeda interElementPause.

    • Fungsi dash() menyalakan LED selama dashDuration, lalu mematikannya dan memberikan jeda interElementPause.

  3. Logika di loop():

    • Untuk huruf 'S': Panggil dot() tiga kali. Setelah itu, tambahkan delay(letterPause) untuk jeda antar huruf.

    • Untuk huruf 'O': Panggil dash() tiga kali. Setelah itu, tambahkan delay(letterPause).

    • Untuk huruf 'S' (kedua): Panggil dot() tiga kali. Setelah itu, tambahkan delay(wordPause) agar ada jeda yang jelas sebelum pola SOS diulang kembali dari awal.

Cara Menggunakan:

Sama seperti sebelumnya:

  1. Salin kode ini ke Arduino IDE.

  2. Pastikan board dan port Arduino Anda sudah terpilih dengan benar.

  3. 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