Mohon tunggu...
Khadlel MR
Khadlel MR Mohon Tunggu... Mahasiswa - Mahasiswa

Mahasiswa memiliki pengalaman dalam komunikasi nirkabel dan minat pada Network Engineering serta Cybersecurity. Di waktu luangnya, suka membaca buku tentang teknologi dan pengembangan diri.

Selanjutnya

Tutup

Ilmu Alam & Tekno

Tutorial Arduino : Menghidupkan LED dan Membuat LED Berkedip dengan Tombol

20 Juli 2024   14:14 Diperbarui: 20 Juli 2024   14:25 68
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.

Kondisi 1 (1  button menghidupkan 3 LED, 2 button menghidupkan 6 LED blink)

Code Program

// Definisi pin untuk tombol
const int button1Pin = A0;
const int button2Pin = A1;

// Definisi pin untuk LED
const int ledPins1[] = {2, 3, 4}; // LED untuk button1
const int ledPins2[] = {5, 6, 7, 8, 9, 10}; // LED untuk button2

// Variabel untuk menyimpan status tombol
int button1State = 0;
int button2State = 0;

void setup() {
  // Inisialisasi pin untuk tombol sebagai input
  pinMode(button1Pin, INPUT);
  pinMode(button2Pin, INPUT);

  // Inisialisasi pin untuk LED sebagai output
  for (int i = 0; i < 3; i++) {
    pinMode(ledPins1[i], OUTPUT);
  }
  for (int i = 0; i < 6; i++) {
    pinMode(ledPins2[i], OUTPUT);
  }
}

void loop() {
  // Membaca status tombol
  button1State = digitalRead(button1Pin);
  button2State = digitalRead(button2Pin);

  // Jika tombol pertama ditekan, hidupkan 3 LED
  if (button1State == HIGH) {
    for (int i = 0; i < 3; i++) {
      digitalWrite(ledPins1[i], HIGH);
    }
  } else {
    for (int i = 0; i < 3; i++) {
      digitalWrite(ledPins1[i], LOW);
    }
  }

  // Jika tombol kedua ditekan, buat 6 LED berkedip
  if (button2State == HIGH) {
    for (int i = 0; i < 6; i++) {
      digitalWrite(ledPins2[i], HIGH);
    }
    delay(500); // Tunggu 500 milidetik
    for (int i = 0; i < 6; i++) {
      digitalWrite(ledPins2[i], LOW);
    }
    delay(500); // Tunggu 500 milidetik
  } else {
    for (int i = 0; i < 6; i++) {
      digitalWrite(ledPins2[i], LOW);
    }
  }
}


Prinsip Kerja


Program ini dirancang untuk mengontrol LED berdasarkan input dari dua tombol yang terhubung ke papan microcontroller, seperti Arduino. Berikut adalah penjelasan prinsip kerja dari kode tersebut:


Di dalam fungsi setup(), program menginisialisasi dua pin sebagai input untuk tombol dan enam pin sebagai output untuk LED. Pin-pin ini didefinisikan untuk tombol dan LED yang berbeda dengan tujuan masing-masing. Setelah inisialisasi, fungsi loop() dijalankan secara berulang.

Fungsi loop() dimulai dengan membaca status dari kedua tombol menggunakan digitalRead(). Status dari tombol pertama (dihubungkan ke pin A0) dan tombol kedua (dihubungkan ke pin A1) disimpan dalam variabel button1State dan button2State.

Jika tombol pertama ditekan (status button1 State adalah HIGH), maka tiga LED yang terhubung ke pin-pin tertentu akan dinyalakan. Ini dilakukan dengan menggunakan perulangan for yang mengatur semua pin LED menjadi HIGH. Sebaliknya, jika tombol pertama tidak ditekan, semua LED tersebut dimatikan dengan mengatur pin-pin LED menjadi LOW.

