Percobaan II
1. Prosedur [Kembali]
1. Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
2. Buat program menggunakan Arduino IDE.
3. Compile program yang telah dibuat lalu Upload ke dalam Arduino Uno.
4. Uji coba program pada rangkaian percobaan sesuai dengan kondisi yang diinginkan.
5. Selesai
2. Hardware dan Diagram Blok [Kembali]
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Prinsip kerja:
Pada rangkaian percobaan diatas, kita menggunakan keypad sebagai inputan dan seven segmen sebagaimana output. kaki input keypad dipasang dengan pin arduino dengan rincian baris pada pin A4, A3, A2, A1 dan kolom pada pin 10, 11, 12, 13. kemudian seven segmen terpasang pada pin 9, 8, 7, 6, 5, 4, 3, 2, arduino. sehingga bisa disimpulkan kita menggunakan keypad 4 x 4 sebagai inputan dan seven segmen 2 digit sebagai output.
ketika button atau keypad ditekan, maka mikrokontroler akan memindai baris dan kolom mana yang menyala sehingga akan mendapatkan informasi yang akan ditampilkan di seven segmen sesuai dengan library keypad dan perintah pada program.
Flowchart :
Listing Program :
Listing Program :
// Memasukkan library Keypad untuk memudahkan interaksi dengan keypad#include <Keypad.h>
// Mendefinisikan jumlah baris dan kolom pada keypadconst byte ROWS = 4; // Empat barisconst byte COLS = 4; // Empat kolom
// Mendefinisikan tata letak tombol pada keypadchar keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'}};
// Menetapkan pin yang terhubung ke baris dan kolom pada keypadbyte rowPins[ROWS] = {A4, A3, A2, A1}; // Pin baris terhubung ke A4, A3, A2, A1byte colPins[COLS] = {10, 11, 12, 13}; // Pin kolom terhubung ke 10, 11, 12, 13
// Membuat objek keypadKeypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
// Mendefinisikan pin yang terhubung ke segmen-segmen pada seven-segment displayconst int segmentPins[] = {9, 8, 7, 6, 5, 4, 3, 2};
// Fungsi setup, dijalankan sekali saat sketch dimulaivoid setup() { // Mengatur pin segmen sebagai output for (int i = 0; i < 8; i++) { pinMode(segmentPins[i], OUTPUT); }}
// Fungsi loop, dijalankan berulang setelah setupvoid loop() { // Mendapatkan tombol yang ditekan char key = keypad.getKey();
// Jika ada tombol yang ditekan if (key) { // Menampilkan karakter pada seven-segment display displayCharacter(key); // Menunggu selama 1 detik delay(1000); // Membersihkan display clearDisplay(); }}
// Fungsi untuk menampilkan karakter pada seven-segment displayvoid displayCharacter(char ch) { // Pola segmen untuk menampilkan karakter byte patterns[][9] = { // Definisi pola segmen untuk setiap karakter yang bisa ditampilkan };
// Cek apakah karakter merupakan angka atau huruf yang valid if ((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'D')) { // Menghitung index berdasarkan karakter int index = (ch <= '9') ? (ch - '0') : (ch - 'A' + 10); // Menyalakan segmen yang sesuai untuk menampilkan karakter for (int i = 0; i < 7; i++) { digitalWrite(segmentPins[i], patterns[index][i]); } }}
// Fungsi untuk membersihkan displayvoid clearDisplay() { // Mematikan semua segmen for (int i = 0; i < 8; i++) { digitalWrite(segmentPins[i], HIGH); }}
Flowchart :
Listing Program :
Listing Program :
// Memasukkan library Keypad untuk memudahkan interaksi dengan keypad
#include <Keypad.h>
// Mendefinisikan jumlah baris dan kolom pada keypad
const byte ROWS = 4; // Empat baris
const byte COLS = 4; // Empat kolom
// Mendefinisikan tata letak tombol pada keypad
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
// Menetapkan pin yang terhubung ke baris dan kolom pada keypad
byte rowPins[ROWS] = {A4, A3, A2, A1}; // Pin baris terhubung ke A4, A3, A2, A1
byte colPins[COLS] = {10, 11, 12, 13}; // Pin kolom terhubung ke 10, 11, 12, 13
// Membuat objek keypad
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
// Mendefinisikan pin yang terhubung ke segmen-segmen pada seven-segment display
const int segmentPins[] = {9, 8, 7, 6, 5, 4, 3, 2};
// Fungsi setup, dijalankan sekali saat sketch dimulai
void setup() {
// Mengatur pin segmen sebagai output
for (int i = 0; i < 8; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
// Fungsi loop, dijalankan berulang setelah setup
void loop() {
// Mendapatkan tombol yang ditekan
char key = keypad.getKey();
// Jika ada tombol yang ditekan
if (key) {
// Menampilkan karakter pada seven-segment display
displayCharacter(key);
// Menunggu selama 1 detik
delay(1000);
// Membersihkan display
clearDisplay();
}
}
// Fungsi untuk menampilkan karakter pada seven-segment display
void displayCharacter(char ch) {
// Pola segmen untuk menampilkan karakter
byte patterns[][9] = {
// Definisi pola segmen untuk setiap karakter yang bisa ditampilkan
};
// Cek apakah karakter merupakan angka atau huruf yang valid
if ((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'D')) {
// Menghitung index berdasarkan karakter
int index = (ch <= '9') ? (ch - '0') : (ch - 'A' + 10);
// Menyalakan segmen yang sesuai untuk menampilkan karakter
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], patterns[index][i]);
}
}
}
// Fungsi untuk membersihkan display
void clearDisplay() {
// Mematikan semua segmen
for (int i = 0; i < 8; i++) {
digitalWrite(segmentPins[i], HIGH);
}
}
Percobaan 2
- HTML klik disini
- Video Percobaan klik disini
- Listing Program klik disini
- datasheet arudino klik disini
- Datasheet keypad klik disini
- Datasheet 7-Segment klik disini
- HTML klik disini
- Video Percobaan klik disini
- Listing Program klik disini
- datasheet arudino klik disini
- Datasheet keypad klik disini
- Datasheet 7-Segment klik disini
Tidak ada komentar:
Posting Komentar