Jumat, 08 Maret 2024





Laporan Akhir Percobaan 1
== Percobaan 4 ==


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




Arduino Uno


LCD

Keypad














#include <LettersKeypad.h>

#include <Keypad.h> 
#include <LiquidCrystal.h> 

// Penjelasan Keypad 
const byte ROWS = 4; 
const byte COLS = 3; 

// LCD dihubungkan dengan pin A0 hingga A5 pada Arduino
const int rs = A0, en = A1, d4 = A2, d5 = A3, d6 = A4, d7 = A5;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); 

// Membuat objek LCD dengan pin yang telah ditentukan sebelumnya 
char hexaKeys[ROWS][COLS] = { 
  {'1', '2', '3'}, 
  {'4', '5', '6'}, 
  {'7', '8', '9'}, 
  {'*', '0', '#'} 
}; 

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

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

// Menentukan pin yang digunakan untuk mengontrol LED, di sini diasumsikan LED dihubungkan ke pin digital 10 hingga 13
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 
  
void setup() { 
  // Setup serial monitor 
  Serial.begin(9600); 
  lcd.begin(16, 2); 
  
  // Inisialisasi pin LED sebagai output
  for (int i = 0; i < 4; ++i) {
    pinMode(ledPins[i], OUTPUT);
  }

void loop() { 
  // Membaca tombol yang ditekan pada keypad 
  char customKey = customKeypad.getKey(); 
  if (customKey) { 
    
    lcd.clear();
    lcd.setCursor(0, 0); 
    lcd.print("Tombol: "); 
    lcd.print(customKey); 
    
    // Jika tombol ditekan, tampilkan tombol tersebut pada LCD dan aktifkan LED sesuai dengan kombinasi yang ditentukan
    switch (customKey) {
      case '1':
        activateLEDs(0, 0, 0, 1); // Turn on LED 4
        break;
      case '2':
        activateLEDs(0, 0, 1, 0); // Turn on LED 3
        break;
      case '3':
        activateLEDs(0, 1, 0, 0); // Turn on LEDs 3 and 4
        break;
      case '4':
        activateLEDs(1, 0, 0, 0); // Turn on LED 2
        break;
      case '5':
        activateLEDs(1, 1, 0, 0); // Turn on LEDs 2 and 4
        break;
      case '6':
        activateLEDs(0, 1, 1, 0); // Turn on LEDs 2 and 3
        break;
      case '7':
        activateLEDs(0, 0, 1, 1); // Turn on LEDs 2, 3, and 4
        break;
      case '8':
        activateLEDs(0, 1, 1, 1); // Turn on LED 1
        break;
      case '9':
        activateLEDs(1, 1, 1, 1); // Turn on LEDs 1 and 4
        break;
      case '0':
        activateLEDs(0, 0, 0, 0); // Turn on LEDs 1 and 3
        break;
      case '*':
        activateLEDs(0, 0, 0, 0); // Turn on LEDs 1, 3, and 4
        break;
      case '#':
        activateLEDs(0, 0, 0, 0); // Turn on LEDs 1 and 2
        break;
      default:
        // Matikan semua LED jika ada salah tekan
        activateLEDs(0, 0, 0, 0);
        break;
    }
  } 
}

// Mengaktifkan atau menonaktifkan LED berdasarkan kombinasi yang diberikan
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






1. Analisa kenapa data pin yang kita gunakan hanya dari D4- D7? 
Jawab:

Pada LCD, pin D4-D7 terhubung ke output Arduino untuk transfer data. Saat pin D4-D7 yang dihubungkan ke output Arduino, maka data yang dihasilkan itu 4 bit data saja. Jika menggunakan pin D0-D7 maka data yang dihasilkan itu 8 bit data. Dalam penggunaan 8 bit, proses transfer data akan panjang yang berarti memakan waktu yang lama. Oleh karena itu, pada percobaan ini yang dipakai hanyalah D4-D7 saja. Kesimpulannya, baik 8 bit maupun 4 bit data dapat diterima oleh sistem LCD. Tapi, jika ingin menghemat waktu yang dipakai adalah yang 4 bit saja.

2. Analisa bagaimana cara kerja dari keypad sehingga bisa menampilkan hasil pada LCD, jelaskan kenapa!
Jawab:

Pertama, keypad akan membaca input yang diterima (R1-R4,C1-C4) yang mana setelah itu arduino melakukan pemindaian matriks yang menentukan tombol mana yang ditekan. Setelah itu arduino akan memetakan lokasi dari tombol yang ditekan tadi, contoh jika baris ke-1 dan kolom ke-3 maka hasilnya "2".
Untuk menampilkan hasil pemetaan tadi itu menggunakan LCD, yang mana pin RS dihubungkan ke A0 untuk mengirimkan data, pin D4-D7 LCD dihubungkan ke output arduino. Maka, nantinya arduino mengirimkana data yang dipetakan. Dan, hasilnya ditampilkan pada LCD.


Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Muhammad Zaky Kurnia - Skyblue - Powered by Blogger - Designed by Johanes Djogan -