CARA MEMBUAT CUSTOM LOVE PADA LCD 16X2 DENGAN ARDUINO

Penjelasan Singkat:
Hai sobat semua, Disini kita akan mencoba membuat gambar Love atau saya sebut Custom Love yang hasilnya akan kita  tampilkan pada sebuah layar LCD 16x2. Dikatakan Custom Love karena di sini kita yang membuat bentuk Love yang kita inginkan. Disini saya menggunakan LCD Modul 16x2 Blue Backlight HD447 dengan tambahan modul I2C/TWI. LCD tersebut  dapat menyimpan 8 buat slot design yang bisa kita buat sendiri. Hasil dari penggabungan dari 8 buat slot tersebut akan membentuk dan menampilkan sebuah gambar Love pada layar LCD yang kita gunakan.  Tiap slot akan terdiri dari 5 kolom dan 8 baris kotak. Tujuan dari artikel ini adalah agar sobat bisa membuat sendiri custom gambar ataupun bentuk lainnya sesuai dengan yang sobat inginkan. Selanjutnya sobat bisa perhatikan gambar di bawah ini


Dari gambar di atas kita akan membagi gambar menjadi 8 buah slot, yang tiap slot nya akan kita ubah menjadi bilangan biner (0 & 1), agar bisa di mengerti oleh program arduino. Selanjutnya untuk mengubah gambar pola ke dalam bilangan biner kita akan mengikuti ketentuan dimana kotak berwarna putih akan kita beri nilai 0 dan kotak yang berwarna merah akan kita beri nilai 1. Dan setiap slot akan terdiri dari 5 kolom dan 8 baris kotak. Sobat bisa ikuti langkah-langkah dibawah ini.
               
                        
 Slot 1: {B00000, B00000, B00000, B00000, B00111, B01111, B11111, B11111}
 Slot 2: {B00000, B00000, B00000, B00000, B00000, B10001, B11011, B11111}


                 
 Slot 3: {B00011, B00111, B01111, B11111, B11111, B11111, B11111, B11111}
 Slot 4: {B11000, B11100, B11110, B11111, B11111, B11111, B11111, B11110}

  Slot 5: {B11111, B01111, B00111, B00011, B00001, B00000, B00000, B00000}
  Slot 6: {B11111, B11111, B11111, B11111, B11111, B01111, B00001, B00000}


                         

  Slot 7: {B11111, B11111, B11111, B11110, B11100, B11100, B11100, B00010}
  Slot 8: {B11110, B11100, B10000, B00000, B00000, B00000, B00000, B00000}

Setelah setiap slot kita ubah ke bilangan biner maka selanjutnya nilai biner tersebut dapat kita masukkan ke dalam sketch arduino kita, perhatikan sketch arduino berikut ini:

Sketch Arduino:
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

#define I2C_ADDR    0x27   //Masukkan sesuai alamat LCD 16x2.
#define BACKLIGHT_PIN     3
#define En_pin  2
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7

LiquidCrystal_I2C  lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

//---------------------------- Tampung setiap slot ke dalam variable ----------------------
byte slot1[8]   = {B00000, B00000, B00000, B00000, B00111, B01111, B11111, B11111};
byte slot2[8]   = {B00000, B00000, B00000, B00000, B00000, B10001, B11011, B11111};
byte slot3[8]   = {B00011, B00111, B01111, B11111, B11111, B11111, B11111, B11111};
byte slot4[8]   = {B11000, B11100, B11110, B11111, B11111, B11111, B11111, B11110};
byte slot5[8]   = {B11111, B01111, B00111, B00011, B00001, B00000, B00000, B00000};
byte slot6[8]   = {B11111, B11111, B11111, B11111, B11111, B01111, B00001, B00000};
byte slot7[8]   = {B11111, B11111, B11111, B11110, B11100, B11100, B11100, B00010};
byte slot8[8]   = {B11110, B11100, B10000, B00000, B00000, B00000, B00000, B00000};

void setup() {
  //Konfigurasi LCD 16x2
  lcd.begin(16, 2);
  lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
  lcd.setBacklight (HIGH);

//------------------------------------- Bentuk char untuk tiap slot -----------------------------
  lcd.createChar(1, slot1);
  lcd.createChar(2, slot2);
  lcd.createChar(3, slot3);
  lcd.createChar(4, slot4);
  lcd.createChar(5, slot5);
  lcd.createChar(6, slot6);
  lcd.createChar(7, slot7);
  lcd.createChar(8, slot8);
}

