Laporan Akhir 1

 LA 1: Percobaan 3



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 :

input = keypad
mikro = arduino
output = LCD





Diagram Blok:

                


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :






Prinsip Kerja :

Pada percobaan 3 kondisi 7 menggunakan komunikasi I2C atau Inter - Integrated Circuit, komunikasi menggunakan pin SDA (serial data) dan SCL (serial clock) dimana SDA sebagai pengiriman data dan SCL mengatur clock dalam pengiriman data. Pada sisi kiri terdapat keypad yang merupakan input dari rangkaian, dengan menggunakan keypat yang dihubungkan pada arduino dan penyesuaian kolom dan baris pada pemograman nya. pada input diberi nama Master karena sebagai pengirim. Kemudian di bagian kanan terdapat arduino yang sudah terhubung dengan LCD sebagai output yang dimana LCD akan menampilkan apa yang di berikan keypad, arduino output deberi nama Slave karena berperan sebagai penerima. 


4. Flowchart dan Listing Program [Kembali]

Flowchart :






Listing Program :


MASTER

#include <Key.h>
#include <Keypad.h>

#include <Keypad.h>
#include <Wire.h>
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
 {'A', '2', '3'},
 {'B', '5', '6'},
 {'C', '8', '9'},
 {'D', '0', '#'},
};
char rowPins[ROWS] = {9, 8, 7, 6};
char colPins[COLS] = {5, 4, 3};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup()
{
 Wire.begin(); // join i2c bus (address optional for master)
}
//byte x = 0;
void loop(){
 
 char key = keypad.getKey();
 
 if (key) {
 Wire.beginTransmission(4); // transmit to device #4
 Wire.write(key);
 Wire.endTransmission(); // stop transmitting
 }
}

SLAVE

#include <LedControl.h>

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

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Inisialisasi objek LCD dengan pin yang terhubung

String message = ""; // Pesan yang akan ditampilkan di LCD

void setup() {
  lcd.begin(16, 2); // Inisialisasi LCD dengan ukuran 16x2
  Wire.begin(9); // Mulai komunikasi I2C sebagai slave dengan alamat 9
  Wire.onReceive(receiveEvent); // Panggil fungsi receiveEvent() saat menerima data dari master
}

void loop() {
  // Tidak ada yang perlu dilakukan di loop()
}

void receiveEvent(int byteCount) {
  while (Wire.available()) {
    char receivedChar = Wire.read(); // Baca karakter yang diterima dari master
    message += receivedChar; // Tambahkan karakter ke pesan
    if (message.length() > 16) { // Jika panjang pesan lebih dari 16 karakter
      message = message.substring(1); // Potong karakter pertama dari pesan
    }
    displayMessage(); // Tampilkan pesan pada LCD
  }
}

void displayMessage() {
  lcd.clear(); // Bersihkan layar LCD
  lcd.setCursor(0, 0); // Set posisi kursor di baris pertama
  lcd.print(message); // Tampilkan pesan di LCD
}

5. Kondisi [Kembali]

Percobaan 4 : Keypad dan Motor Servo

6. Video Demo [Kembali]





7. Soal Analisa [Kembali]

1. Apa jenis komunikasi yang digunakan ?
2. berdasarkan pemograman bagaimana master memilih slavve?


8. Download File [Kembali]

File Rangkaian klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Motor Servo klik disini
Datasheet Keypad klik disini

Tidak ada komentar:

Posting Komentar

Among Us - Crewmates

Modul 3 : Communication

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