Tugas Pendahuluan 1 Modul 1




Percobaan 3 Kondisi 4
Ketika 1 switch aktif dot matrix akan menampilkan angka 5,7,7

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
  • arduino uno
  • dot matrix 8x8
  • ic max7219
  • dipswitch


     b. Digram Blok

3. Rangkaian Simulasi dan Prinsip kerja [Kembali]
  • Gambar rangkaian sebelum disimulasikan

  • Gambar rangkaian setelah disimulasikan

Prinsip Kerja :
Ketika hanya 1 switch yang dihidupkan maka dot matrix akan menampilkan angka 5 lalu 5 lagi kemudian angka 7. Dan ketika dua atau lebih switch hidup maka dot matrik tidak akan menampilkan angka. 

Hal ini disebabkan oleh fungsi pada codingan yang mana memiliki syarat bahwa ketika hanya 1 switch yang dihidupkan maka baru ditampilkan angka pada dot matrix.


4. FlowChart [Kembali]
a. Listing Program 

#include <LedControl.h>

const int numSwitches = 8;
const int switches[numSwitches] = {1, 0, A0, A1, A2, A3, A4, A5};
const int dataInPin = 13;
const int clkPin = 11;
const int csPin = 12;
const int displayDelay = 500; // Delay antara tampilan angka

LedControl lc = LedControl(dataInPin, clkPin, csPin, 1);

void setup() {
  // Set up switches
  for (int i = 0; i < numSwitches; ++i) {
    pinMode(switches[i], INPUT_PULLUP);
  }

  // Initialize the display
  lc.shutdown(0, false);
  lc.setIntensity(0, 8);
  lc.clearDisplay(0);
}

void loop() {
  // Hitung jumlah switch yang tertutup
  int closedSwitches = 0;
  for (int i = 0; i < numSwitches; ++i) {
    if (digitalRead(switches[i]) == LOW) { // Jika switch tertutup
      closedSwitches++;
    }
  }

  // Tampilkan angka hanya jika hanya satu switch yang tertutup
  if (closedSwitches == 1) {
    displayNumber(5);
    delay(displayDelay);
    lc.clearDisplay(0); // Hapus tampilan sebelum menampilkan angka berikutnya
    delay(displayDelay); // Delay tambahan antara tampilan angka

    displayNumber(7);
    delay(displayDelay);
    lc.clearDisplay(0);
    delay(displayDelay);

    displayNumber(7);
    delay(displayDelay);
    lc.clearDisplay(0);
    delay(displayDelay);
  }
}

void displayNumber(int num) {
  byte rows[] = {
    B11111111, // 0
    B11111111, // 1
    B11111111, // 2
    B11111111, // 3
    B11111111, // 4
    B11111111, // 5
    B11111111, // 6
    B11111111  // 7
  };

  switch (num) {
    case 0:
      rows[0] = B00111100;
      rows[1] = B01000010;
      rows[2] = B01000010;
      rows[3] = B01000010;
      rows[4] = B01000010;
      rows[5] = B01000010;
      rows[6] = B00111100;
      rows[7] = B00000000;
      break;
    case 5:
      rows[0] = B01111110;
      rows[1] = B01000000;
      rows[2] = B01000000;
      rows[3] = B01111100;
      rows[4] = B00000010;
      rows[5] = B00000010;
      rows[6] = B01111100;
      rows[7] = B00000000;
      break;
    case 7:
      rows[0] = B01111110;
      rows[1] = B00000010;
      rows[2] = B00000100;
      rows[3] = B00001000;
      rows[4] = B00010000;
      rows[5] = B00100000;
      rows[6] = B00100000;
      rows[7] = B00000000;
      break;
  }

  for (int i = 0; i < 8; ++i) {
    lc.setRow(0, i, rows[i]);
  }
}

b. Flowchart


5. Kondisi [Kembali]
Ketika 1 switch aktif dot matrix akan menampilkan angka 5,7,7

6. Video Simulasi [Kembali]       
                                      

7. Download File [Kembali]


Tidak ada komentar:

Posting Komentar

 BAHAN PRESENTASI UNTUK MATA KULIAH ELEKTRONIKA 2022 NAMA : AKMAL APRIMANTHA NIM : 2110951046 ELEKTRONIKA B DOSEN PENGAMPU : DARWISON.M.T.  ...