Selasa, 12 Maret 2024

LA-1 MODUL 1


Percobaan VI

 8x Switch SPDT DAN LCD

1. Prosedur [Kembali]

  • Rangkailah seperti rangkaian berikut
  • Buka Arduino IDE dan masukan listing program
  • Upload program ke arduino
  • Variasikan tombol yang ditekan dan amati keluarannya pada LCD
Gambar 1. Rangkaian Hardware
 

   1. Arduino Uno

    2. switch spdt





    3. LCD


    4. Kabel jumper

    5. Breadboard


Diagram Blok:


Prinsip Kerja :

    Pada percobaan 6, rangkaian arduino menerima input dari sejumlah tombol yang terhubung ke pin-pin analog (PB1 hingga PB6) dan digital (PB7 dan PB8) yaitu dari switch SPDT. Setiap tombol berfungsi sebagai input yang mengirimkan sinyal ke papan arduino. Outputnya adalah tindakan respons yang dihasilkan oleh arduino yang ditampilkan pada layar LCD yang terhubung. Respon ini ditentukan oleh kondisi input tombol-tombol tersebut.
    
    LCD dapat menampilkan Display berdasarkan inputnya dimulai dengan membaca status setiap tombol yang terhubung ke pin arduino. Program kemudian mengevaluasi kondisi input, memeriksa kombinasi tombol mana yang aktif dengan menggunakan serangkaian pernyataan if-else. Setiap pernyataan if menguji status dari satu tombol, sementara tombol-tombol lainnya dicek dalam kondisi else if. Jika kondisi input sesuai dengan salah satu pernyataan if, program akan menampilkan pesan yang sesuai pada LCD dan membersihkan layar sebelumnya. Jika tidak ada kombinasi tombol yang cocok maka LCD akan menampilkan pesan "error". LCD menampilkan informasi yang relavan sesuai dengan input pengguna.

4. Flowchart dan Listing Program [Kembali]

Flowchart:


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
}

5. Kondisi [Kembali]

    Ketika memencet salah satu switch SPDT akan dibaca oleh Arduino dan, arduino akan memberikan perintah untuk menampilkan pada layar LCD.

᭒ HTML↠ klik disini
᭒ Gambar Rangkaian ↠ klik disini
᭒ Video Demo ↠ klik disini
᭒ Listing Program ↠ klik disini




Tidak ada komentar:

Posting Komentar

MODUL 4

Smart Parking Area [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. ...