TP 1 MODUL 1
Percobaan 2 Kondisi 7
Keypad & Seven Segment
1. Prosedur [Kembali]
- Rangkai semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai masukkan program ke arduino
- Jalankan program pada simulasi dan cobakan sesuai kondisi
- Rangkaian
- Prinsip Kerja
Pada percobaan 2 Kondisi 7 bahwa saat menekan tombol baris 1 kolom 4 akan muncul a pada seven segment.
Maka prinsip kerja dari keypad yang dihubungkan pada analog input pada Arduino A1 - A4 dan output akan ditampilkan pada seven segment yang dihubungkan pada digital output pada arduino dengan memasukkan program pada bawah ini maka saat kita menekan tombol baris 1 kolom 4 maka akan muncul a pada seven segment
- 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','6','B'}, // Layout keypad 4x4
{'7','8','9','C'},
{'*','0','#', 'D'}
};
byte rowPins[ROWS] = {A4, A3, A2, A1}; // Hubungkan dengan pin baris keypad
byte colPins[COLS] = {10, 11, 12, 13}; // Hubungkan dengan pin kolom keypad
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
const int segmentPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // Hubungkan dengan pin-pins segment seven-segment display
void setup() {
for (int i = 0; i < 8; i++) {
pinMode(segmentPins[i], OUTPUT);
digitalWrite(segmentPins[i], HIGH); // Atur semua segment off (common anode)
}
}
void loop() {
char key = keypad.getKey();
if (key) {
displayCharacter(key);
delay(1000);
clearDisplay();
}
}
void displayCharacter(char ch) {
// Definisikan pola segment untuk setiap digit (0-9)
// Contoh: Menampilkan '1'
// A
// F B
// G
// E C
// D
byte patterns[][8] = {
{0, 0, 0, 0, 0, 0, 1}, // 0
{1, 0, 0, 1, 1, 1, 1}, // 1
{0, 0, 1, 0, 0, 1, 0}, // 2
{0, 0, 0, 0, 1, 1, 0}, // 3
{1, 0, 0, 1, 1, 0, 0}, // 4
{0, 1, 0, 0, 1, 0, 0}, // 5
{0, 1, 0, 0, 0, 0, 0}, // 6
{0, 0, 0, 1, 1, 1, 1}, // 7
{0, 0, 0, 0, 0, 0, 0}, // 8
{0, 0, 0, 0, 1, 0, 0}, // 9
{0, 0, 0, 0, 0, 1, 0}, // A
{1, 1, 0, 0, 0, 0, 0}, // B
{0, 1, 1, 0, 0, 0, 1}, // C
{1, 0, 0, 0, 0, 1, 0} // D
};
int index;
if (ch >= '0' && ch <= '9') {
index = ch - '0';
} else if (ch >= 'A' && ch <= 'D') {
index = ch - 'A' + 10;
} else {
return;
}
// Tulis pola ke pin-pin segment
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); // Matikan semua segment
}
}
tombol baris 1 kolom 4 akan muncul a
x HTML klik disini
Simulasi klik disini
Gambar Simulasi klik disini
Video Simulasi klik disini
Listring Program klik disini
Video Simulasi klik disini
Listring Program klik disini
Komentar
Posting Komentar