TP3 P3 K5




1. Foto Hardware dan Diagram Blok [Kembali]



1. Arduino Uno



2. Keypad

   



3. Ground


4. LCD


7. Power supply

 

  

2. Prosedur Percobaan  [Kembali]

  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi dan cobakan dengan modul



Rangkaian menggunakan protokol komunikasi I2C. Pin SDA dan SCL yaitu A4 dan A5 saling terhubung antara arduino master dan slave. Keypad ankan terhubung dengan arduino master, sedangkan LCD akan terhubung dengan arduino slave.
Key A - D (dalam hal ini kolom ke-4 keypad) menampilkan huruf A - D secara berurut, huruf yang ditampilkan mengalami blinking pada kolom pertama LCD.







4. Flowchart dan Listing Program [Kembali]

 master

#include <Keypad.h>
#include <Wire.h>

const byte ROWS = 4;
const byte COLS = 4; // Diubah menjadi 4 kolom untuk menambahkan tombol A-D
char keys[ROWS][COLS] = {
  {'1', '2', '3', 'A'}, // Menambahkan tombol 'A'
  {'4', '5', '6', 'B'}, // Menambahkan tombol 'B'
  {'7', '8', '9', 'C'}, // Menambahkan tombol 'C'
  {'*', '0', '#', 'D'}, // Menambahkan tombol 'D'
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2}; // Menambahkan pin untuk kolom keempat
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

void setup() {
  Wire.begin(); // join i2c bus (address optional for master)
}

void loop() {
  char key = keypad.getKey();
  if (key) {
    Wire.beginTransmission(4); // transmit to device #4
    Wire.write(key);
    Wire.endTransmission(); // stop transmitting
  }
}

slave

#include <LiquidCrystal.h>
#include <Wire.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(16, 2);
  Wire.begin(4); // join i2c bus with address #4
  Wire.onReceive(receiveEvent); // register event
  Serial.begin(9600); // start serial for output
}

void loop() {
  delay(100);
}

void receiveEvent(int howMany) {
  if (Wire.available()) {
    char c = Wire.read(); // receive byte as a character
    Serial.println(c); // print the character
    if (c >= 'A' && c <= 'D') {
       for (int i = 0; i < 200; ++i) { // Lakukan berkedip sebanyak 10 kali
    lcd.setCursor(0, 0); // Atur kursor ke posisi (0, 0)
    lcd.print(" "); // Hapus karakter
    delay(1000); // Delay untuk efek berkedip
    lcd.setCursor(0, 0); // Atur kursor ke posisi (0, 0)
    lcd.print(c); // Tampilkan karakter
    delay(1000); // Delay untuk efek berkedip
    }
  }
}
}




5. Kondisi [Kembali]

Key A - D menampilkan huruf A - D secara berurut, huruf yang ditampilkan mengalami blinking pada kolom pertama


Tidak ada komentar:

Posting Komentar

M4

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