Egi Rahman 2110952042

.

LA MODUL 1 P6



MODUL 1
PERCOBAAN 6 
1. Prosedur
[Kembali]

+ Rangkai semua komponen sesuai kondisi yang dipilih
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino (Verify and Upload)
+ jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
+ Selesai

2. Hardware dan diagram blok [Kembali]
      a. hardware


                                                                       
1.  LCD 2X16
2. Arduino Uno
3. 8x Switch SPDT 

            b. Digram Blok




3. Rangkaian Simulasi dan Prinsip kerja [Kembali]

A. Gambar Rangkaian
                         
PRINSIP KERJA
 PUSH BATTON (NORMALY OPEN)
    Push button normally open (NO) adalah jenis tombol tekan yang dalam keadaan normal tidak menghubungkan jalur listrik antara pin-pin terminalnya. Artinya, saat tidak ditekan, sirkuit pada push button NO terbuka dan tidak mengalirkan arus listrik. Ketika tombol ditekan, kontak-kontak dalam push button tersebut tertutup sehingga menghubungkan jalur listrik antara pin-pin terminalnya dan mengizinkan arus listrik mengalir.

Saat program dimulai, langkah pertama adalah menginisialisasi komunikasi serial, mengatur konfigurasi layar LCD, dan menetapkan pin-pin yang terhubung ke tombol sebagai input dalam fungsi setup(). Setelah inisialisasi, program memasuki loop utama yang terus berjalan. Dalam loop tersebut, setiap tombol terus-menerus dipantau dengan menggunakan fungsi digitalRead(). Status dari masing-masing tombol disimpan dalam variabel terkait seperti Button1, Button2, hingga Button8. Program kemudian mengevaluasi kombinasi tombol yang ditekan. Jika hanya satu tombol tertentu yang ditekan, tindakan yang sesuai diambil untuk menampilkan informasi yang relevan pada layar LCD. Misalnya, jika tombol pertama (Button1) ditekan, layar LCD akan menampilkan "Merah". Jika tidak ada tombol yang ditekan, program memberikan instruksi untuk menekan salah satu tombol. Selain itu, program juga menangani situasi di mana kombinasi tombol yang ditekan tidak diharapkan atau tidak valid. Dalam kasus ini, pesan error akan ditampilkan pada layar LCD. Untuk mengatur agar tampilan LCD tidak berubah terlalu cepat, program menggunakan fungsi delay(100) setelah setiap iterasi loop. Dengan demikian, prinsip kerja program ini adalah memantau status tombol yang ditekan dan menampilkan output yang sesuai pada layar LCD sesuai dengan kombinasi tombol yang terdeteksi.   


4. FlowChart [Kembali]

a. Listing Program 
#include <LiquidCrystal.h>
#define PB1 A0
#define PB2 A1
#define PB3 A2
#define PB4 A3
#define PB5 A4
#define PB6 A5
#define PB7 12
#define PB8 13

const int rs = 11, en = 10, d4 = 6, d5 = 5, d6 = 4, d7 = 3;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

bool Button1,Button2,Button3,Button4,Button5,Button6,Button7,Button8;

void setup() {
  Serial.begin(9600);
  lcd.begin(16,2); 

  pinMode(PB1, INPUT);
  pinMode(PB2, INPUT);
  pinMode(PB3, INPUT);
  pinMode(PB4, INPUT);
  pinMode(PB5, INPUT);
  pinMode(PB6, INPUT);
  pinMode(PB7, INPUT);
  pinMode(PB8, INPUT);

}

void loop() {

  Button1 = digitalRead(PB1);
  Button2 = digitalRead(PB2);
  Button3 = digitalRead(PB3);
  Button4 = digitalRead(PB4);
  Button5 = digitalRead(PB5);
  Button6 = digitalRead(PB6);
  Button7 = digitalRead(PB7);
  Button8 = digitalRead(PB8); 

  if(Button1==HIGH & Button2==LOW & Button3==LOW & Button4==LOW & Button5==LOW &
Button6==LOW & Button7==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Merah");
  }
  else if(Button2==HIGH & Button1==LOW & Button3==LOW & Button4==LOW & Button5==LOW
& Button6==LOW & Button7==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Kuning");
  }
  else if(Button3==HIGH & Button2==LOW & Button1==LOW & Button4==LOW & Button5==LOW
& Button6==LOW & Button7==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Hijau");
  }
  else if(Button4==HIGH & Button2==LOW & Button3==LOW & Button1==LOW & Button5==LOW
& Button6==LOW & Button7==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Biru");
  }
  else if(Button5==HIGH & Button2==LOW & Button3==LOW & Button4==LOW & Button1==LOW 
& Button6==LOW & Button7==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 1);
   lcd.print("Merah");
  }
  else if(Button6==HIGH & Button2==LOW & Button3==LOW & Button4==LOW & Button5==LOW
& Button1==LOW & Button7==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 1);
   lcd.print("Hijau");
  }
  else if(Button7==HIGH & Button2==LOW & Button3==LOW & Button4==LOW & Button5==LOW
& Button6==LOW & Button1==LOW & Button8==LOW){
   lcd.clear();
   lcd.setCursor(0, 1);
   lcd.print("Biru");
  }
  else if(Button8==HIGH & Button2==LOW & Button3==LOW & Button4==LOW & Button5==LOW
& Button6==LOW & Button7==LOW & Button1==LOW){
   lcd.clear();
   lcd.setCursor(0, 1);
   lcd.print("Putih");
  }
  else if(Button1==LOW & Button2==LOW & Button3==LOW & Button5==LOW & Button5==LOW
& Button6==LOW & Button7==LOW & Button8==LOW){
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Silahkan Tekan");
  lcd.setCursor(0, 1);
  lcd.print("Salah Satu SW");
  }
  else{
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Error");
  }
  delay(100); // Tambahkan penundaan agar tampilan tidak berubah terlalu cepat
}


b. Flowchart






5. Video Demo [Kembali]



6. Kondisi [Kembali]

PERCOBAAN 6 SESUSAI DENGAN MODUL 1

8. Download File [Kembali]

Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Demo Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet LCD 2X16 klik disini

0 komentar:

Posting Komentar

Blogger news

Blogger templates