Laporan Akhir 2




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), keypad 4x4, dan 7-segment, dimana baris pada keypad dipasangkan ke kaki arduino pin A4-A1 dan kolom pada keypad dipasangkan ke kaki arduino pada pin 10-13. Sedangkan pin 9-2 arduino dipasangkan ke display 7-segment 2 digit common anode.

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

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

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. Saat kita menekan tombol pada keypad, arduino akan memindai baris dan kolom berapa yang terkati dengan tombol yang ditekan. Setelah mendapat dan mengelola informasi tersebut, maka output muncul mengikuti pattern LED yang sesuai membentuk salah satu karakter keys pada display 7-segment selama 1 detik, lalu menghapusnya kembali.

4. Flowchart dan Listing Program [Kembali]




Listing Program:

#include const byte ROWS = 4; // Four rows const byte COLS = 4; // Four 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] = { {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')) { // 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 Modul 1









Posting Komentar

0 Komentar