TUGAS PENDAHULUAN 2

MODUL 3 : COMMUNICATION



PERCOBAAN 3 KONDISI 3

1. Prosedur  [Kembali]

  • Rangkailah rangkaian seperti panduan pada modul
  • Buka Arduino IDE dan masukan listing program, lalu upload program ke arduino 
  • Variasikan karakter 1 sampai 9 dan amati perubahan pada LCD
2. Hardware dan Diagram Blok [Kembali]

a. Arduino

 


b.LCD


    c. Keypad



diagram blok

3. Rangkaian Simulasi dan Prinsip Kerja  [Kembali]



Pada rangkaian di atas, terdapat sepasang arduino, lcd, dan input berupa keypad. Arduino pertama berperan sebagai master yang terhubung dengan input keypad. Sedangkan arduino kedua terhubung ke LCD sebagai output. Arduino tersebut juga terhubung dan saling berkomunikasi. Listing program dan master arduino akan mengintruksikan bahwa karakter ganjil akan ada di kolom pertama dan genap di kolom kedua LCD. 

4. Flowchart dan Listing Program [Kembali]

    Flowchart

a. Master

b. Slave

Listing Program

a. 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

 }

}

 

b. 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(); // 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. Video Demo [Kembali]


Saat Praktikum

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

7. Video Simulasi [Kembali]


8. Link Download [Kembali]
Download HTML [Klik di sini]
Download file rangkaian [Klik di sini]
Download video rangkaian [Klik di sini]
Download program Arduino [Klik di sini]
Download datasheet Arduino [Klik di sini]











Tidak ada komentar:

Posting Komentar

DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Percobaan Percobaan ... Tugas Pendahulu...