Tugas Pendahuluan 2 Modul 1




Tugas Pendahuluan 2 Modul 1
(Percobaan 2 Kondisi 1)

1. Kondisi
 [Kembali]
  
1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.
        
2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Arduino





2. Push Button





3. Seven Segment 2 Digit






Blok Diagram :



3. Video Simulasi [Kembali]



4. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Rangkaian Simulasi :




Prinsip Kerja :
Dalam rangkaian di atas, push button diatur dalam konfigurasi matriks 4x4 yang berperan sebagai keypad untuk memasukkan angka. Baris keypad dihubungkan ke pin A4, A3, A2, dan A1 pada Arduino, sedangkan kolom keypad dihubungkan ke pin 10, 11, 12, dan 13. Mikrokontroler akan melakukan pemindaian baris secara bergantian saat salah satu push button ditekan, dan setelah baris yang ditekan teridentifikasi, pemindaian akan dilanjutkan ke setiap kolom untuk mengetahui push button mana yang ditekan dalam baris tersebut. Dengan informasi ini, mikrokontroler dapat mengonversi posisi push button yang ditekan menjadi angka yang sesuai dengan kondisi yang telah ditetapkan. Misalnya, saat Button Baris 1 Kolom 1 ditekan, mikrokontroler akan menampilkan angka 3 pada seven segment yang terhubung ke pin 9, 8, 7, 6, 5, 4, 3, dan 2 pada Arduino.

4. Flowchart dan Listing Program [Kembali]

Flowchart :




Listing Program :

//Percobaan 2
#include <Keypad.h>
const byte ROWS = 4; // Four rows
const byte COLS = 4; // Fou columns
char keys[ROWS][COLS] = {
 {'3','2','1','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. Link Download [Kembali]
Download HMTL klik disini
Download Simulasi Rangkaian klik disini


















Tidak ada komentar:

Posting Komentar