TP MODUL 3 PERCOBAAN 3



Modul 3 Percobaan 3

1. Prosedur [Kembali]

    • Rangkailah seperti rangkaian berikut
    • Buka Arduino IDE dan masukan listing program
    • Upload program ke arduino
    • Variasikan kondisi keypad dan amati keluarannya pada LCD

  • Hardware
  1. Arduino Uno

    2. Keypad

    3. LCD

    4. Power supply

    5. Ground



  • Diagram Blok



    • Rangkaian Simulasi

    • Prinsip Kerja

    Pada perangkat Arduino Master, terdapat sebuah keypad yang terhubung untuk memasukkan karakter. Karakter-karakter yang dimasukkan akan dikirimkan melalui jalur I2C ke perangkat Arduino Slave. Ketika pengguna menekan tombol 1 hingga 9 pada keypad, karakter-karakter tersebut akan secara berurutan ditampilkan di kolom kedua pada LCD yang terhubung dengan perangkat Slave. Proses pengiriman data dari Arduino Master ke Arduino Slave melalui jalur I2C dimulai dengan inisialisasi menggunakan fungsi 'Wire.begin()', yang secara otomatis menghubungkan kedua perangkat.

    Pesan-pesan yang dikirimkan dari input keypad pada perangkat Arduino Master akan diterima oleh Arduino Slave melalui jalur I2C. Arduino Slave akan menerima data tersebut dan menampilkan pesan yang sesuai pada LCD yang terhubung. Dengan demikian, prinsip kerja rangkaian ini memungkinkan pengguna untuk memasukkan karakter melalui keypad pada Arduino Master, yang kemudian dikirimkan melalui jalur I2C untuk ditampilkan pada LCD yang terhubung dengan Arduino Slave. Komunikasi antara kedua perangkat tersebut memungkinkan transfer data yang efisien dan interaksi antar perangkat secara real-time.


  • Flowchart
  • Arduino Master

  • Arduino Slave


  • Listing Program
//MASTER 
#define DS1 2 
#define DS2 3
#define DS3 4
#define DS4 5
#define DS5 6
#define DS6 7
#define DS7 8
#define DS8 9

void setup() 
{ 
  Serial.begin(9600);
  pinMode(DS1, INPUT_PULLUP); 
  pinMode(DS2, INPUT_PULLUP);
  pinMode(DS3, INPUT_PULLUP); 
  pinMode(DS4, INPUT_PULLUP); 
  pinMode(DS5, INPUT); 
  pinMode(DS6, INPUT); 
  pinMode(DS7, INPUT); 
  pinMode(DS8, INPUT); 
}

void loop()
{
  int b8 = digitalRead(DS8);
  int b7 = digitalRead(DS7);
  int b6 = digitalRead(DS6);
  int b5 = digitalRead(DS5);
  int b4 = digitalRead(DS4);
  int b3 = digitalRead(DS3);
  int b2 = digitalRead(DS2);
  int b1 = digitalRead(DS1);

  // Hidupkan LED sesuai dengan tombol yang ditekan
  if (b8 ==   LOW)
  {
    Serial.write('8');
  }
  else if (b7 == LOW)
  {
    Serial.write('7');
  }
  else if (b6 == LOW)
  {
    Serial.write('6');
  }
  else if (b5 == LOW)
  {
    Serial.write('5');
  }
  else if (b4 == HIGH)
  {
    Serial.write('4');
  }
  else if (b3 == LOW)
  {
    Serial.write('3');
  }
  else if (b2 == LOW)
  {
    Serial.write('2');
  }
  else if (b1 == LOW)
  {
    Serial.write('1');
  }
  delay(20);
} 

//Slave Arduino
#include <LiquidCrystal.h>
#include <Wire.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Sesuaikan pin sesuai dengan koneksi LCD
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);
}
// function that executes whenever data is received from master
// this function is registered as an event, see setup()
void receiveEvent(int howMany)
{
 char c = Wire.read(); // receive byte as a character
 Serial.println(c); // print the character
 lcd.clear();
 lcd.setCursor(0, 1);
 lcd.print(c);
 delay(100);
}


                                                   


6. Kondisi [Kembali]

key 1 - 9 menampilkan karakter nomor 9 - 1 secara berurut di kolom kedua LCD.

7. Download File [Kembali]

HTML klik disini

- Rangkaian Simulasi  klik disini

- Gambar Simulasi  klik disini

- Video Demo  klik disini

- Listring Program  klik disini

- Datasheet:
     ARDUINO UNO klik disini
     LCD  klik disini
    Keypad   Klik disini
  















Tidak ada komentar:

Posting Komentar