LA1

 



Percobaan 2
Keypad & 7-Segment

1. Foto Hardware dan Diagram Blok [Kembali]

   


Gambar 1. Rangkaian Hardware
 

   1. Arduino Uno

    2. Keypad


    3. LCD


    4. Kabel jumper

    5. Breadboard


Diagram Blok:

2. Prosedur Percobaan  [Kembali]

1. Susun semua komponen.
2. Buat program menggunakan aplikasi Arduino IDE.
3. Unggah program ke Arduino setelah selesai.
4. Jalankan program pada simulasi dan uji dengan modul.


Rangkaian Simulasi
  



Prinsip Kerja

Rangkaian ini terdiri dari beberapa komponen, termasuk mikrokontroler (ATMEGA328P-PU), push button, dan 7-segment. Prinsip kerja rangkaian ini adalah bahwa push button, yang mewakili keypad 4x4, bertindak sebagai input, sementara 7-segment bertindak sebagai output. Ada sebuah array matriks 4x4 yang merepresentasikan layout keypad dalam program Arduino, di mana setiap karakter terkait dengan tombol pada keypad. Jadi, ketika tombol pada keypad ditekan, karakter tersebut akan ditampilkan pada 7-segment. Misalnya, jika tombol pada baris 2 kolom 2 ditekan, 7-segment akan menampilkan "C" selama 1 detik sebelum kembali kosong. Hal yang sama berlaku untuk tombol "#" (pound), "*", dan tombol 0-9.

4. Flowchart dan Listing Program [Kembali]

Flowchart


http://www.plantuml.com/plantuml/png/LP31JiCm44Jl-nLpStBamALHfKgjXFWCGpPqXREsOXTalfvD33Ji8LBcpLYZEUNYbtAR0pbSU19bR0fodLzYeEs7wF2iKiG7-JBERpDhGHBDmp_opZNvSI3wl4fWT6MvSG_9w4ACgIVO7Pwuh4PCIvp_4h2J2TqAZaUuHzUZN5dHLSujk8KlabFm5Uxi41MPFrX_2mqx6w-c1oElKSSTE0Vs2yRsIjDPHvd8lgtqJzNx74RkOyH49nDihsy0
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] = { {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]

Ketika keypad ditekan maka akan dibaca oleh Arduino dan, arduino akan memberikan perintah untuk menampilkan nilai yang ditekan tersebut pada Seven Segmen.


    Download HTML
   
Download Program
   
Download Video Simulasi
    Download Gambar simulasi
   

No comments:

Post a Comment

almajri

  Bahan Presentasi Ini Dibuat Untuk Memenuhi  Tugas Mata Kuliah Sistem Digital Dosen : Darwison, M.T Oleh : ALMAJRI KUSMAIDI 2110952003 Ju...