Tugas Pendahuluan 2 Modul 1




MODUL 1
PERCOBAAN 5 KONDISI 2
Dip Switch & Seven Segment

1. Prosedur
[Kembali]

+ Rangkai semua komponen sesuai kondisi yang dipilih
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino di proteus
+ jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
+ Selesai


3. Rangkaian Simulasi dan Prinsip kerja [Kembali]


PRINSIP KERJA
    Setiap dua switch yang diaktifkan akan menyebabkan counting dari 0 hingga 9 pada digit 1 dan 2 secara bergantian. Dalam rangkaian ini, dip switch digunakan sebagai input dan 7-segment sebagai output. Dip switch terhubung ke pin A0 pada Arduino, di mana dip switch tersebut dihubungkan ke resistor untuk mengatur arus yang melewati rangkaian. Sedangkan outputnya menggunakan 7-segment 2 digit yang terhubung ke pin 4 hingga 13. Ketika D1 dan D2 diatur dalam keadaan tinggi, 7-segment akan menampilkan penghitungan dari 0 hingga 9 dengan digit 1 dan 2 yang menyala secara bergantian. Selanjutnya, jika D1 dalam keadaan tinggi dan D2 dalam keadaan rendah, hanya digit 2 yang akan menyala, dan sebaliknya.

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 Dsw A0

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(Dsw, 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 sw = analogRead(Dsw);
  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 (sw < 1000) { // Threshold untuk memastikan switch aktif
    if (millis() - lastTime > 200) { // 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;
      }
    }
  }
}

b. Flowchart



5. Kondisi [Kembali]

Kondisi  →Percobaan 5 Kondisi 2
        Setiap 2 switch yang aktif akan melakukan counting 0 - 9 pada digit 1 dan 2 secara berseling

6. Video Simulasi [Kembali]


7. Download File [Kembali]

HTML klik disini  
Rangkaian Simulasi  klik disini
Video Simulasi   klik disini
Listing Program klik disini
Download Datasheet ARDUINO UNO klik disini

Komentar

Postingan populer dari blog ini

Modul 1 Praktikum Sistem Digital

Kontrol Tanaman Bayam

Tugas Pendahuluan 1 Modul 1