Senin, 25 Maret 2024




MODUL 2
PERCOBAAN 3 KONDISI 7

1. Prosedur
[Kembali]

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. 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]

a. 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[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




5. Kondisi [Kembali]

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

Mikro 2024 Modul  4 [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI     1. Pendahuluan     2. Tujuan     3. Alat dan Bahan     4. Dasar...