Tugas Pendahuluan 2 Modul 1
(Percobaan 2 Kondisi 1)
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.
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Pada rangkaian dalam keypad diatas, digunakan push button yang diatur seperti keypad 4x4 sebagai input untuk memasukkan angka (keypad 4x4 dapat diatur didalam kodingan arduino). Push button tersusun dalam matriks 4 baris dan 4 kolom. Push button tersebut dihubungkan ke arduino dengan 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 katoda 2 digit dihubungkan ke pin 9, 8, 7, 6, 5, 4, 3, 2 pada arduino yang kita pakai. Prinsip kerjanya, ketika salah satu push button ditekan yang berperan sebagai keypad, maka mikrokontroler akan membaca setiap baris secara bergantian untuk mendeteksi push button yang ditekan, dan setelah baris yang ditekan teridentifikasi, mikrokontroler memindai setiap kolom untuk mengetahui push button mana yang ditekan dalam baris tersebut. Dengan informasi tersebut, mikrokontroler dapat mengonversi posisi push button yang ditekan menjadi angka yang sesuai dan yang telah disesuaikan dengan kodingan yang digunakan, pada kondisi yang didapat yaitu Button Baris 1 kolom 1 akan menampilkan angka 3, maka huruf yang telah didapat kemudian ditampilkan pada seven segment dengan mengontrol setiap digit pada seven segment untuk menampilkan output yang benar dan sesuai dengan kondisi yang sudah dibuat
4. Flowchart dan Listing Program
[Kembali]
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
{0, 0, 0, 0, 1, 1, 0, 1}, // 3
{1, 0, 0, 1, 1, 1, 1, 1}, // 1
{0, 0, 1, 0, 0, 1, 0, 1}, // 2
{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);
}
}
Percobaan 2 Kondisi 1
Button baris 1 kolom 1 menampilkan angka 3
6. Video Simulasi
[Kembali]
7. Download File
[Kembali]
File Rangkaian klik disini
Video Percobaan klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Button klik disini
Tidak ada komentar:
Posting Komentar