Senin, 29 April 2024



MODUL 3
PERCOBAAN 3 KONDISI 4

1. Prosedur
[Kembali]

+ Rangkai semua komponen sesuai kondisi yang dipilih
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino di proteus
+ jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
+ Selesai

2. Hardware dan diagram blok [Kembali]
    a. hardware


1. Modul Arduino Uno
Spesifikasi Arduino

2.  LCD


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

3. Keypad


Spesifikasi:

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 Simulasi dan Prinsip kerja [Kembali]
                                        
Rangkaian Sebelum Simulasi





Rangkaian Setelah Simulasi

 Angka Ganjil



Angka Genap





PRINSIP KERJA
  Dalam percobaan ini, dua Arduino saling berinteraksi melalui protokol I2C. Berikut adalah ringkasan dari cara kerja sistem ini:
  • Master Arduino: Memulai dengan mengatur keypad dan I2C. Keypad mendeteksi tekanan tombol dan mengirim nilai yang sesuai ke Arduino slave melalui I2C. Ini memungkinkan master untuk memberikan perintah ke slave berdasarkan masukan pengguna.

  • Loop pada Master: Master terus menunggu input dari keypad. Saat tombol ditekan, master mengirim nilai tombol ke slave dengan menggunakan fungsi transmisi I2C.

  • Slave Arduino: Memulai dengan mengatur LCD dan I2C. LCD menampilkan informasi kepada pengguna. Slave menerima data dari master melalui I2C.

  • Setup pada Slave: Slave menginisialisasi LCD dan menetapkan alamat I2C-nya. Fungsi penerimaan I2C didaftarkan untuk memproses data yang diterima dari master.

  • Loop pada Slave: Slave menunggu data dari I2C. Saat data tiba, slave memproses dan menampilkan data pada LCD sesuai dengan kondisi yang ditentukan dalam program.

  • Kondisi Tampilan LCD: Saat slave menerima angka dari 1 hingga 9, angka tersebut akan ditampilkan pada LCD. Angka ganjil muncul di kolom kedua, sementara angka genap di kolom pertama.

Dengan cara ini, kedua Arduino dapat berkomunikasi dengan lancar melalui I2C, dan LCD menunjukkan output yang sesuai dengan kondisi yang diprogram.


4. FlowChart [Kembali]
a. Listing Program 

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


Slave



5. Kondisi [Kembali]

Percobaan 3 Kondisi 4

Key 1-9 menampilkan karakter nomor 1-9 secara berurut, angka ganjil di kolom kedua, dan angka genap di kolom pertama. 

6. Video Simulasi [Kembali]





7. Download File [Kembali]
Download HMTL klik disini
Download Simulasi Rangkaian klik disini
Download Video Simulasi 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

Mikro 2024 Modul  4 [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI     1. Pendahuluan     2. Tujuan     3. Alat dan Bahan     4. Dasar...