Kamis, 21 Maret 2024

Laporan Akhir 1




1. Prosedur
[Kembali]

1. Rangkai rangkaian pada alat sesuai dengan modul.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan rangkaian.

2. Hardware dan Diagram Blok [Kembali]

Hardware :


1. Arduino
2. Keypad


3. Seven Segment 2 Digit
4. Breadboard



Diagram Blok:

                



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi Sebelum dirunning:



Rangkaian Simulasi Setelah dirunning:




Prinsip Kerja :

Pada susunan keypad seperti yang dijelaskan dalam konfigurasi rangkaian, digunakan tombol tekan yang diatur sedemikian rupa seperti keypad 4x4 untuk memasukkan angka (keypad 4x4 dapat diatur melalui kode program Arduino). Tombol tekan tersebut tersusun dalam matriks dengan 4 baris dan 4 kolom. Tombol tekan ini diintegrasikan dengan Arduino, di mana baris keypad dihubungkan ke pin A4, A3, A2, A1, dan kolom keypad dihubungkan ke pin 10, 11, 12, 13. Output dari Arduino berupa 7-segment common anoda 2 digit yang dihubungkan ke pin 9, 8, 7, 6, 5, 4, 3, 2 pada Arduino yang digunakan.

Prinsip operasinya adalah ketika salah satu tombol tekan yang bertindak sebagai keypad ditekan, mikrokontroler akan secara bergantian membaca setiap baris untuk mengidentifikasi tombol tekan yang ditekan. Setelah baris yang ditekan terdeteksi, mikrokontroler akan memindai setiap kolom untuk menentukan tombol tekan mana yang ditekan dalam baris tersebut. Dengan informasi tersebut, mikrokontroler dapat mengonversi posisi tombol tekan yang ditekan menjadi angka yang sesuai. Sesuai dengan kode program yang digunakan, jika kondisinya adalah Tombol Baris 2 kolom 3 akan menampilkan angka 7, maka angka yang diperoleh akan ditampilkan pada seven segment. Mikrokontroler mengendalikan setiap digit pada seven segment untuk menampilkan output yang sesuai dan benar berdasarkan kondisi yang telah ditentukan.

4. Flowchart dan Listing Program [Kembali]

Flowchart :

Listing Program :

#include <Keypad.h>

const byte ROWS = 4; // Empat baris
const byte COLS = 4; // Empat kolom

char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'}, // Layout keypad 4x4
  {'7','8','9','C'},
  {'*','0','#', 'D'}
};

byte rowPins[ROWS] = {A4, A3, A2, A1}; // Hubungkan dengan pin baris keypad
byte colPins[COLS] = {10, 11, 12, 13}; // Hubungkan dengan pin kolom keypad

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

const int segmentPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // Hubungkan dengan pin-pins segment seven-segment display

void setup() {
  for (int i = 0; i < 8; i++) {
    pinMode(segmentPins[i], OUTPUT);
    digitalWrite(segmentPins[i], HIGH); // Atur semua segment off (common anode)
  }
}

void loop() {
  char key = keypad.getKey();
  if (key) {
    displayCharacter(key);
    delay(1000);
    clearDisplay();
  }
}

void displayCharacter(char ch) {
  // Definisikan pola segment untuk setiap digit (0-9)
  // Contoh: Menampilkan '1'
  //  A
  // F B
  //  G
  // E C
  //  D
  byte patterns[][8] = {
    {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
    {0, 0, 0, 0, 0, 1, 0}, // A
    {1, 1, 0, 0, 0, 0, 0}, // B
    {0, 1, 1, 0, 0, 0, 1}, // C
    {1, 0, 0, 0, 0, 1, 0}  // D
  };

  int index;
  if (ch >= '0' && ch <= '9') {
    index = ch - '0';
  } else if (ch >= 'A' && ch <= 'D') {
    index = ch - 'A' + 10;
  } else {
    return;
  }

  // Tulis pola ke pin-pin segment
  for (int i = 0; i < 7; i++) {
    digitalWrite(segmentPins[i], patterns[index][i]);
  }
}

void clearDisplay() {
  for (int i = 0; i < 8; i++) {
    digitalWrite(segmentPins[i], HIGH); // Matikan semua segment
  }
}

5. Kondisi [Kembali]

Percobaan 2 : Keypad dan Seven Segment

6. Video Demo [Kembali]



7. Soal Analisa [Kembali]

1. Analisa pengaruh apabila program pada void loop dipindahkan ke void set up
Jawab:

Void setup () digunakan untuk tujuan inisialisasi satu kali yang mengkonfigurasi komponen perangkat keras arduino (pin, timer, komunikasi serial, dan lainnya) serta menetapkan kondisi awal variabel. Fungsi ini hanya dijalankan sekali pada awal program. Jika kode melibatkan pengaturan pin sebagai input atau output, menentukan baud rate untuk komunikasi serial, atau menginisialisasi library, tindakan ini cocok untuk void setup().

Void loop() merupakan suatu fungsi yang dapat menampung kode yang dieksekusi berulang -ulang dalam loop tak berujung, mengontrol aliran program utama dan berinteraksi dengan perangkat keras atau lingkungan eksternal. Setiap kode yang perlu dijalankan secara terus menerus atau pada interval tertentu, seperti membaca nilai sensor, mengontrol output berdasarkan data sensor, melakukan perhitungan, atau mengirim data melalui serial, termasuk dalam void loop().

Apabila program pada void loop() dipindahkan ke void setup(), maka kode tersebut hanya akan dijalankan sekali selama inisialisasi, bukan berulang kali. Hal ini dapat menyebabkan perilaku tak terduga  jika kode tersebut dimaksudkan untuk berjalan terus menerus atau pada interval tertentu. Jika memindahkan kode yang bergantung pada nilai atau status yang ditetapkan pada void loop() ke void setup(), maka kode tersebut dijalankan sebelum nilai tersebut tersedia, sehingga dapat menyebabkan masalah.

2. Analisa jenis 7-segmen yg digunakan, apa commonnya, dan jelaskan kenapa penggunaan common tersebut
Jawab:

Seven segmen yang digunakan adalah seven segmen 2 digit dan mempunyai 10 kaki (7 kaki untuk seven segmen , 1 kaki untuk digit 1, 1 kaki untuk digit 2, 1 kaki untuk dp).

dig 1 adalah pin power untuk digit 1 dan dig 2 adalah power untuk digit 2. Untuk perccobaan ini, kita menggunakan seven segmen common anoda. Karena semua kutub anoda (positif) dari LED dalam seven segmen disalurkan secara paralel dan dihubungkan ke VCC, lalu kaki katoda (negatif) LED dihubungkan melalui resistor pembatas arus keluar dari penggerak LED. Karena dihubungkan ke VCC, maka seven segmen common anoda ini beroperasi pada kondisi aktif LOW.


8. Download File [Kembali]

HTML Download
File Rangkaian Download
Video Percobaan Download
Listing Program Download
Datasheet Arduino Download
Datasheet Button Download
Datasheet seven segment Download
Datasheet Keypad Download










Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

TUGAS BESAR PRAKTIKUM UP & UC (MODUL 4)

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