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

Kontrol Tanaman Bayam

Tugas Besar - Kontrol Hidroponik Tanaman Mint

Modul 1 Praktikum Sistem Digital