Tugas Pendahuluan 2 uP uC Modul 3

TUGAS PENDAHULUAN 1 (MODUL I GMODUL II PWM, ADC, DAN INTERRUPT)





1. Prosedur  [Kembali]

  • Siapkan alat dan bahan yaitu dengan komponen utama Arduino Uno, Switch, LCD
  • Rangkai sesuai gambar percobaan
  • Rancang kerja rangkaian sesuai flowchat
  • Tekan tombol “Play” untuk menjalankan simulasi

2. Hardware dan Diagram Blok [Kembali]

a. Arduino

 


b.LCD


    c. Keypad




3. Rangkaian Simulasi dan Prinsip Kerja  [Kembali]




Prinsip kerja dari Rangkaian ini ialah, bekerja dengan menggunakan komunikasi I2C (Inter Integrated Circuit) yang menggunakan pin SCL (Serial Clock) dan SDA (Serial Data) untuk melakukan komunikasi. Master berfungsi mengontrol slave dengan mengirimkan inputan berupa kondisi keypad kepada Slave, sedangkan Slave akan menerima inputan yang mana akan ditampilkan pada LCD. Komunikasi terjadi pada pin SDA yang bekerja secara half-Duplex. Angka ganjil akan ditampilkan pada kolom 1, sedangkan angka genap akan ditampilkan pada kolom 2.

4. Flowchart dan Listing Program [Kembali]

    Flowchart

        Master



        Slave



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
}
}
view raw gistfile1.txt hosted with ❤ by GitHub
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);
}
}
view raw gistfile1.txt hosted with ❤ by GitHub

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]
Download datasheet LCD [Klik di sini]












Komentar