Laporan Akhir 2 uP dan uC Modul 2
Tugas Pendahuluan 2 Modul 2
(Percobaan 3 )
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]
4. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Pertama-tama, tekan tombol untuk memasukkan nomor pada keypad matriks 4x4. Baris keypad terhubung ke pin A4, A3, A2, dan A1 pada Arduino, sementara kolom keypad terhubung ke pin 10, 11, 12, dan 13. Push button bisa digunakan untuk menekan tombol. Setelah baris teridentifikasi, mikrokontroler akan memindai kolom untuk menentukan tombol yang ditekan. Pengontrol gelombang mikro bisa digunakan untuk memulai informasi dengan menekan tombol dan diakses melalui input keypad. Keypad 7 segmen terhubung ke pin 9, 8, 7, 6, 5, 4, 3, dan 2 pada Arduino.
Flowchart :
Listing Program :
// Mendefinisikan pin-pin yang terhubung ke segmen-segmen pada display 7-segmen
#define a 4
#define b 5
#define c 9
#define d 12
#define e 11
#define f 8
#define g 13
#define dp 10 // Pin untuk decimal point (titik desimal)
#define D1 7 // Pin untuk digit pertama
#define D2 6 // Pin untuk digit kedua
// Mendefinisikan pin-pin yang digunakan untuk membaca input dari switch (tombol)
#define Dsw1 A0
#define Dsw2 A1
#define Dsw3 A2
#define Dsw4 A3
// Mendeklarasikan variabel untuk menyimpan status switch (tombol)
bool sw1,sw2,sw3,sw4;
// Array untuk menyimpan pin-pin yang terhubung ke segmen-segmen display
int segments[] = {a,b,c,d,e,f,g};
// Array 2 dimensi untuk menentukan pola yang dinyalakan pada setiap angka 0-9
byte digitPatterns[10][7] = {
//a, b, c, d, e, f, g
{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
};
void setup() {
// Mengatur pin-pin segmen sebagai output
for (int i = 0; i < 7; i++) {
pinMode(segments[i], OUTPUT);
}
// Mengatur pin untuk titik desimal dan digit sebagai output
pinMode(dp, OUTPUT);
pinMode(D1, OUTPUT);
pinMode(D2, OUTPUT);
// Mengatur pin-pin switch sebagai input dengan pull-up resistor
pinMode(Dsw1, INPUT_PULLUP);
pinMode(Dsw2, INPUT_PULLUP);
pinMode(Dsw3, INPUT_PULLUP);
pinMode(Dsw4, INPUT_PULLUP);
// Menginisialisasi komunikasi serial
Serial.begin(9600);
}
void number(int display) {
// Fungsi untuk menampilkan angka pada display 7-segmen berdasarkan pola yang didefinisikan
if (display >= 0 && display <= 9) {
for (int i = 0; i < 7; i++) {
digitalWrite(segments[i], digitPatterns[display][i]);
}
}
}
void loop() {
// Membaca status dari setiap tombol
int sw1 = digitalRead(Dsw1);
int sw2 = digitalRead(Dsw2);
int sw3 = digitalRead(Dsw3);
int sw4 = digitalRead(Dsw4);
// Variabel statis untuk menyimpan digit yang sedang ditampilkan dan counter
static int digit = 1; // Digit yang sedang ditampilkan (1 atau 2)
static int count = 0; // Counter untuk digit
static unsigned long lastTime = 0; // Waktu terakhir pembacaan tombol
// Logika untuk menangani input dari tombol dan menampilkan angka pada display
// Termasuk debouncing untuk menghindari pembacaan ganda
// Logika spesifik untuk setiap tombol dijelaskan dalam kondisi if-else yang sesuai
}
}
5. Link Download [Kembali]
HTML klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet arduino klik disini
Datasheet keypad klik disini
Datasheet 7-Segment klik disini




.png)

Tidak ada komentar:
Posting Komentar