Senin, 18 Maret 2024

Tugas Pendahuluan 2 - Modul 2




Percobaan 3 Kondisi 5

Ketika 2 switch aktif 7-Segment menampilkan kombinasi 2,0,2,4 setelah hitung maju hingga 3

1. Prosedur
[Kembali]
  • Rangkailah semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai, masukkan program ke arduino 
  • Jalankan program pada simulasi dan lakukan sesuai kondisi
2. Hardware dan diagram blok [Kembali]
      a. hardware
                 


                                                      
1. Arduino Uno
2. Dipswitch_4
3. Dual 7-Segment 

            b. Digram Blok





3. Rangkaian Simulasi dan Prinsip kerja [Kembali]
Gambar Rangkaian Sebelum Disimulasikan
                                    




Gambar Rangkaian Setelah Disimulasikan


                                        
PRINSIP KERJA
    Pada percobaan 2 Kondisi 7, diinstruksikan bahwa Ketika 2 switch aktif 7-Segment menampilkan kombinasi 2,0,2,4 setelah hitung maju hingga 3. Untuk menampilkan setiap output pada dual seven segmen bergantung pada dipswitch dan kodingan yang terdapat pada arduino.

angkaian ini menggunakan Arduino untuk mengendalikan display tujuh segmen dan dua tombol sebagai input. Pada setiap iterasi loop, Arduino akan membaca status tombol dan menampilkan angka 0, 1, 2, dan 3 secara berurutan. Selain itu, jika 2 switch dari 4 switch ditekan (sw1 dan sw2 atau sw3 dan sw4), Arduino akan menampilkan angka 2024 secara berulang, dengan masing-masing angka ditampilkan selama 0.5 detik. Timer millis digunakan untuk mengatur interval waktu antara setiap iterasi loop, sehingga membuat kode menjadi lebih responsif dan tidak terblokir. Prinsip kerjanya adalah membaca status tombol dan mengendalikan display berdasarkan kondisi input yang diberikan, sambil memastikan bahwa setiap iterasi loop dijalankan dalam interval waktu yang ditentukan.


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[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
};

unsigned long previousMillis = 0;
const long interval = 500;

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() {
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;

    sw1 = digitalRead(Dsw1);
    sw2 = digitalRead(Dsw2);
    sw3 = digitalRead(Dsw3);
    sw4 = digitalRead(Dsw4);

    // Menampilkan angka 0, 1, 2, dan 3 di awal output
    for (int i = 0; i <= 3; i++) {
      digitalWrite(D1, HIGH);
      digitalWrite(D2, LOW);
      number(i); // Menampilkan angka yang sedang dihitung
      delay(500); // Delay selama 0.5 detik
    }

    // Menampilkan kombinasi angka 2, 0, 2, dan 4 setelah kedua switch diaktifkan
    if ((sw1 == LOW && sw2 == LOW && sw3 == HIGH && sw4 == HIGH) ||
        (sw1 == LOW && sw2 == HIGH && sw3 == LOW && sw4 == HIGH) ||
        (sw1 == LOW && sw2 == HIGH && sw3 == HIGH && sw4 == LOW) ||
        (sw1 == HIGH && sw2 == LOW && sw3 == LOW && sw4 == HIGH) ||
        (sw1 == HIGH && sw2 == LOW && sw3 == HIGH && sw4 == LOW) ||
        (sw1 == HIGH && sw2 == HIGH && sw3 == LOW && sw4 == LOW)) {
      digitalWrite(D1, HIGH);
      digitalWrite(D2, LOW);
      number(2); // Menampilkan angka 2 pada digit pertama
      delay(500); // Delay selama 0.5 detik

      digitalWrite(D1, LOW);
      digitalWrite(D2, HIGH);
      number(0); // Menampilkan angka 0 pada digit kedua
      delay(500); // Delay selama 0.5 detik

      digitalWrite(D1, HIGH);
      digitalWrite(D2, LOW);
      number(2); // Menampilkan angka 2 pada digit pertama
      delay(500); // Delay selama 0.5 detik

      digitalWrite(D1, LOW);
      digitalWrite(D2, HIGH);
      number(4); // Menampilkan angka 4 pada digit kedua
      delay(500); // Delay selama 0.5 detik
    }
  }
}


b. Flowchart







5. Kondisi [Kembali]

Pada percobaan 2 kondisi 7 kondisi rangkaian yaitu Ketika 2 switch aktif 7-Segment menampilkan kombinasi 2,0,2,4 setelah hitung maju hingga 3

6. Video Simulasi [Kembali]
                                           

  

7. Download File [Kembali]

Rangkaian Simulasi  klik disini
Video Simulasi klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Seven Segmen klik disini

Tidak ada komentar:

Posting Komentar

MODUL 4

  [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI     1. Pendahuluan     2. Tujuan     3. Alat dan Bahan     4. Dasar Teori     5. Perc...