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]
Hardware :
1.Arduino
2.Dipswitch
3.7 Segment 2 Digit
Diagram Blok :
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Rangkaian ini terdiri dari 3 buah kompnen yaitu Arduino, 7-Segment 2 digit, dan Dipswitch Dipswith berguna sebagai input dari Arduino yang dihubungkan ke kaki A0-A3 arduino. sedangkan untuk outputnya yaitu 7-segment 2 digit yang masing masing pinnya dihubungkan ke pin 4-13 Arduino. dipswitch dihubungkan ke ground yang menandakan bahwa dipswitch dalam keadaan pull up yaitu
Ketika 2 buah dipswitch on, maka arduino akan mengeluarkan output berupa counting pada 7-segment dari angka 15 hingga 0 lalu reset counting lagi ke 15. karena 7-segement ini tidak bisa menampilkan 2 digit angka sekaligus maka, kami memprogram pada arduino, dimana ketika countingnya diatas atau sama dengan 10, maka angka puluhan dan angka satuannya akan tampil secara berseling pada kedua display 7 segment dengan delay waktu yang cukup singkat. namun ketika countingnya dibawah 10, maka 7-segment yang dikiri akan mati, dan hanya akan menampilkan digit pada 7-segment dikanan. Jika Dipswitch yang aktif lebih dari 2 atau kurang dari 2, maka tidak akan terjadi proses counting
4. Flowchart dan Listing Program
[Kembali]
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. Video Demo
[Kembali]
Percobaan 3
Ketika 2 switch aktif 7-Segment menghitung mundur dari 15
Datasheet Dipswitch klik disini
Datasheet & segment klik disini
Tidak ada komentar:
Posting Komentar