Modul 3_LA 1_uP dan uC 2022

  

Modul III
Komunikasi





1. Jurnal [kembali]
    Menghidupkan LED pada arduino Slave ketika Button di Arduino masternya ditekan menggunakan komunikasi UART

2. Hardware [kembali]

Push Button
LED
 Arduino
Power Supply


3. Gambar Rangkaian [kembali]



4. Prinsip Kerja [kembali]
 Pada rangkaian diatas digunakan button dengan tipe pull up sebagai input dan buzzer sebagai output. Button dengan tipe pull up dihubungkan ke pin 2 digital arduino "master"sedangkan buzzer sebagai output dihubungkan ke pin 12 digital arduino "slave". Pada rangkaian ini arduino master akan mengirimkan data ke arduino slave berupa kode angka. Awalnya ketika button tidak dipencet maka data yang diberikan oleh arduino master berupa “2” yang mana pada program arduino slave data “2” membuat buzzer mati. Jika button dipencet maka arduino master akan mengirimkann data “1” yang mana pada program arduino slave akan menghidupkan buzzer dengan delay 1000ms.

UART adalah salah satu protokol komunikasi data yang bersifat asynchronus. ada beberapa hal yang diperlukan Pertama, panjang dari data yang akan dikirimkan.kedua Start dan Stop mengirimkan dan membaca data. dan ketiga adalah kecepatan transmisisnya. UART bersifat FUll duplex dengan kecepatan ngirim data 9600 - 115200 bps

kelebihan dan kekurangan dari UART.

Kelebihan :

  1. Pengiriman data dengan menggunakan UART hanya membutuhkan 2 kabel yaitu dengan 1 kabel transmisi (TX/RX) dan 1 kabel ground.
  2. Dalam pengirim setiap bit datanya tidak memerlukan sinyal clock.
  3. Memiliki partisi bit yang digunakan untuk pengecekan error saat transmisi data.
  4. Struktur paket data dapat diubah.
  5. Tutorial dan pembelajaran tentang UART didokumentasikan dengan baik dan protokol ini banyak digunakan di berbagai mikrokontroler.

Kekurangan :

  1. Ukuran atau panjang data yang dapat dikirimkan dengan protokol UART ini terbatas dengan maksimum 9 frame.
  2. Tidak bisa digunakan untuk mengirimkan data ke banyak receiver atau pun transmitter.
  3. Baud Rate dari masing-masing UART harus dalam jarak 10% antara satu sama lain.

Prinsip kerja dari Arduino bisa kita gambarkan seperti di bawah ini.

cara kerja arduino


Alur kerjanya:
Pembacaan data oleh komponen input > data dikirim ke pin input > data masuk ke mikrokontroler > data diproses > data keluar dari Arduino >data dikirim ke pin output > data diteruskan ke komponen output.
Berdasarkan gambar dan keterangan di atas, kita bisa menyimpulkan bahwa cara kerja Arduino yaitu:

Tahap 1: Pembacaan data oleh komponen input

Hal pertama yang berlangsung adalah komponen input yang dihubungkan ke Arduino akan melakukan pembacaan atau pengukuran data yang jadi pemicu.

Misalnya berupa jarak, cahaya, getaran, atau suara.

Apa saja yang termasuk komponen input? Yaitu semua komponen yang dapat melakukan pengukuran maupun pembacaan data.

Termasuk semua jenis sensor. Entah itu sensor jarak, cahaya, maupun yang lainnya.

Tahap 2: Data dikirim ke pin input Arduino

Pin input adalah perantara yang menghubungkan antara Arduino dan komponen input.

Jadi, data yang didapatkan dari pengukuran dan pembacaan komponen input akan dikirim ke pin input Arduino.

Tahap 3: Data masuk ke mikrokontroler (inti Arduino)

Nantinya, data yang ada pada pin input Arduino akan dibawa ke mikrokontroler atau inti Arduino untuk masuk ke tahapan berikutnya. Yaitu tahap pemrosesan data.

Data yang masuk ke mikrokontroler akan diproses berdasarkan perintah atau program yang diberikan. Dalam tahapan ini pulalah diberikan instruksi akan seperti apa perintah yang akan dijalankan perangkat output nantinya.

Untuk memberikan perintah pada mikrokontroler Arduino, menggunakan bahasa pemrograman C dan melalui Software Arduino IDE.

Tahap 4: Data dikirim ke pin output Arduino

Setelah data diproses, maka selanjutnya data akan dikirim ke pin output Arduino.

Layaknya pin input, pin output Arduino juga berperan sebagai perantara yang menghubungkan antara Arduino dan perangkat output.

Perlu kamu ketahui bahwa rata-rata Arduino memiliki 14 pin yang dapat digunakan sebagai pin input maupun pin output.

Tahap 5: Data disalurkan ke komponen output

Data yang ada pada pin output Arduino, selanjutnya akan disalurkan ke komponen output.

Jadi, semua instruksi yang diberikan oleh mikrokontroler akan langsung dijalankan oleh komponen output seperti relay, lampu LED, buzzer, dan sebagainya.


CODINGAN
//------------------------MASTER----------------------------------//
#define button 2 //Deklarasi pin 2 untuk button

void setup()        //Semua kode dalam fungsi ini dieksekusi sekali
{
  pinMode(button, INPUT_PULLUP);
  Serial.begin(9600); //Set baud rate 9600
}

void loop()         //Semua kode dalam fungsi ini dieksekusi berulang
{
  int nilai = digitalRead(button);

  //Button ditekan
  if (nilai == 0)
  {
    Serial.print("1");
  }
  else
  {
    Serial.print("2");
  }

  delay(200);
}

