Tugas Pendahuluan 2

   




1. Prosedur
 [Kembali]

Langkah-langkah percobaan :

  1. Rangkailah seperti rangkaian berikut
  2. Buka Arduino IDE dan masukan listing Program
  3. Upload program ke arduino
  4. Mencoba rangkaiannya dengan memvariasikan input pada dipswitch.

2. Hardware dan Diagram Blok [Kembali]
    
  • Infrared sensor
  • Arduino
  • LCD
  • Keypad
  • Motor



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]




Prinsip Kerja:    
Ketika data input dari keypad masuk ke master arduino, data tersebut terkirim ke slave arduino menggunakan jenis komunikasi I2C melalui pin SDA pada master arduino yang terhubung ke SDA pada slave arduino, dan pin SCL yang saling terhubung antara masing-masing arduino agar komunikasi bersifat sinkronus. kemudian outputnya ditampilkan pada LCD yang terhubung ke slave arduino.


4. Flowchart dan Listing Program [Kembali]
    flowchart:






    listing program:
//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
 }
}
#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(); // receive byte as a character
  Serial.println(receivedData); // print the character

  if (receivedData >= '1' && receivedData <= '9') {
    int number = receivedData - '0';
    lcd.clear();
    lcd.setCursor(0, number % 2);
    lcd.print(number);
  }
}


5. Kondisi [Kembali]
    Kondisi 3:
    key 1 - 9 menampilkan karakter nomor 1 - 9 secara berurut, angka ganjil di kolom pertama dan angka genap di kolom kedua

6. Video Simulasi [Kembali]    


7. Download File [Kembali]
rangkaian klik di sini
code arduino uno klik di sini


















Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

  BAHAN PRESENTASI  MATA KULIAH SISTEM DIGITAL 2023     Oleh : Mu'minatul Afifah Nusatama 2110951003   Dosen Pengampu: Dr. Darwison, M.T...