Minggu, 03 Maret 2024

TP 2



Percobaan 2 Kondisi 6

Keypad & 7-Segment

1. Prosedur
[Kembali]
1. Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
2. Buat program menggunakan Arduino IDE.
3. Transfer program yang telah dibuat ke Arduino yang ada di Proteus.
4. Uji coba program di simulasi sesuai dengan kondisi yang diinginkan.
5. Proses selesai setelah uji coba berhasil dilakukan.

2. Hardware dan Diagram Blok [Kembali]


a. Hardware
1. Modul Arduino Uno



2. Push Button

3. Seven Segment



b. diagram blok


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
 
Prinsip Kerja
Percobaan ini menggunakan push button yang disusun seperti keypad 4x4 untuk memasukkan angka. Push button tersebut tersusun dalam matriks 4 baris dan 4 kolom. Saat salah satu push button ditekan, itu menghubungkan baris dan kolom tertentu dalam matriks. Kemudian, mikrokontroler memindai setiap baris secara bergantian untuk menemukan push button yang ditekan, lalu memindai setiap kolom untuk mengetahui push button mana yang ditekan dalam baris tersebut. Dengan informasi tersebut, mikrokontroler dapat menentukan angka yang dipilih oleh pengguna. Misalnya, jika push button pada baris 3 dan kolom 2 ditekan, maka angka 2 akan ditampilkan. Angka yang teridentifikasi kemudian ditampilkan pada seven segment, memungkinkan pengguna untuk melihatnya secara visual.

4. Flowcharth dan Listing Program [Kembali]
a. Flowcharth

b. Listing Program
#include <Keypad.h>

const byte ROWS = 4; // Empat baris
const byte COLS = 4; // Empat kolom

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

byte rowPins[ROWS] = {A4, A3, A2, A1}; // Hubungkan ke pin baris keypad
byte colPins[COLS] = {10, 11, 12, 13}; // Hubungkan ke pin kolom keypad

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

const int segmentPins[] = {9, 8, 7, 6, 5, 4, 3, 2}; // Hubungkan ke pin segmen seven-segment display

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) {
  // Pola segmen untuk setiap digit (0-9)
  byte patterns[][9] = {
    {0, 0, 0, 0, 0, 0, 1, 1}, // 0
    {1, 0, 0, 1, 1, 1, 1, 1}, // 1
    {0, 0, 1, 0, 0, 1, 0, 1}, // 2
    {0, 0, 0, 0, 1, 1, 0, 1}, // 3
    {1, 0, 0, 1, 1, 0, 0, 1}, // 4
    {0, 1, 0, 0, 1, 0, 0, 1}, // 5
    {0, 1, 0, 0, 0, 0, 0, 1}, // 6
    {0, 0, 0, 1, 1, 1, 1, 1}, // 7
    {0, 0, 0, 0, 0, 0, 0, 1}, // 8
    {0, 0, 0, 0, 1, 0, 0, 1}, // 9
    {0, 0, 0, 0, 0, 1, 0, 1}, // A
    {1, 1, 0, 0, 0, 0, 0, 1}, // B
    {0, 1, 1, 0, 0, 0, 1, 1}, // C
    {1, 0, 0, 0, 0, 1, 0, 1}, // D
  };
 
  if ((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'D')) {
    // Dapatkan indeks digit (0-9) dari karakter
    int index = (ch <= '9') ? (ch - '0') : (ch - 'A' + 10);
    
    // Tulis pola ke pin segmen
    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 1 Kondisi5
Button baris 3 kolom 2 menampilkan angka 2

5. Video Simulasi [Kembali]



7. Download File [Kembali]

Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

MODUL 4

Modul 4 [menuju akhir] [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Percobaan Percob...