Mahir Arduino Sketch dan Elektro secara praktek

06 - Project LED Blinker Advanced - SOS Signal

Dari rangkaian proyek LED Blinker sebelumnya, kita dapat membuat lebih advanced dengan kreatifitas dalam programming. Salah satu contohnya adalah S.O.S  kode morse dengan LED. LED akan menyala lebih lama untuk menunjukkan kode garis, dan menyala lebih sebentar untuk kode titik. (Morse merupakan code dengan garis dan titik, sekiranya saya tidak perlu menjelaskan morse terlalu mendetail, karena saya tidak lulus dari pramuka siaga...hehehe..just kidding)


Sketch S.O.S Morse

// LED connected to digital pin 10
int ledPin = 10;
 

// run once, when the sketch starts
void setup()
{
  // sets the digital pin as output
  pinMode(ledPin, OUTPUT);
}


// run over and over again
void loop()
{
  // 3 dits (3 titik atau huruf S)
  for (int x=0; x<3; x++) {
    digitalWrite(ledPin, HIGH); // sets the LED on
    delay(150); // waits for 150ms
    digitalWrite(ledPin, LOW); // sets the LED off
    delay(100); // waits for 100ms
  }


  // 100ms delay to cause slight gap between letters
  delay(100);


  // 3 dahs (3 garis atau huruf O)
  for (int x=0; x<3; x++) {
    digitalWrite(ledPin, HIGH); // sets the LED on
    delay(400); // waits for 400ms
    digitalWrite(ledPin, LOW); // sets the LED off
    delay(100); // waits for 100ms
  }

  // 100ms delay to cause slight gap between letters
  delay(100);
 

  // 3 dits again (3 titik atau huruf S)
  for (int x=0; x<3; x++) {
    digitalWrite(ledPin, HIGH); // sets the LED on
    delay(150); // waits for 150ms
    digitalWrite(ledPin, LOW); // sets the LED off
    delay(100); // waits for 100ms
  }


  // wait 5 seconds before repeating the SOS signal
  delay(5000);

}



Pembahasan Kode
Untuk fungsi setup, kita hanya mengidentifikasikan pinout dari LED, masih seperti sketch sebelumnya (proyek Led Blinker).

Perubahan cukup banyak, dilakukan pada fungsi loop(). Secara umum, fungsi loop() memiliki logika menyalakan LED dengan kode morse S.O.S secara terus menerus, diantara sinyal SOS diberikan jeda selama 5 detik.

Hal yang baru disini adalah fungsi for(), ini adalah fungsi perulangan. memiliki parameter nilai awal, nilai akhir dan nilai penambahan. Nilai awal untuk menentukan awal loop, nilai akhir untuk mengecek apakah nilai saat ini sudah mencapai nilai akhir, bila belum maka nilai sekarang akan ditambahkan sesuai nilai increment, dan blok kode didalam loop akan dijalankan.

Pada sketch diatas loop akan dilakukan sebanyak 3 kali

for (int x=0; x<3; x++) {
  //blok kode loop
}

For I : x=0, lalu akan dibandingkan, 0 < 3, bila betul maka, nilai x akan ditambah 1, menjadi 1, lalu blok kode didalam for akan dilakukan.

For II : x=1, lalu dibandingkan 1<3, kondisi betul, nilai x ditambah menjadi 2, lalu blok kode didalam for akan dijalankan.

For III : x=2,  lalu dibandingkan 2<3, kondisi betul, nilai x ditambah menjadi 3, lalu blok kode didalam for akan dijalankan.

For III : x=3,  lalu dibandingkan 3<3, kondisi salah, maka program akan melanjutkan kebaris perintah berikutnya, blok for akan dilewati.

Jadi blok for ke-1 akan membuat huruf S, blok for ke-2 membuat huruf O, blok for ke-3 membuat huruf S, lalu delay 5 detik. Mudahkan? Dengan kreatifitas programming, Rangkaian yang sederhana sudah bisa dibuat menjadi sesuatu yang bermanfaat.

Artikel Sebelumnya: Proyek Led Blinker
Artikel Selanjutnya: Proyek Lampu Lalu Lintas

No comments:

Post a Comment