//-------------------------------------------- Bentuk Love -----------------------------------------
  void love(int x) {                     //Nilai x berfungsi untuk menentukan posisi love
    lcd.setCursor(x,0);
    lcd.write(1);
    lcd.write(2);
    lcd.write(3);
    lcd.write(4);
    lcd.setCursor(x,1);
    lcd.write(5);
    lcd.write(6);
    lcd.write(7);
    lcd.write(8);
}

void loop() {
   love (0);                              //Tampilkan love pada kolom pertama
}
Hasil dari program yang kita buat diatas adalah sebuah gambar love yang dapat tampil di Layar LCD 16x2 yang kita gunakan. Setelah sobat paham cara membentuk sebuah custom gambar, maka sobat bisa mengembangkannya lagi dengan membuat sebuah Custom Font [Huruf] maupun gambar smiley pada LCD sesuai dengan kreativitas sobat masing-masing.

Kesimpulan: Dari langkah-langkah di atas sobat pastinya sudah bisa membayangkan bahwa untuk membentuk suatu karakter atau gambar pada LCD, maka yang dilakukan oleh program adalah menyalakan tiap kotak [Pixel] pada layar, yang mana akan membentuk karakter atau gambar yang kita inginkan dengan memberikan nilai 1 [HIGH] pada pixel tersebut.


Terimakasih
Sobat Arduino

CARA MENAMPILKAN TEXT PADA LCD 16X2 & I2C (ARDUINO UNO)

Penjelasan Singkat:
Hai sobat semua, kali ini kita akan bermain dengan Shield LCD 16x2 dengan menampilkan tulisan yang ingin kita inginkan dengan menggunakan Arduino UNO R3. Tujuan perancangan kali ini adalah agar sobat dapat dengan mudah merangkai dan memprogram arduino yang terhubung ke sebuah LCD 16x2 dan mengetahui cara kerja rangkaian dan program yang dibuat sehingga sobat bisa membuat tulisan apapun yang sobat inginkan. Disini kita menggunakan sebuah LCD 16x2 yang telah dipasang rangkaian I2C agar pengkabelan dari LCD ke Arduino menjadi lebih sedikit. Sobat bisa baca cara menghubungkan rangkaian I2C ke LCD 16x2 di sini. Selanjutnya sobat bisa merangkai sesuai dengan gambar rangkaian di bawah ini. 


Gambar Rangkaian:


Cara Kerja Rangkaian:
Ketika rangkaian di nyalakan, arduino akan mengirimkan pesan berupa text atau angka yang telah kita buat pada sketch arduino  ke LCD melalui pin A6 dan A5 Arduino menuju pin SDA dan SCL pada LCD. Pin VCC pada LCD dihubungkan ke Pin 5V arduino untuk mencatu tegangan LCD sebesar 5V.
Berikut kita akan membuat program yang akan memunculkan tulisan "HELLO SOBAT" pada baris tengah atas arduino dan "ARDUINO MEDAN123" pada baris bawah tengah LCD. Sobat bisa perhatikan sketch arduino yang akan kita buat di bawah ini.

Sketch Arduino
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

#define I2C_ADDR    0x27                  // Alamat LCD 16x2 yang digunakan.
#define BACKLIGHT_PIN     3
#define En_pin  2
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7

LiquidCrystal_I2C  lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

void setup() {
      lcd.begin (16,2);
      lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);

      lcd.setBacklight(HIGH);
      lcd.setCursor(2,0);
}

void loop() {
      lcd.setCursor(2,0);
      lcd.print("HELLO SOBAT");
      delay(1000);
      lcd.setCursor(0,1);
      lcd.print("ARDUINO MEDAN123");
      delay(5000);
      lcd.clear();
      delay(1000);
}

Program di atas akan menampilkan tulisan "HELLO SOBAT" dimulai pada baris pertama dan kolom ketiga dan menampilkan tulisan "ARDUINO MEDAN123" pada baris kedua dan kolom pertama. Untuk lebih jelasnya sobat bisa perhatikan fungsi perintah tiap-tiap potongan program di atas.

Penjelasan Potongan Program
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
Pada program ini kita akan menambahkan 3 buah library yaitu Wire.h , LCD.h dan LiquidCrystal_I2C.h.


#define I2C_ADDR    0x27                  // Sesuai Alamat LCD 16x2 yang sobat gunakan.
#define BACKLIGHT_PIN     3
#define En_pin  2
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7

