Tugas Pendahuluan 2




1. Foto Hardware dan Diagram Blok [Kembali]

        1. Arduino Uno

        2. Push Button

        3. 7 Segment


        4. Power Supply


     5. Ground




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] = {
{'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] = {12, 11, 10, 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. Jadi apabila kita menekan tombol pada keypad maka akan dimunculkan tulisan tombol tersebut di 7-segment. 
Dengan kondisi yang diinginkan berupa tombol pertama akan menampilkan display angka 3 (bukan angka 1), maka disini saya mengubah output yang diinginkan dengan memvariasikan urutan column sehingga yang awalnya dengan urutan pin arduino dari 10-13, menjadi pin 12 yang berperan sebagai kolom pertama. Jadi apabila kita menekan button baris 1 kolom 1, maka display 7-segment akan tertulis "3" selama 1 detik sebelum menghapusnya kembali.

4. Flowchart dan Listing Program [Kembali]




Listing Program:

#include 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] = {12, 11, 10, 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 Kondisi 1 : "Button baris 1 kolom 1 menampilkan angka 3"









Posting Komentar

0 Komentar