LA1 M1 UP UC


Laporan Percobaan 2

Keypad dan 7-segment

1. Foto Hardware dan Diagram Blok [Kembali]


      1. Arduino Uno






        2. Keypad







        3. 7-Segment



     4. Kabel Jumper





     5. Breadboard




Diagram Blok:





2. Prosedur Percobaan  [Kembali]

  •  Rangkai semua komponen 
  •  Buat program di aplikasi arduino IDE
  •  Setelah selesai masukkan program ke arduino 
  •  Jalankan program pada simulasi dan cobakan dengan modul




Prinsip Kerja

Pada rangkaian ini menggunakan komponen antara lain yaitu mikrokontroler (ATMEGA328P-PU), push button, dan 7-segment.

Prinsip kerja rangkaian ini ialah dimana push button yang merepresentasikan keypad 4x4 berfungsi sebagai input sedangkan 7-segment berfungsi sebagai output. 

char keys[ROWS][COLS] = { {'4','3','2','1'}, {'D','C','B','A'}, // Keypad 4x4 layout {'8','7','6','5'}, 
{'*','0','#', '9'}

Sesuai dengan program arduino yang sudah di buat dimana terdapat array matrix 4x4 yang merepresentasikan layout keypad, yang masing-masing karakter terkait degan tombol pada keypad. Jadi apabila kita menekan tombol pada keypad maka akan dimunculkan tulisan tombol tersebut di 7-segment
Jadi kita menekan button maka 7-segment akan menampilakan sesuai dengan yang kita tekan.

4. Flowchart dan Listing Program [Kembali]







Listing Program:
//Percobaan 2
#include <Keypad.h>
 
const byte ROWS = 4; // Four rows
const byte COLS = 4; // Fou columns
 
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'}, // Keypad 4x4 layout
  {'7','8','9','C'},
  {'*','0','#', 'D'}
};
 
byte rowPins[ROWS] = {A4, A3, A2, A1}; // Connect to the keypad row pins
byte colPins[COLS] = {10, 11, 12, 13}; // Connect to the keypad column pins
 
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
 
const int segmentPins[] = {9, 8, 7, 6, 5, 4, 3, 2}; // Connect to the seven-segment display segment pins
 
void setup() {
  for (int i = 0; i < 8; i++) {
    pinMode(segmentPins[i], OUTPUT);
  }
  }
 
void loop() {
  char key = keypad.getKey();
  if (key) {
    displayCharacter(key);
    delay(1000);
    clearDisplay();
  }
}
 
void displayCharacter(char ch) {
  // Define segment patterns for each digit (0-9)
  // Example: Displaying '1'
  //      A
  //    F   B
  //      G
  //    E   C
  //      D
  byte patterns[][9] = {
    {1, 1, 0, 0, 0, 0, 0, 0}, // 0
    {1, 1, 1, 1, 1, 0, 0, 1}, // 1
    {1, 0, 1, 0, 0, 1, 0, 0}, // 2
    {1, 0, 1, 1, 0, 0, 0, 0}, // 3
    {1, 0, 0, 1, 1, 0, 0, 1}, // 4
    {1, 0, 0, 1, 0, 0, 1, 0}, // 5
    {1, 0, 0, 0, 0, 0, 1, 0}, // 6
    {1, 1, 1, 1, 1, 0, 0, 0}, // 7
    {1, 0, 0, 0, 0, 0, 0, 0}, // 8
    {1, 0, 0, 1, 0, 0, 0, 0},  // 9
    {1, 0, 1, 0, 0, 0, 0, 0}, //a
    {1, 0, 0, 0, 0, 0, 1, 1}, //b
    {1, 1, 0, 0, 0, 1, 1, 0}, //c
    {1, 0, 1, 0, 0, 0, 0, 1}, //d
     
  };
 
  if ((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'D')) {
    // Get the digit index (0-9) from the character
    int index = (ch <= '9')? (ch - '0') : (ch - 'A' + 10);
 
    // Write the pattern to the segment pins
    for (int i = 0; i < 7; i++) {
      digitalWrite(segmentPins[i], patterns[index][i]);
    }
  }
}
void clearDisplay() {
for (int i = 0; i < 8; i++) {
digitalWrite(segmentPins[i], HIGH);
}
}
   

5. Kondisi [Kembali]

   Percobaan 2 komponen input Keypad dan Seven segment akan menampilkan karakter sesuai dengan input keypad yang ditekan. Ketika tombol pada baris 2 kolom 2 ditekan, maka 7-segment akan menampilkan huruf "5".


Download HTML disini
Download Video percobaan disini
Download Library Arduino Uno disini
Download Datasheet Arduino Uno disini
Download Datasheet Seven Segment disini
Download Datasheet Keypad disini











Komentar

Postingan populer dari blog ini