Laporan Akhir 2 uP dan uC (Modul 2)




Modul 2
Percobaan 3

1. Prosedur
[Kembali]
1. Rangkai komponen sesuai percobaan dan kondisi yang dipilih.

2. Buat program menggunakan Arduino IDE.

3. Compile program yang telah dibuat lalu Upload ke dalam Arduino Uno.

4. Uji coba program pada rangkaian percobaan sesuai dengan kondisi yang diinginkan.

5. Selesai

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1.Arduino


2.Dipswitch


3.7 Segment 2 Digit


Diagram Blok :

3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Rangkaian Simulasi :



Prinsip Kerja :

Rangkaian ini terdiri dari 3 buah kompnen yaitu Arduino, 7-Segment 2 digit, dan Dipswitch 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.  dipswitch dihubungkan ke ground yang menandakan bahwa dipswitch dalam keadaan pull up yaitu 

Ketika 2 buah dipswitch on, maka arduino akan mengeluarkan output berupa counting pada 7-segment dari angka 15 hingga 0 lalu reset counting lagi ke 15. karena 7-segement ini tidak bisa menampilkan 2 digit angka sekaligus maka, kami memprogram pada arduino, dimana ketika countingnya diatas atau sama dengan 10, maka angka puluhan dan angka satuannya akan tampil secara berseling pada kedua display 7 segment dengan delay waktu yang cukup singkat. namun ketika countingnya dibawah 10, maka 7-segment yang dikiri akan mati, dan hanya akan menampilkan digit pada 7-segment dikanan. Jika Dipswitch yang aktif lebih dari 2 atau kurang dari 2, maka tidak akan terjadi proses counting

4. Flowchart dan Listing Program [Kembali]

Flowchart :





Listing Program :

// Mendefinisikan pin-pin yang terhubung ke segmen-segmen pada display 7-segmen
#define a 4
#define b 5
#define c 9
#define d 12
#define e 11
#define f 8
#define g 13
#define dp 10 // Pin untuk decimal point (titik desimal)
#define D1 7 // Pin untuk digit pertama
#define D2 6 // Pin untuk digit kedua

// Mendefinisikan pin-pin yang digunakan untuk membaca input dari switch (tombol)
#define Dsw1 A0
#define Dsw2 A1
#define Dsw3 A2
#define Dsw4 A3

// Mendeklarasikan variabel untuk menyimpan status switch (tombol)
bool sw1,sw2,sw3,sw4;

// Array untuk menyimpan pin-pin yang terhubung ke segmen-segmen display
int segments[] = {a,b,c,d,e,f,g};

// Array 2 dimensi untuk menentukan pola yang dinyalakan pada setiap angka 0-9
byte digitPatterns[10][7] = {
  //a, b, c, d, e, f, g
  {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() {
  // Mengatur pin-pin segmen sebagai output
  for (int i = 0; i < 7; i++) {
    pinMode(segments[i], OUTPUT);
  }
  // Mengatur pin untuk titik desimal dan digit sebagai output
  pinMode(dp, OUTPUT);
  pinMode(D1, OUTPUT);
  pinMode(D2, OUTPUT);

  // Mengatur pin-pin switch sebagai input dengan pull-up resistor
  pinMode(Dsw1, INPUT_PULLUP);
  pinMode(Dsw2, INPUT_PULLUP);
  pinMode(Dsw3, INPUT_PULLUP);
  pinMode(Dsw4, INPUT_PULLUP);

  // Menginisialisasi komunikasi serial
  Serial.begin(9600);
}

void number(int display) {
  // Fungsi untuk menampilkan angka pada display 7-segmen berdasarkan pola yang didefinisikan
  if (display >= 0 && display <= 9) {
    for (int i = 0; i < 7; i++) {
      digitalWrite(segments[i], digitPatterns[display][i]);
    }
  }
}

void loop() {
  // Membaca status dari setiap tombol
  int sw1 = digitalRead(Dsw1);
  int sw2 = digitalRead(Dsw2);
  int sw3 = digitalRead(Dsw3);
  int sw4 = digitalRead(Dsw4);

  // Variabel statis untuk menyimpan digit yang sedang ditampilkan dan counter
  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

  // Logika untuk menangani input dari tombol dan menampilkan angka pada display
  // Termasuk debouncing untuk menghindari pembacaan ganda
  // Logika spesifik untuk setiap tombol dijelaskan dalam kondisi if-else yang sesuai
}

5. Video Demo [Kembali]



6. Kondisi [Kembali]

Percobaan 3
    Ketika 2 switch aktif 7-Segment menghitung mundur dari 15

7. Download File [Kembali]

HTML                                klik disini
Video Percobaan                klik disini
Listing Program                 klik disini
Datasheet Arduino             klik disini
Datasheet Dipswitch          klik disini
Datasheet & segment         klik disini

Tidak ada komentar:

Posting Komentar

Modul 4 Praktikum uP dan uC

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