Senin, 25 Maret 2024

Tugas Pendahuluan 2 M2




 Modul 2
(Percobaan 3 Kondisi 4)

1. Prosedur
[Kembali]

1. Siapkan semua komponen yang akan di rangkai pada proteus
2. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
3. Buat program di arduino di software Arduino IDE.
4. Compile program tersebut dan upload ke dalam arduino pada proteus
5. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.
6. Finish

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1.  Arduino Uno



2. Resistor



3. Seven Segment 2 Digit




4. Dip Switch




Diagram Blok  :




3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi Sebelum dirunning:



Rangkaian Simulasi Setelah dirunning:



Prinsip Kerja : 

Pada percobaan kali ini, Dip switch berperan sebagai inputan dan Seven segment 2 digit akan berperan sebagai output. Dip switch dihubungkan ke kaki A0-A3 arduino, lalu pada outputnya yaitu 7-segment 2 digit yang dihubungkan ke pin 4-13 Arduino. Seuai dengan kondisi kodingan program yaitu untuk mengontrol dan menampilkan angka pada 7-segment. 

Pada kodingan yang dibuat pada arduino memiliki empat kondisi kemungkinan yaitu : pertama, jika tombol sw1, sw2, dan sw3 ditekan secara bersamaan, display akan menampilkan angka secara berurutan. Kedua, jika hanya tombol sw1 yang ditekan, angka akan berubah satu per satu setiap detik. Ketiga, jika hanya tombol sw2 yang ditekan, angka pada display akan melakukan counting dari 9 hingga 0. Lalu jika hanya tombol sw3 yang ditekan, angka akan berubah satu per satu dengan jeda waktu yang lebih cepat. Selain itu, jika tombol sw4 ditekan, display akan menampilkan urutan angka 3, 2, 1, dan 0 dan setelah itu, akan muncul angka 2, 0, 0, 3. Dengan kondisi yang diberikan, ketika 1 switch aktif (switch 4), maka sevens egment akan menampilkan kombinasi 2, 0, 0, 3 setelah hitung mundur dari 3.

4. Flowchart dan Listing Program [Kembali]

Flowchart :



Listing Program :

#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[10][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
};
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 <= 9)
    {
        for (int i = 0; i < 7; i++)
        {
            digitalWrite(segments[i], digitPatterns[display][i]);
        }
    }
}
void loop()
{
    int sw1 = digitalRead(Dsw1);
    int sw2 = digitalRead(Dsw2);
    int sw3 = digitalRead(Dsw3);
    int sw4 = digitalRead(Dsw4);
    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
    if (sw1 == LOW && sw2 == LOW && sw3 == LOW) {
        if (millis() - lastTime > 1000) { // Debouncing
            lastTime = millis();
            count++;
            if (count > 9) {
                count = 0;
            }
            if (digit == 1) {
                digitalWrite(D1, HIGH);
                digitalWrite(D2, LOW);
                number(count);
                digit = 2;
            } else {
                digitalWrite(D1, LOW);
                digitalWrite(D2, HIGH);
                number(count);
                digit = 1;
            }
        }
    }else if (sw1 == LOW) {
     if (millis() - lastTime > 1000) { // Debouncing
     lastTime = millis();
     count++;
     if (count > 9) {
     count = 0;
     }
     if (digit == 1) {
     digitalWrite(D1, HIGH);

     digitalWrite(D2, LOW);
     number(count);
     digit = 2;
     } else {
     digitalWrite(D1, LOW);
     digitalWrite(D2, HIGH);
     number(count);
     digit = 1;
     }
     }
    }
    else if (sw2 == LOW) {
     if (millis() - lastTime > 1000) { // Debouncing
     lastTime = millis();
     digitalWrite(D1, HIGH);
     digitalWrite(D2, LOW);
     for (int i = 9; i >= 0; i--) {
     number(i);
     delay(1000); // Delay agar Anda bisa melihat perubahan digit
     }
     }
    }
    if (sw3 == LOW) {
     if (millis() - lastTime > 500) { // Debouncing
     lastTime = millis();
     count++;
     if (count > 9) {
     count = 0;
     }
     if (digit == 1) {
     digitalWrite(D2, HIGH);
     digitalWrite(D1, LOW);
     number(count);
     digit = 2;
     } else {
     digitalWrite(D2, LOW);
     digitalWrite(D1, HIGH);
     number(count);
     digit = 1;
     }
     }
    }

    else if (sw4 == LOW) {
    if (millis() - lastTime > 500) { // Debouncing
        lastTime = millis();
        digitalWrite(D2, HIGH);
        digitalWrite(D1, LOW);
        for (int i = 3; i >= 0; i--) {
            number(i);
            delay(200); // Delay agar Anda bisa melihat perubahan digit
        }
        delay(1000); // Jeda 1 detik

        // Menampilkan angka 2, 0, 0, 3 dengan jeda masing-masing angka 0.2 detik
        int numbers[] = {2, 0, 0, 3};
        for (int i = 0; i < 4; i++) {
            number(numbers[i]);
            delay(200); // Jeda 0.2 detik setiap angka
        }
    }
}
}

5. Kondisi [Kembali]

Percobaan 3 Kondisi 4
Ketika 1 switch aktif 7-Segment akan menampilkan kombinasi 2,0,0,3 setelah hitung mundur dari 3

6. Video Simulasi [Kembali]




7. Download File [Kembali]

Download Rangkaian Simulasi Klik Disini

Download HTML Klik Disini

Download Video Percobaan Klik Disini

Download Kodingan Program Klik Disini

Download Datasheet Arduino Klik Disini

Download Datasheet Dip Switch Klik Disini

Download Datasheet 7-Segment  Klik Disini









Tidak ada komentar:

Posting Komentar

Jawaban UTS No.3 Up

     [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Tujuan 2. Alat dan Bahan 3. Dasar Teori 4. Percobaan 5. File Download   Jawaban No.3 1. Tu...