Untuk tombol kedua, jika tombol ini ditekan (status button2State adalah HIGH), maka semua enam LED yang terhubung ke pin-pin tertentu akan berkedip. Ini dicapai dengan menyalakan LED, menunggu selama 500 milidetik, kemudian mematikan LED dan menunggu lagi selama 500 milidetik. Proses ini diulang setiap kali tombol kedua ditekan. Jika tombol kedua tidak ditekan, semua LED tersebut akan dimatikan.

Flowchart

FlowChart
FlowChart

Link Download
Gambar Rangkaian Disini 
Program Disini
Flowchart Disini
File Rangkaian Disini

Kondisi 2 (1  button menghidupkan 6 LED, 2 button menghidupkan 3 LED blink)

Gambar Rangkaian
Gambar Rangkaian

Code Program

// Definisi pin untuk tombol
const int button1Pin = A0;
const int button2Pin = A1;

// Definisi pin untuk LED
const int ledPins1[] = {2, 3, 4, 5, 6, 7}; // LED untuk button1
const int ledPins2[] = {8, 9, 10};         // LED untuk button2

// Variabel untuk menyimpan status tombol
int button1State = 0;
int button2State = 0;

void setup() {
  // Inisialisasi pin untuk tombol sebagai input
  pinMode(button1Pin, INPUT);
  pinMode(button2Pin, INPUT);

  // Inisialisasi pin untuk LED sebagai output
  for (int i = 0; i < 6; i++) {
    pinMode(ledPins1[i], OUTPUT);
  }
  for (int i = 0; i < 3; i++) {
    pinMode(ledPins2[i], OUTPUT);
  }
}

void loop() {
  // Membaca status tombol
  button1State = digitalRead(button1Pin);
  button2State = digitalRead(button2Pin);

  // Jika tombol pertama ditekan, hidupkan 6 LED
  if (button1State == HIGH) {
    for (int i = 0; i < 6; i++) {
      digitalWrite(ledPins1[i], HIGH);
    }
  } else {
    for (int i = 0; i < 6; i++) {
      digitalWrite(ledPins1[i], LOW);
    }
  }

  // Jika tombol kedua ditekan, buat 3 LED berkedip
  if (button2State == HIGH) {
    for (int i = 0; i < 3; i++) {
      digitalWrite(ledPins2[i], HIGH);
    }
    delay(500); // Tunggu 500 milidetik
    for (int i = 0; i < 3; i++) {
      digitalWrite(ledPins2[i], LOW);
    }
    delay(500); // Tunggu 500 milidetik
  } else {
    for (int i = 0; i < 3; i++) {
      digitalWrite(ledPins2[i], LOW);
    }
  }
}

Prinsip Kerja

Program ini mengontrol LED berdasarkan input dari dua tombol yang terhubung ke papan mikrokontroler, seperti Arduino. Dalam fungsi setup(), pin-pin yang terhubung ke tombol dan LED diinisialisasi; pin untuk tombol sebagai input dan pin untuk LED sebagai output. Fungsi loop() dijalankan secara berulang untuk membaca status dari kedua tombol.

Ketika tombol pertama (terhubung ke pin A0) ditekan, status button1State menjadi HIGH, dan program akan menyalakan semua 6 LED yang terhubung ke pin-pin di array ledPins1. Jika tombol pertama tidak ditekan, LED-LED tersebut akan dimatikan.

Sebaliknya, jika tombol kedua (terhubung ke pin A1) ditekan, status button2State menjadi HIGH. Program akan menyalakan semua 3 LED yang terhubung ke pin-pin di array ledPins2, membuatnya menyala selama 500 milidetik, kemudian mematikannya selama 500 milidetik, dan mengulangi siklus ini untuk menciptakan efek berkedip. Jika tombol kedua tidak ditekan, LED-LED tersebut akan dimatikan.

Flowchart

Flowchart
Flowchart

Link Download
Gambar Rangkaian Disini
Program Disini
Flowchart Disini
File Rangkaian Disini

Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H

HALAMAN :
  1. 1
  2. 2
  3. 3
  4. 4
Mohon tunggu...

Lihat Konten Ilmu Alam & Tekno Selengkapnya
Lihat Ilmu Alam & Tekno Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun