TP 2 M1





Tugas Pendahuluan 2
== Percobaan 4 Kondisi 1 ==


  1. Membuka proteus
  2. Buka file proteus yang sudah disesuaikan dengan kondisi
  3. Running rangkaiannya
  4. Sesuaikan dengan kondisi yang diinginkan


Blok Diagram

Keypad





Arduino Uno


LCD









Pada rangkaian diatas adalah jika rangkaian dijalankan dan maka belum ada LED yang hidup dan sesuatu yang ditampilkan pada LCD. Jika tombol pada keypad ditekan maka itu akan menghasilkan penjelasan angka pada LCD dan menghidupkan LED. Program arduino uno ini dibuat agar mengeluarkan hasil seperti berikut:
 
1 => LED1 => Tombol: 1
2 => LED2 => Tombul: 2
3 => LED3 => Tombol: 3
4 => LED4 => Tombol: 4
5 => LED1 2 => Tombol: 5
6 => LED1 3=> Tombol: 6
7 => LED1 4 => Tombol: 7
8 => LED2  3 => Tombol: 8
9 => LED1 2  4=> Tombol: 9
0 => LED 1 2 3 4 => Tombol: 0
* => LED  1 2 3=> Tombol: *
# => LED 2 3 4 => Tombol: #





#include <Keypad.h> 
#include <LiquidCrystal.h> 
(input library) 

// Penjelasan Keypad yang dimana 3x4 ( 3 kolom 4 baris)
const byte ROWS = 4; 
const byte COLS = 3; 

// Penjelasan dari deklarasi Pin LCD
const int rs = A0, en = A1, d4 = A2, d5 = A3, d6 = A4, d7 = A5;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); 

// Array representing the keypad 
char hexaKeys[ROWS][COLS] = { 
  {'1', '2', '3'}, 
  {'4', '5', '6'}, 
  {'7', '8', '9'}, 
  {'*', '0', '#'} 
}; 

// Arduino connections 
byte rowPins[ROWS] = {9, 8, 7, 6}; 
byte colPins[COLS] = {5, 4, 3}; 

// Explanation of LED pins
const int ledPins[] = {10, 11, 12, 13}; // Assuming LEDs are connected to digital pins 10 to 13

// Objek keypad sesuai dengan keypad yang dipakai
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 
  
void setup() { 
  // Inisialisasi serial monitor
  Serial.begin(9600); 
  lcd.begin(16, 2); 
  
  // Pin LED sebagai output
  for (int i = 0; i < 4; ++i) {
    pinMode(ledPins[i], OUTPUT);
  }

void loop() { 
  // Get the key value if pressed 
  char customKey = customKeypad.getKey(); 
  if (customKey) { 
    // Display the key value on the LCD
    lcd.clear();
    lcd.setCursor(0, 0); 
    lcd.print("Tombol: "); 
    lcd.print(customKey); 
    
    // Kombinasi yang dipakai sesuai keinginan masing masing
    switch (customKey) {
      case '1':
        activateLEDs(1, 0, 0, 0); // Turn on LED 1
        break;
      case '2':
        activateLEDs(0, 1, 0, 0); // Turn on LED 2
        break;
      case '3':
        activateLEDs(0, 0, 1, 0); // Turn on LED 3
        break;
      case '4':
        activateLEDs(0, 0, 0, 1); // Turn on LED 4
        break;
      case '5':
        activateLEDs(1, 1, 0, 0); // Turn on LEDs 1 and 2
        break;
      case '6':
        activateLEDs(1, 0, 1, 0); // Turn on LEDs 1 and 3
        break;
      case '7':
        activateLEDs(1, 0, 0, 1); // Turn on LEDs 1, and 4
        break;
      case '8':
        activateLEDs(0, 1, 0, 1); // Turn on LED 2 and 4
        break;
      case '9':
        activateLEDs(0, 0, 1, 1); // Turn on LEDs 3 and 4
        break;
      case '0':
        activateLEDs(1, 1, 1, 1); // Turn on all LEDs
        break;
      case '*':
        activateLEDs(1, 1, 1, 0); // Turn on LEDs 2, 3, and 4
        break;
      case '#':
        activateLEDs(0, 1, 1, 1); // Turn on LEDs 1 and 2 and 3
        break;
      default:
        // Turn off all LEDs if an invalid key is pressed
        activateLEDs(0, 0, 0, 0);
        break;
    }
  } 
}

// Fungsi untuk mengaktifkan LED sesuai kombinasi di atas
void activateLEDs(int led1, int led2, int led3, int led4) {
  digitalWrite(ledPins[0], led1);
  digitalWrite(ledPins[1], led2);
  digitalWrite(ledPins[2], led3);
  digitalWrite(ledPins[3], led4);
}


Modul 1: Percobaan 4 Kondisi 1
"Sertakan dengan 4 LED dan tiap tombol keypad menghasilkan kombinasi LED serta keterangan kombinasi pada LCD



Rangkaian Proteus [Download]
Listing Program [Download]
Datasheets Komponen [Download]
Library [Download]
Video [Download]