Laporan Modul 1 Percobaan 2


Modul 1

General Input dan Output

Percobaan 2


DAFTAR ISI
1. Prosedur
2.Hardware dan diagram blok
3. Rangkaian Simulasi dan Prinsip Kerja
4. Flowchart dan Listing Program
5. Video Demo
6. Kondisi
7. Video Simulasi
8. Download File

 

  • Buatlah rangkaian sesuai dengan kondisi yang telah dipilih
  • Buat Program pada software Arduino IDE
  • Masukkan program yang telah dibuat pada software Arduino IDE sebagai library Arduino
  • Jalankan rangkaian, sesuai dengan kondisi yang diinginkan



  •     Hardware




  •     Diagram Blok



a. Rangkaian Simulasi


b. Prinsip Kerja

    

Inti dari teknik scanning keypad adalah dengan memeriksa penekanan tombol secara terus menerus melalui pin baris dan kolom. Berikut ini penjelasan prinsip kerjanya:

  1. Konfigurasi Pin:

    • Beberapa pin pada mikrokontroler ditetapkan sebagai output untuk scanning kolom.
    • Pin lainnya ditetapkan sebagai input untuk scanning baris.
  2. Scanning Kolom:

    • Mikrokontroler akan set semua pin kolom ke LOW (biasanya nilai 0).
    • Mikrokontroler kemudian akan set satu pin kolom tertentu menjadi HIGH (biasanya nilai 1).
  3. Scanning Baris:

    • Mikrokontroler akan membaca nilai pada pin baris.
    • Jika ada tombol ditekan pada baris tersebut dan terhubung dengan kolom yang di-HIGH kan tadi, maka nilai yang dibaca pada pin baris tersebut akan menjadi HIGH.
    • Ini dikarenakan adanya jalur koneksi antara tombol yang ditekan dengan kedua pin tersebut (kolom HIGH dan baris yang dibaca).
  4. Identifikasi Tombol:

    • Mikrokontroler akan memeriksa pin baris yang bernilai HIGH.
    • Kombinasi pin kolom HIGH dan baris HIGH ini akan menunjukkan tombol mana yang ditekan berdasarkan pemetaan matriks keypad.
  5. Scanning Ulangi:

    • Mikrokontroler akan mengulang proses scanning kolom (langkah 2) dengan men-HIGH kan pin kolom yang berbeda secara bergantian.
    • Dengan demikian semua kombinasi baris dan kolom akan terperiksa secara berkala.

Dengan teknik scanning ini, mikrokontroler dapat mengidentifikasi tombol yang ditekan pada keypad matriks dengan menggunakan lebih sedikit pin dibanding jika harus menghubungkan setiap tombol secara individual.

a. Flowchart



b. Listing Program
#include <Arduino.h> const int rows = 4; // Jumlah baris pada keypad const int cols = 3; // Jumlah kolom pada keypad byte rowPins[rows] = {2, 3, 4, 5}; // Pin yang terhubung ke baris keypad byte colPins[cols] = {6, 7, 8}; // Pin yang terhubung ke kolom keypad byte patterns[rows][cols] = { {0b0001, 0b0010, 0b0100}, {0b1000, 0b1001, 0b1100}, {0b0110, 0b1110, 0b1111}, {0b0011, 0b1011, 0b1101} }; char keys[rows][cols] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; char pressedKey = ' '; void setup() { Serial.begin(9600); for (int i = 0; i < cols; i++) { pinMode(colPins[i], OUTPUT); } for (int i = 0; i < rows; i++) { pinMode(rowPins[i], INPUT); } } void loop() { for (int i = 0; i < cols; i++) { digitalWrite(colPins[i], LOW); } for (int i = 0; i < rows; i++) { byte rowPattern = patterns[i][0]; for (int j = 1; j < cols; j++) { rowPattern |= patterns[i][j]; } digitalWrite(rowPins[i], LOW); delayMicroseconds(10); byte readPattern = 0; for (int j = 0; j < cols; j++) { readPattern <<= 1; readPattern |= digitalRead(colPins[j]); } digitalWrite(rowPins[i], HIGH); if (readPattern == rowPattern) { pressedKey = keys[i][j]; break; } } if (pressedKey != ' ') { Serial.print("Tombol yang ditekan: "); Serial.println(pressedKey); pressedKey = ' '; // Reset pressedKey } }





 Percobaan 2 Kondisi saat Button ditekan pada baris dan kolom yang ditentukan akan menampilkan angka yang sidah disetting misal: baris 1 kolom 1 menampilkan angka 1



Download HTML klik disini
Download Rangkaian Proteus klik disini
Download Program Arduino klik disini
Download Video klik disini
Download Datasheet 7-Segment klik disini
Download Datasheet Arduino klik disini
Download Datasheet Keypad klik disini

Tidak ada komentar:

Posting Komentar

 Bahan Presentasi untuk mata kuliah kimia         Oleh : Zhafir Ibnu Tanjung 2010953028     Dosen Pengampu: Darwison...