MODUL 2
PERCOBAAN 3 KONDISI 7
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.
2. Hardware dan diagram blok
[Kembali]
Hardware:
1. Arduino Uno
2. Dip Switch
3. 7 Segment 2 Digit
4. Resistor
Block Diagram:
3. Rangkaian Simulasi dan Prinsip kerja
[Kembali]
→Gambar Rangkaian Sebelum Disimulasikan
→Gambar Rangkaian Setelah Disimulasikan
PRINSIP KERJA
Rangkaian ini terdiri dari 4 buah kompnen yaitu Arduino, 7-Segment 2 digit, Dipswitch, dan Resistor. 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.
Program ini dirancang untuk mengelola display angka dan huruf pada 7-Segment dengan memanfaatkan timer. Pin-pin switch disetel sebagai INPUT_PULLUP, dan rangkaian dilengkapi dengan Pull-Up Resistor. Ketika switch diaktifkan, arus akan mengalir ke ground, menghasilkan input LOW dari DIP-SW ke Arduino Uno. Pin yang terhubung ke segmen tujuh, titik desimal, dan dua pin kontrol digit disetel sebagai OUTPUT. Pin switch (Dsw1, Dsw2, Dsw3, Dsw4) juga disetel sebagai INPUT_PULLUP, yang berarti mereka akan membaca HIGH ketika tidak ditekan. Fungsi `void number` digunakan untuk menampilkan angka pada 7-Segment dengan parameter integer dari 0 hingga 13.
Dalam loop utama, program membaca status tombol switch (sw1, sw2, sw3, sw4). Jika tiga tombol switch aktif, program akan menampilkan "DTE" secara bergantian pada tiga digit dengan jeda 500 milidetik. Jika tidak ada atau lebih dari tiga tombol switch aktif, angka 1, 2, dan 3 akan ditampilkan secara bergantian pada dua digit dengan jeda yang sama. Jika hanya satu atau dua tombol switch aktif, program akan menampilkan hitungan maju dari angka 1 hingga 3.
4. FlowChart
[Kembali]
#define a 6
#define b 7
#define c 8
#define d 9
#define e 10
#define f 11
#define g 12
#define dp 13
#define D1 4
#define D2 5
#define Dsw1 A0
#define Dsw2 A1
#define Dsw3 A2
#define Dsw4 A3
bool sw1, sw2, sw3, sw4;
int segments[] = {a, b, c, d, e, f, g};
byte digitPatterns[14][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1}, // 9
{0, 1, 1, 1, 1, 0, 1}, // D
{0, 0, 0, 1, 1, 1, 1}, // T
{1, 0, 0, 1, 1, 1, 1}, // E
};
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segments[i], OUTPUT);
}
pinMode(dp, OUTPUT);
pinMode(D1, OUTPUT);
pinMode(D2, OUTPUT);
pinMode(Dsw1, INPUT_PULLUP);
pinMode(Dsw2, INPUT_PULLUP);
pinMode(Dsw3, INPUT_PULLUP);
pinMode(Dsw4, INPUT_PULLUP);
Serial.begin(9600);
}
void number(int display) {
if (display >= 0 && display <= 13) {
for (int i = 0; i < 7; i++) {
digitalWrite(segments[i], digitPatterns[display][i]);
}
}
}
void loop() {
sw1 = digitalRead(Dsw1);
sw2 = digitalRead(Dsw2);
sw3 = digitalRead(Dsw3);
sw4 = digitalRead(Dsw4);
// Check if exactly three switches are active
if (sw4 && !sw1 && !sw2 && !sw3) {
digitalWrite(D1, LOW);
digitalWrite(D2, HIGH);
number(10); // Display "D" on the first digit
delay(500);
digitalWrite(D1, HIGH);
digitalWrite(D2, LOW);
number(11); // Display "T" on the second digit
delay(500);
digitalWrite(D1, LOW);
digitalWrite(D2, HIGH);
number(12); // Display "E" on the third digit
delay(500);
}
else if (sw3 && !sw1 && !sw2 && !sw4) {
digitalWrite(D1, LOW);
digitalWrite(D2, HIGH);
number(10); // Display "D" on the first digit
delay(500);
digitalWrite(D1, HIGH);
digitalWrite(D2, LOW);
number(11); // Display "T" on the second digit
delay(500);
digitalWrite(D1, LOW);
digitalWrite(D2, HIGH);
number(12); // Display "E" on the third digit
delay(500);
}
else if (sw1 && !sw2 && !sw3 && !sw4) {
digitalWrite(D1, LOW);
digitalWrite(D2, HIGH);
number(10); // Display "D" on the first digit
delay(500);
digitalWrite(D1, HIGH);
digitalWrite(D2, LOW);
number(11); // Display "T" on the second digit
delay(500);
digitalWrite(D1, LOW);
digitalWrite(D2, HIGH);
number(12); // Display "E" on the third digit
delay(500);
}
else if (sw2 && !sw1 && !sw3 && !sw4) {
digitalWrite(D1, LOW);
digitalWrite(D2, HIGH);
number(10); // Display "D" on the first digit
delay(500);
digitalWrite(D1, HIGH);
digitalWrite(D2, LOW);
number(11); // Display "T" on the second digit
delay(500);
digitalWrite(D1, LOW);
digitalWrite(D2, HIGH);
number(12); // Display "E" on the third digit
delay(500);
} else {
// Display numbers 1, 2, and 3 initially
for (int i = 1; i <= 3; i++) {
digitalWrite(D1, LOW);
digitalWrite(D2, HIGH);
number(i);
delay(500);
}
}
}
b. Flowchart
Kondisi →Percobaan 3 Kondisi 7
Ketika 3 switch aktif 7-Segment menampilkan kombinasi D,T,E setelah hitung maju hingga 3
6. Video Simulasi
[Kembali]
7. Download File
[Kembali]
Download HMTL klik disini
Download Simulasi Rangkaian klik disini
Download Video Simulasi klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet DipSW-4 klik disini
Download Datasheet Seven Segment klik disini
Tidak ada komentar:
Posting Komentar