LAPORAN AKHIR 1
1. Prosedur
[Kembali]
3. Keypad
Prinsip Kerja
a. Listing Program
5. Kondisi
[Kembali]
MODUL 3
PERCOBAAN 3
KOMUNIKASI I2C MENGGUNAKAN ARDUINO
- Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
- Buat program menggunakan Arduino IDE.
- Transfer program yang telah dibuat ke Arduino yang ada di Proteus.
- Uji coba program di simulasi sesuai dengan kondisi yang diinginkan.
- Proses selesai setelah uji coba berhasil dilakukan.
2. Hardware dan diagram blok
[Kembali]
a. hardware
1. Modul Arduino Uno
spesifikasi:
Tampilan 2 baris @ 16 karakter, 5 x 8 pixel
Display controller: HD44780 (standar industri LCD)
Dilengkapi lampu latar warna biru/hijau/kuning
Sudut pandang lebar dengan tingkat kontras yang dapat diatur dan terlihat jelas
Tegangan kerja: 5V DC
Dimensi modul: 80 x 36 x 12 mm
Dimensi layar tampilan: 64,5 mm x 16 mm
1.Dimensi: Sekitar 70mm x 77mm x 1mm (Panjang x Lebar x Tinggi)
2. Jumlah Tombol: 12 tombol (3 baris x 4 kolom)
3. Bahan: Membrane (Plastik tipis yang sensitif terhadap tekanan)
4. Tipe Tombol: Tegangan rendah (Low Voltage)
5. Konektor: Biasanya menggunakan pin header untuk dipasang ke breadboard atau PCB
6. Kehidupan Tombol: Dalam jutaan kali tekan (bergantung pada kualitas pembuatan)
7. Resistansi Kontak: Biasanya sekitar 100 Ohm
8. Tegangan Maksimum: Biasanya 24V DC
9. Arus Maksimum: Biasanya 10mA per jalur tombol
10. Rentang Suhu: -20°C hingga +60°C
11. Kecepatan Respons: Biasanya dalam mikrodetik (μs)
12. Interface: Matriks 3x4 (Matrix 3x4)
13. Kompatibilitas: Mendukung mikrokontroler, Arduino, Raspberry Pi, dan perangkat elektronik lainnya dengan pin I/O yang sesuai
14. Indikator LED: Beberapa keypad memiliki LED di bawah tombol untuk memberikan tanda visual saat tombol ditekan
Spesifikasi :
- Tampilan 2 baris @ 16 karakter, 5 x 8 pixel
- Display controller: HD44780 (standar industri LCD)
- Dilengkapi lampu latar warna biru/hijau/kuning
- Sudut pandang lebar dengan tingkat kontras yang dapat diatur dan terlihat jelas
- Tegangan kerja: 5V DC
- Dimensi modul: 80 x 36 x 12 mm
- Dimensi layar tampilan: 64,5 mm x 16 mm
b. Digram Blok
3. Rangkaian Percobaan dan Prinsip kerja
[Kembali]
Rangkaian ini menggunakan komunikasi antara dua perangkat Arduino menggunakan dengan protokol I2C. Prinsip kerja rangkaian ini adalah sebagai berikut:
Pertama, pada perangkat master Arduino, program dimulai dengan inisialisasi pengaturan untuk keypad dan I2C. Keypad digunakan untuk mendeteksi input dari pengguna. Setiap kali seorang pengguna menekan tombol pada keypad, nilai yang sesuai dengan tombol tersebut akan dikirimkan melalui jalur I2C ke perangkat slave. Ini memungkinkan perangkat master untuk mengirimkan instruksi kepada perangkat slave berdasarkan input dari pengguna.
Di dalam loop, perangkat master menunggu penggunaan keypad. Ketika tombol pada keypad ditekan, nilai yang sesuai dengan tombol tersebut akan dikirimkan melalui jalur I2C ke perangkat slave menggunakan fungsi Wire.beginTransmission(), Wire.write(), dan Wire.endTransmission().
Pada perangkat slave Arduino, program dimulai dengan inisialisasi pengaturan untuk LCD dan I2C. LCD digunakan untuk menampilkan output kepada pengguna. Perangkat slave menggunakan library Wire untuk menerima data yang dikirim melalui jalur I2C dari perangkat master.
Di dalam setup(), perangkat slave menginisialisasi LCD dan menetapkan alamat I2C. Fungsi Wire.onReceive() didaftarkan untuk menangani penerimaan data dari perangkat master melalui I2C. Ketika data diterima, fungsi receiveEvent() akan dipanggil untuk memproses data yang diterima.
Di dalam loop(), perangkat slave menunggu penerimaan data melalui jalur I2C. Ketika data diterima, perangkat slave akan memproses data tersebut sesuai dengan program yang telah ditetapkan. Data yang diterima akan ditampilkan pada LCD sesuai dengan kondisi yang telah diatur.
ketika perangkat slave menerima data dalam bentuk angka dari 1 hingga 9, perangkat slave akan menampilkan angka tersebut pada LCD.
Kondisi yang diperintahkan :
- Jika angka yang diterima adalah angka ganjil, angka tersebut akan ditampilkan di kolom kedua pada LCD.
- Sedangkan jika angka yang diterima adalah angka genap, angka tersebut akan ditampilkan di kolom pertama pada LCD.
Dengan prinsip kerja ini, kedua perangkat Arduino dapat berkomunikasi secara efektif menggunakan protokol I2C, dan output yang ditampilkan pada LCD akan sesuai dengan kondisi yang telah diatur dalam program.
4. FlowChart
[Kembali]
Master
//Master Arduino
#include <Keypad.h>
#include <Wire.h>
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'},
};
char rowPins[ROWS] = {13, 12, 11, 10};
char colPins[COLS] = {9, 8, 7};
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 <LiquidCrystal.h>
#include <Wire.h>
LiquidCrystal lcd(13, 12, 6, 5, 4, 3); // Sesuaikan pin sesuai dengan koneksi LCD
int receivedData = 0;
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
lcd.print("Silahkan Tekan");
}
void loop()
{
delay(100);
}
void receiveEvent(int howMany)
{
receivedData = Wire.read(); // menerima byte sebagai karakter
Serial.println(receivedData); // mencetak karakter ke Serial Monitor untuk debug
if (receivedData >= '1' && receivedData <= '9') {
int number = receivedData - '0';
lcd.clear();
if (number % 2 == 0) {
lcd.setCursor(0, 0); // angka genap di kolom pertama, baris pertama
} else {
lcd.setCursor(0, 1); // angka ganjil di kolom kedua, baris kedua
}
lcd.print(number);
}
}
b. Flowchart
Master
Modul 3 Percobaan 3
Komunikasi I2C Menggunakan Arduino
6. Video Simulasi
[Kembali]
7. Download File
[Kembali]
Download HMTL klik disini
Download Simulasi Rangkaian klik disini
Download Video Percobaan klik disini
Download Program Master klik disini
Download Program Slave klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet Keypad klik disini
Download Datasheet LCD klik disini
Tidak ada komentar:
Posting Komentar