Kamis, 28 Maret 2024

Laporan Akhir 1 M2

 



Laporan Modul 2
(Percobaan 3)

1. Prosedur 
[Kembali]

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

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Arduino Uno




2. Dip Switch






3. 7-Segment



4. Kabel Jumper


 5. Breadboard



 6. Resistor



Diagram Blok  :


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi Setelah di Running:



Prinsip Kerja : 

    Pada percobaan ini, kita menggunakan dip beberapa komponen yaitu 7-Segment 2 Digit, Dip Switch, Resistor, Arduino UNO, BreadBoard dan beberapa Kabel Jumper. Pada inputan kita menggunakan Dip Switch dan untuk output berupa 7-Segment 2 Digit. Kaki Pin Dip Switch dihubungkan ke kaki A0-A3 pada Arduino, sedangkan Kaki Pin 7-segment 2 Digit hubungkan ke pin 4-13 Arduino.

Setelah Hardware sudah dirangkai lalu inputkan Program yang telah kita siapkan sebelumnya ke Arduino Uno melalui Arduino IDE

Pada Program Arduino terdapat beberapa kondisi yaitu :

 

a.       Apabila Switch 1 ditekan, 7-Segment akan menampilkan Counting Up (Perhitungan ke Atas) namun dengan kondisi Digit pada  7-Segment akan selalu berganti ganti antara kedua Digitnya pada setiap 1 Angka

 

b.      Apabila Switch 2 ditekan, 7-Segment akan menampilkan Counting Down (Perhitungan ke Bawah) maka program akan menampilkan angka dari 0 hingga 9 secara berurutan pada display tujuh segmen dalam 1 Digit


c.       Apabila Switch 1 ditekan, 7-Segment akan menampilkan Counting Up (Perhitungan ke Atas) namun dengan kondisi Digit pada  7-Segment akan selalu berganti ganti antara kedua Digitnya pada setiap 1 Angka. Bedanya dengan kondisi 1 adalah pada kondisi 3 terdapat debouncing selama 2 detik

 

d.      Apabila Switch 2 ditekan, 7-Segment akan menampilkan Counting Down (Perhitungan ke Bawah) maka program akan menampilkan angka dari 0 hingga 9 secara berurutan pada display tujuh segmen dalam 1 Digit. Bedanya dengan kondisi 1 adalah pada kondisi 3 terdapat debouncing selama 2 detik dan juga delay selama 200ms


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] = {
  {0, 0, 0, 0, 0, 0, 1}, // 0
  {1, 0, 0, 1, 1, 1, 1}, // 1
  {0, 0, 1, 0, 0, 1, 0}, // 2
  {0, 0, 0, 0, 1, 1, 0}, // 3
  {1, 0, 0, 1, 1, 0, 0}, // 4
  {0, 1, 0, 0, 1, 0, 0}, // 5
  {0, 1, 0, 0, 0, 0, 0}, // 6
  {0, 0, 0, 1, 1, 1, 1}, // 7
  {0, 0, 0, 0, 0, 0, 0}, // 8
  {0, 0, 0, 0, 1, 0, 0}  // 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) {
    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 > 2000) { // 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 > 2000) { // Debouncing
        lastTime = millis();
        digitalWrite(D2, HIGH);
        digitalWrite(D1, LOW);
        for (int i = 9; i >= 0; i--) {
            number(i);
            delay(200); // Delay agar Anda bisa melihat perubahan digit
        }
    }
}
}


5. Kondisi [Kembali]

Percobaan 3
Timer Arduino

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