LiquidCrystal_I2C  lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
Baris program diatas berfungsi untuk mendefinisikan tiap pin pada LCD 16x2 yang kita gunakan.


void setup() {
      lcd.begin (16,2);
      lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
      lcd.setBacklight(HIGH);
      lcd.setCursor(2,0);
}
Baris program diatas berfungsi untuk konfigurasi pin pada LCD 16x2 yang kita gunakan.


void loop() {
      lcd.setCursor(2,0);
      lcd.print("HELLO SOBAT");
      delay(1000);
      lcd.setCursor(0,1);
      lcd.print("ARDUINO MEDAN123");
      delay(5000);
      lcd.clear();
      delay(1000);
}
Disini kita akan bahas fungsi setiap baris program:
 lcd.setCursor(2,0); & lcd.print("HELLO SOBAT"); Berfungsi untuk menampilkan tulisan
"HELLO SOBAT" pada kolom 3 dan baris pertama pada LCD. Perlu di ingat bahwa pengalamatan kolom pada LCD 16x2 dimulai dengan kolom 0 dan baris 0, dimana kolom 0 berarti kolom pertama  dan baris 0 berarti baris pertama pada LCD.
---------------------------------------------------------------------------------------------------------------------------------------
delay(1000); Perintah ini berfungsi untuk memberikan jeda waktu 1 detik sebelum baris program berikutnya dijalankan.
---------------------------------------------------------------------------------------------------------------------------------------
lcd.setCursor(0,1); & lcd.print("ARDUINO MEDAN123"); Berfungsi untuk menampilkan tulisan
"ARDUINO MEDAN123" pada kolom 1 dan baris ke 2 pada layar LCD 16x2.
---------------------------------------------------------------------------------------------------------------------------------------
delay(5000); Perintah tersebut juga berfungsi untuk memberikan jeda waktu selama 5 detik sebelum baris program berikutnya dijalankan.
---------------------------------------------------------------------------------------------------------------------------------------
lcd.clear(); akan menghapus isi memory dari LCD sehingga tulisan pada layar hilang.
delay(1000); setelah layar dihapus selanjutnya perintah delay akan memberikan jeda waktu layar kosong [tidak ada tampilan] selama 1 detik.
---------------------------------------------------------------------------------------------------------------------------------------
Singkatnya pada saat program dijalankan, Di layar LCD pada baris pertama akan muncul tulisan "HELLO SOBAT"  dan setelah jeda waktu 1 detik akan muncul tulisan "ARDUINO MEDAN123" di bawah tulisan sebelumnya. Setelah 5 detik maka tampilan layar akan dihapus selama 1 detik dan akan akan berulang seterusnya selama rangkaian bekerja.
---------------------------------------------------------------------------------------------------------------------------------------

Demikianlah cara menampilkan tulisan pada Shield LCD 16x2. Sobat bisa membuat tulisan apapun dimulai dari kolom dan baris yang sobat inginkan. Sobat bisa menambahkan perintah-perintah lainnya seperti membuat tulisan menghilang, bergerak ke kiri atau ke kanan dan lainnya. Semuanya tergantung dari kreativitas sobat masing-masing. 

Terimakasih.
Sobat Arduino.


SHIELD LCD DISPLAY 16X2

