Tugas Pendahuluan 1 Modul 1
(Percobaan 2 Kondisi 5)
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. 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.
5. Selesai.
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Rangkaian Simulasi Sebelum dirunning:
Prinsip Kerja :
Pada konfigurasi rangkaian keypad yang dijelaskan, digunakan push button yang diatur sedemikian rupa seperti keypad 4x4 sebagai input untuk memasukkan angka (keypad 4x4 dapat dikonfigurasi melalui kode program Arduino). Push button tersebut tersusun dalam matriks dengan 4 baris dan 4 kolom. Push button ini diintegrasikan dengan Arduino, di mana baris keypad dihubungkan ke pin A4, A3, A2, A1, dan kolom keypad dihubungkan ke pin 10, 11, 12, 13. Output dari Arduino berupa 7-segment common anoda 2 digit yang dihubungkan ke pin 9, 8, 7, 6, 5, 4, 3, 2 pada Arduino yang digunakan.
Prinsip operasinya adalah saat salah satu push button yang bertindak sebagai keypad ditekan, mikrokontroler akan secara bergantian membaca setiap baris untuk mengidentifikasi push button yang ditekan. Setelah baris yang ditekan terdeteksi, mikrokontroler akan memindai setiap kolom untuk menentukan push button mana yang ditekan dalam baris tersebut. Dengan informasi tersebut, mikrokontroler dapat mengonversi posisi push button yang ditekan menjadi angka yang sesuai. Sesuai dengan kode program yang digunakan, jika kondisinya adalah Button Baris 2 kolom 3 akan menampilkan angka 7, maka angka yang diperoleh akan ditampilkan pada seven segment. Mikrokontroler mengontrol setiap digit pada seven segment untuk menampilkan output yang sesuai dan benar berdasarkan kondisi yang telah ditentukan.
4. Flowchart dan Listing Program
[Kembali]
Flowchart :
Listing Program :
//Percobaan 2
#include <Keypad.h>
const byte ROWS = 4; // Empat baris
const byte COLS = 4; // Empat kolom
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','9','7','B'}, // Layout keypad 4x4
{'6','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
}
}
Percobaan 2 Kondisi 5
Button baris 2 kolom 3 menampilkan angka 7
6. Video Simulasi
[Kembali]
7. Download File
[Kembali]
Datasheet seven segment Download
Datasheet Keypad Download
Tidak ada komentar:
Posting Komentar