Penjelasan Codingan :

Pertama Kita Deklarasikan Pin-pin yang akan dihubungkan ke arduino nantinya dimana pin nya adalah 2 dan dihubungkan ke button. lalu pada void setup di lakukan pemanggilan fungsi pinMode() dan serial begin().

Fungsi pinMode() pada arduino adalah sebuah perintah yang fungsinya untuk mengkonfigurasi pin tertentu agar bekerja menjadi sebuah input atau output. pinMode() biasanya digunakan pada void setup() untuk melakukan konfigurasi pada suatu pin, di dalam pemrograman arduino perintah pinMode() akan sering kamu jumpai dan gunakan. dari codingan kita ingin menjadikan pin button sebagai mode INPUT_PULLUP dimana aplikasi input untuk pendeteksian tombol secara active LOW sebaiknya menggunakan INPUT_PULLUP karena akan jauh menghemat jalur PCB dan untuk logikanya tidak terpaku pada "1" dan "0"

void loop digunakan dalam arduino IDE untuk menjalankan perintah didalamnya secara berulang-ulang,dalam void loop ada variabel nilai yang merupakan nilai pembacaan dari button.

ketika button ditekan maka serial akan mencetak angka "1" yang nantinya akan dikirimkan ke arduino "slave" jika sebaliknya maka akan mencetak angka "2"

//------------------------SLAVE----------------------------------//

//SLAVE

#define buzz 12 //Deklarasi pin 12 untuk buzz

void setup()    //Semua kode dalam fungsi ini dieksekusi sekali
{
  pinMode(buzz, OUTPUT); //Deklarasi buzz sebagai output
  Serial.begin(9600);           //Set baud rate 9600
}

void loop()                          //Semua program dalam fungsi ini dieksekusi berulang
{
  if (Serial.available() > 0)
  {
    int data = Serial.read();
    if (data == '1') //Jika data yang dikirimkan berlogika
     {
         int data = Serial.read();
         if (data == '1') //Jika data yang dikirimkan berlogika
    {
          digitalWrite(led, HIGH); //LED menyala
    }
     else
    {
         digitalWrite(led, LOW); //LED mati
    }
  }
}

Penjelasan Codingan :

Pertama Kita Deklarasikan Pin-pin yang akan dihubungkan ke arduino nantinya dimana pin nya adalah 12 dihubungkan ke buzzer lalu pada void setup di lakukan pemanggilan fungsi pinMode().

Fungsi pinMode() pada arduino adalah sebuah perintah yang fungsinya untuk mengkonfigurasi pin tertentu agar bekerja menjadi sebuah input atau output. pinMode() biasanya digunakan pada void setup() untuk melakukan konfigurasi pada suatu pin, di dalam pemrograman arduino perintah pinMode() akan sering kamu jumpai dan gunakan. dari codingan kita ingin menjadikan pin buzzer sebagai mode Output/keluaran

void loop digunakan dalam arduino IDE untuk menjalankan perintah didalamnya secara berulang-ulang,dalam void loop ada variabel data yang mana nilainya merupakan nilai yang dikirimkan oleh "master" ketika data = 1 maka buzzer akan menyala dan diberikan delay selama 1000ms sesuai dengan kondisi modul

Fungsi digitalWrite() pada arduino adalah salah satu perintah yang berfungsi untuk memberi nilai 1 atau 0 kepada pin digital yang ada pada arduino. 1/0 bisa juga disebut dengan nilai HIGH dan LOW ke pin digital.

5.. Video Praktikum [kembali]





6. Analisa [kembali]         

1. Analisa Bagaimana Hasil jika memvariasikan baudrate antar master dan slave terhadap output yang dihasilkan
JAWAB
    Ketika kita memvariasikan baudrate antar master dan slave maka mereka tidak dapat untuk melakukan komunikasi akibat berbedanya kecepatan pengirim dan penerima

2. Analisa Pengaruh jika kabel Rx master ke Tx Slave diputuskan
JAWAB
    Maka data yang dikirimkan oleh slave ke Master tidak akan bisa dikirimkan sehingga hanya Master yang bisa mengirimkan data atau Full duplex diubah menjadi simplex. tapi LED masih tetap menyala Karena Perintah menghidupkan LED dari master masih bisa terkirim

3. Analisa Pengaruh jika kabel Tx master ke Rx slave diputus
JAWAB
    Maka Master tidak bisa mengirimkan data ke slave membuat slave tidak bisa menghidupkan LED Karena program yang membat slave bisa Menghidupkan LED berada di Master

4. Analisa Pengaruh Penggunaan Input pull up pada Program
JAWAB
    Input_pull up digunakan pada Push button. Ketika push button ditekan Maka akan membuat pin yang terhubung menjadi logika LOW/0,tapi ketika push button tidak ditekan maka akan membuat Pin yang terhubung menjadi logika HIGH/1 kondisi input_pull up berbeda dengan input biasa

7. Link Download [kembali]

Download Video Praktikum Disini
Download File Program Master Disini
Download File Program Slave disini
Download DataSheet Arduino disini
Dataheet LED disini
Dowload HTML Disini
Download Library Disini
Dataheet Push button disini

[Kembali ke daftar isi]

Tidak ada komentar:

Posting Komentar

Muhammad Sukry

Bahan Presenstasi Ini dibuat untuk  Mata Kuliah Mikroprocessor dan Mikrocontroller Semester Ganjil 2022-2023 Oleh : Muhammad Sukry 201095104...