Penjelasan Singkat:
LCD [Liquid Crystal Display] adalah perangkat yang  digunakan untuk menampilkan tulisan sesuai dengan yang kita inginkan. LCD 16x2  memiliki baris dengan alamat 0 dan 1 serta kolom dengan alamat 0-15 [Nilai yang digunakan pada program].  Maksudnya adalah alamat baris 0 adalah baris pertama pada layar LCD dan alamat kolom 0 adalah kolom pertama pada LCD. Untuk mempermudah pemrograman pada arduino maka disini kita akan menggunakan library LiquidCrystal_I2C.h &  LCD.h. Sobat bisa lihat bentuk dari LCD 16x2 yang kita gunakan seperti pada gambar dibawah ini.
Adapun perintah-perintah pada arduino yang dapat digunakan adalah sebagai berikut:
--------------------------------------------------------------------------------------------------------------------------------------- 
- lcd.begin (16,2)             : LCD yang digunakan mempunyai 2 baris dan 16 kolom
--------------------------------------------------------------------------------------------------------------------------------------- 
- lcd.noDisplay()               : Menghilangkan tampilan pada LCD.
--------------------------------------------------------------------------------------------------------------------------------------- 
- lcd.display()                    : Menampilkan tulisan pada LCD.
--------------------------------------------------------------------------------------------------------------------------------------- 
- lcd.clear()                        : Menghapus isi memory [Tampilan pada LCD].
--------------------------------------------------------------------------------------------------------------------------------------- 
- lcd.noCursor()                : Menghilangkan tampilan kursor.
-------------------------------------------------------------------------------------------------------------------------------------- 
- lcd.setCursor()               : Meletakkan kursor pada baris dan kolom tertentu.
--------------------------------------------------------------------------------------------------------------------------------------- 
- lcd.blink()                        : Tampilan blinking pada kursor.
--------------------------------------------------------------------------------------------------------------------------------------- 
- lcd.scrollDisplayRight()  : Menggeser tulisan ke arah kanan.
-------------------------------------------------------------------------------------------------------------------------------------- 
- lcd.scrollDisplayLeft()    : Menggeser tulisan ke arah kiri.
--------------------------------------------------------------------------------------------------------------------------------------- 
- lcd.autoscroll()               :  Membuat tulisan scroll secara otomatis.
--------------------------------------------------------------------------------------------------------------------------------------- 

Dengan mengetahui perintah-perintah diatas berarti mempermudah sobat untuk bisa memprogram tulisan  sesuai dengan yang sobat inginkan. 

RANGKAIAN KENDALI 3 LAMPU DENGAN 3 TOMBOL ON/OFF (ARDUINO UNO)

Penjelasan Singkat:
Hai sobat semua, kali ini kita akan membuat rangkaian pengembangan dari artikel Rangkaian Kendali 1 Lampu dengan 1 Tombol ON/OFF.  Pada rangkaian kali ini kita akan menggunakan 3 tombol dan 3 lampu LED yang masing-masing tombol akan di fungsikan sebagai saklar bagi tiap-tiap lampu LED, dan setiap lampu dimatikan, kita akan mengirimkan pesan ke Serial Monitor yang memberitahukan bahwa lampu mana yang sedang di nyalakan dan di matikan. Tujuan dari perancangan ini adalah untuk lebih memahami cara mengembangkan rangkaian dan cara memprogram tiap-tiap kaki arduino yang kita perlukan agar dapat bekerja sesuai dengan yang kita inginkan. Baiklah sobat sekalian, langsung saja kita perhatikan susunan rangkaian yang akan kita buat. Sobat bisa membuat nya langsung di atas papan breadboard sesuai gambar rangkaian di bawah ini.
Gambar Rangkaian:


Cara Kerja Rangkaian:
Pertama sekali program akan memeriksa tombol mana yang ditekan, Jika Tombol S1 di Tekan maka Nilai dari Pin A0 akan bernilai HIGH, dan selanjutnya rangkaian akan membaca kondisi lampu LED1, jika lampu LED1 mati maka LED1 akan di nyalakan dan sebaliknya.Jika Tombol S2 yang di tekan maka Nilai dari Pin A1 yang akan bernilai HIGH dan akan merubah kondisi LED2 dari mati ke hidup atau sebaliknya, dan jika Tombol S3 yang ditekan maka LED3 yang akan di nyalakan atau dimatikan sesuai dengan kondisi terakhir dari lampu LED3 tersebut. 

Sketch Arduino
int tombol1 = A0;                       //jadikan pin A0 sebagai tombol1
int tombol2 = A1;                       //jadikan pin A1 sebagai tombol2
int tombol3 = A2;                       //jadikan pin A2 sebagai tombol3
int led1 = 8;                               //jadikan pin 8 sebagai led1
int led2 = 9;                               //jadikan pin 9 sebagai led2
int led3 = 10;                             //jadikan pin 10 sebagai led3

void setup() {
    Serial.begin(9600);                        //aktfikan port serial untku komunikasi dengan pc
    pinMode (tombol1, INPUT);           //set tombol1 sebagai input
    pinMode (tombol2, INPUT);           //set tombol2 sebagai input
    pinMode (tombol3, INPUT);           //set tombol3 sebagai input
    pinMode(led1, OUTPUT);              //set led1 sebagai output
    pinMode(led2, OUTPUT);              //set led2 sebagai output
    pinMode(led3, OUTPUT);              //set led3 sebagai output
    }
void loop() {
    if (digitalRead(tombol1) == HIGH)  //jika tombol1 ditekan
    if (digitalRead(led1) == LOW) {       //cek jika led1 mati
        digitalWrite (led1, HIGH);            //hidupkan led1
        Serial.println("LED1 HIDUP");     //kirim pemberitahuan ke pc "LED1 HIDUP"
        delay(500);                                  //beri delay sebesar 500ms
    }
     else {                                                //sebaliknya, jika led1 hidup
        digitalWrite (led1, LOW);             //matikan led1
        Serial.println("LED1 MATI");        //kirim pemberitahuan ke pc "LED1 MATI"
        delay(500);                                  //beri delay sebesar 500ms
    }
    else if (digitalRead(tombol2== HIGH)   //jika tombol2 yang ditekan
    if (digitalRead(led2== LOW) {               //cek jika led2 mati
        digitalWrite (led2, HIGH);                    //hidupkan led2
        Serial.println("LED2 HIDUP");             //kirim pemberitahuan ke pc "LED2 HIDUP"
        delay(500);                                          //beri delay sebesar 500ms
     }
      else {                                                      //sebaliknya, jika led2 hidup
        digitalWrite (led2, LOW);                     //matikan led2
        Serial.println("LED2 MATI");                //kirim pemberitahuan ke pc "LED2 MATI"
        delay(500)                                         //beri delay sebesar 500ms
     }
    else if (digitalRead(tombol3) == HIGH)    //jika tombol3 yang ditekan
    if (digitalRead(led3== LOW) {                //cek jika led3 mati
        digitalWrite (led3, HIGH);                     //hidupkan led3
        Serial.println("LED3 HIDUP");              //kirim pemberitahuan ke pc "LED3 HIDUP"
        delay(500);                                           //beri delay sebesar 500ms
    }
     else {                                                        //sebaliknya, jika led3 hidup
        digitalWrite (led3, LOW);                     //matikan led3
        Serial.println("LED3 MATI");                //kirim pemberitahuan ke pc "LED3 HIDUP"
        delay(500);                                          //beri delay sebesar 500ms
    }
}


Penjelasan Potongan Program
int tombol1 = A0;                       //jadikan pin A0 sebagai tombol1
int tombol2 = A1;                       //jadikan pin A1 sebagai tombol2
int tombol3 = A2;                       //jadikan pin A2 sebagai tombol3
int led1 = 8;                               //jadikan pin 8 sebagai led1
int led2 = 9;                               //jadikan pin 9 sebagai led2
int led3 = 10;                             //jadikan pin 10 sebagai led3
Perintah diatas adalah pendeklarasian tiap pin arduino yang akan digunakan sebagai led dan tombol.

void setup() {
    Serial.begin(9600);                        //aktfikan port serial untku komunikasi dengan pc
    pinMode (tombol1, INPUT);           //set tombol1 sebagai input
    pinMode (tombol2, INPUT);           //set tombol2 sebagai input
    pinMode (tombol3, INPUT);           //set tombol3 sebagai input
    pinMode(led1, OUTPUT);              //set led1 sebagai output
    pinMode(led2, OUTPUT);              //set led2 sebagai output
    pinMode(led3, OUTPUT);              //set led3 sebagai output
    }
Serial.begin(9600); adalah perintah yang digunakan untuk mengaktifkan komunikasi dengan dunia luar melalui port USB dengan kecepatan 9600 bit/s. Pada aplikasi ini kita akan memantau keluaran arduino melalui port USB dengan Serial Monitor milik Aplikasi Arduino.
Selebihnya adalah perintah untuk mengkonfigurasi pin arduino yang telah di deklarasikan sebelumnya, agar pada saat program dijalankan, arduino akan mengubah status pin menjadi keluaran atau masukan sesuai dengan konfigurasai masing-masing pin.
       Keterangan Singkat:
      * Masukan [INPUT] berarti program dapat membaca nilai dari pin apakah bernilai HIGH atau LOW.
      * Keluaran [OUTPUT] berarti program dapat merubah status pin menjadi HIGH atau LOW.
      * Pada Rangkaian, Nilai HIGH berarti bahwa keluaran berada pada tegangan 5V, lampu      
        menyala atau tombol dalam keadaan ditekan sehingga pin terhubung ke positif catu daya [5V].
      * Pada Rangkaian, Nilai LOW berarti bahwa keluaran berada pada tegangan 0V, Lampu Mati 
        atau tombol dalam keadaan ditekan sehingga pin terhubung ke negative catu daya [0V].

void loop() {
    if (digitalRead(tombol1) == HIGH)  //jika tombol1 ditekan
    if (digitalRead(led1) == LOW) {       //cek jika led1 mati
        digitalWrite (led1, HIGH);            //hidupkan led1
        Serial.println("LED1 HIDUP");     //kirim pemberitahuan ke pc "LED1 HIDUP"
        delay(500);                                  //beri delay sebesar 500ms
    }
     else {                                                //sebaliknya, jika led1 hidup
        digitalWrite (led1, LOW);             //matikan led1
        Serial.println("LED1 MATI");        //kirim pemberitahuan ke pc "LED1 MATI"
        delay(500);                                  //beri delay sebesar 500ms
    }
    else if (digitalRead(tombol2== HIGH)   //jika tombol2 yang ditekan
    if (digitalRead(led2== LOW) {               //cek jika led2 mati
        digitalWrite (led2, HIGH);                    //hidupkan led2
        Serial.println("LED2 HIDUP");             //kirim pemberitahuan ke pc "LED2 HIDUP"
        delay(500);                                          //beri delay sebesar 500ms
     }
      else {                                                      //sebaliknya, jika led2 hidup
        digitalWrite (led2, LOW);                     //matikan led2
        Serial.println("LED2 MATI");                //kirim pemberitahuan ke pc "LED2 MATI"
        delay(500)                                         //beri delay sebesar 500ms
     }
    else if (digitalRead(tombol3) == HIGH)    //jika tombol3 yang ditekan
    if (digitalRead(led3== LOW) {                //cek jika led3 mati
        digitalWrite (led3, HIGH);                     //hidupkan led3
        Serial.println("LED3 HIDUP");              //kirim pemberitahuan ke pc "LED3 HIDUP"
        delay(500);                                           //beri delay sebesar 500ms
    }
     else {                                                        //sebaliknya, jika led3 hidup
        digitalWrite (led3, LOW);                     //matikan led3
        Serial.println("LED3 MATI");                //kirim pemberitahuan ke pc "LED3 HIDUP"
        delay(500);                                          //beri delay sebesar 500ms
    }
}
Di dalam void loop() {}; Program akan menguji tombol mana yang sedang ditekan, sobat bisa perhatikan keterangan tiap baris perintah pada sketch diatas. Perintah if (digitalRead(tombol1) == HIGHakan menguji apakah tombol satu sedang ditekan dan jika iya maka perintah if (digitalRead(led1) == LOW);  akan melanjutkan pengujian dengan melihat kondisi lampu led1 apakah mati. Jika lampu mati maka lampu led1 akan dinyalakan dengan perintah digitalWrite (led1, HIGH) dengan memberi nilai HIGH pada led1. Selanjutnya program akan mengirimkan keterangan LED1 HIDUP ke USB serial dengan perintah Serial.println("LED1 HIDUP"); yang kemudian akan kita tampilkan pada Serial Monitor. Berikut tampilan dari Serial Monitor pada Aplikasi Arduino.

Disamping dapat kita lihat keterangan yang muncul pada Serial Monitor yang bertuliskan LED1 HIDUP dan seterusnya. keterangan akan muncul setiap kali ada perubahan kondisi pada led yang sedang di nyalakan atau dimatikan.
Kembali ke Program. Selanjutnya perintah delay(500)memberikan waktu tunda selama 500ms untuk mengecek penekanan tombol berikutnya. Dan perintah di dalam else {}; akan dijalankan jika pada pengujian sebelumnya status  lampu led1 dalam kondisi hidup sehingga baris perintah didalam nya yang akan dijalankan dan memberi  nilai led1 menjadi LOW  sehingga lampu led1 mati   dan mengirimkan keterangan ke Serial Monitor "LED1 MATI".
                                                  
Demikian juga dengan baris perintah dibawah nya, selebihnya berfungsi untuk menguji kondisi lampu led2 dan led3 apakah dalam kondisi HIGH atau LOW.. Sehingga kondisi dari lampu led yang dituju akan diubah kondisi nya dari HIGH ke LOW atau sebaliknya.

Demikianlah cara kerja dari rangkaian dan program arduino yang telah kita buat. Semoga sobat semua sudah bisa mengembangkan sendiri rangkaian dan program yang sudah kita coba dan sobat juga bisa mencoba membuat sebuah rangkaian baru yang lebih kreatif  sesuai dengan yang sobat inginkan.



Trims
Sobat Arduino.