TP MIKRO MODUL 3







1. Kondisi [Kembali]

    Modul 3 percobaan 1 no. 6 :
    Tambahkan resistor sebelum LED sebesar 1k ohm
    

2. Gambar Rangkaian Simulasi [Kembali]



Gambar 1.rangkaian simulasi


Gambar 2.flow chart kondisi



//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);
}

//SLAVE

#define led 12 //Deklarasi pin 12 untuk LED

void setup()    //Semua kode dalam fungsi ini dieksekusi sekali
{
  pinMode(led, OUTPUT); //Deklarasi LED 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
    {
      digitalWrite(led, HIGH); //LED menyala
    }
    else
    {
      digitalWrite(led, LOW); //LED mati
    }

  }
}


5. Video Simulasi [Kembali]




6. Prinsip kerja dan Analisa [Kembali]

Analisa

Percobaan 1

1.  Apa yang terjadi jika komunikasi UART hanya menggunkan satu kabel saja, yang terhubung Tx ke Rx ?

Pada percobaan 1 mengenai komunikasi UART apabila hanya menggunakan satu kabel yang terhubung dari master ke slave yang dimana kabel tersebut terhubung dari Tx ke Rx yang terjadi adalah rangkaian tetap jalan seperti biasa atau seperti yang diinginkan karena pada percobaan ini kita hanya mentransfer data atau perintah dari master ke slave yang melalui kabel yang terhubung dari Tx ke Rx. Rangkaian ini juga tidak membutuhkan feedback dari slave ke master sehingga rangkaian tetap berjalan semestinya.

2.   Apakah UART bisa menggunakan banyak master atau banyak slave? Jelaskan alasannya

Jawabannya tidak bisa karena pada komunikasi UART hanya menggunakan jalur tunggal untuk mentransmisikan dan satu untuk menerima data. Caranya dengan mentransfer data yang berbentuk paket yang telah ditambahkan start bit, piraty bi dan stop bit yang kemudian jika telah sampai ke tujuan tiga bit yang ditambahkan tadi dihapus kembali. Apabila diperlukan feedback maka data bisa dikirim kembali ke pengrim dengan jalur yang berbeda.

3.    Jika ditambahkan resistor 22k sebelum LED, apakah yang akan terjadi?

LED tidak akan hidup karena besarnya tegangan yang diberikan sehingga kecilnya arus yang mengalir ke LED dan tegangan yang dihasilkan akan kecil. Pada simulasi saya mendapatkan tegangan pada LED hanya 1.8 volt sedangkan tegangan kerjayang diperlukan sebuah LED adalah 2 volt. Maka dapat disimpulkan bahwa LED tidak hidup.

4.    Jelaskan prinsip kerja UART pada rangkaian!

Rangkaian dimulai dari button yang memberi input. Input tersebut diproses pada arduino master setelahnya arduino master memberi sebuah data sebagai perintah yang akan dieksekusi oleh arduino slave. Untuk lebih jelasnya kita pahami dulu dari listing program yang digunakan.

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

}

 

·        Pada listing program diatas pada baris pertama kita mendeklarasikan pin 2 sebagai button atau variabel button. Untuk fungsi void setupnya saya memberi perintah yaitu pada varibel button saya beri perintah input pullup dimana perintah ini berisikan apabila button ditekan maka akan bernilai 0 (Low) dan jika dilepas akan berlogika 1 (High). Input dari button inilah yang akan di proses dan  dikirim ke arduino slave. Dan perintah selanjutnya untuk set beud rate dengan nilai 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);

}

·        Pada listing progra selanjutnya yaitu fungsi loop yang berisikan kode yaitu inisialisasi variabel nilai tipe data integers dengan variabel nilai berisikan input button yang diberikan atau terbaca. Kode salanjutnya adalah fungsi if dimana jika button ditekan maka variabel nilai akan berisikan logika 0 maka program akan mengirimkan data atau perintah “1” pada arduino slave tetapi jika selain logika 0 yaitu logika 1 dimana button belum ditekan maka program akan mengirimkan data atau perintah “2” pada arduino slave. Setelah if dilanjukan dela selama 200ms dan kode pada void loop diulang kembali.

 

b)    Slave

//SLAVE

 

#define led 12 //Deklarasi pin 12 untuk LED

 

void setup()    //Semua kode dalam fungsi ini dieksekusi sekali

{

  pinMode(led, OUTPUT); //Deklarasi LED sebagai output

  Serial.begin(9600);           //Set baud rate 9600

}

 

·       Pada listing program slave ini saya mendeklarasikan pin 12 ke variabel led. Selanjutnya pada fungsi void setup saya memberi perintah ke variabel led sebagai output. Dan selanjutnya set beud rate sebesar 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

    {

      digitalWrite(led, HIGH); //LED menyala

    }

    else

    {

      digitalWrite(led, LOW); //LED mati

    }

  }

}

·       Pada listing program selanjutnya adalah fungsi void loop yang diberisikan logika if pertama yang dimana syaraynya adalah bila serial available besar dari 0 (menandakan salve menerima data dari master) maka program didalamnya akan dijalankan. Program pada if pertama adalah variabel “data” dengan tipe integers dan logika if kedua yang berisikan jika data sama dengan 1 maka pin LED bernilai high dan arus mengalir dan menghidupkan LED atau variabel data bernilai selain dari 1 maka pin LED bernilai LOW sehingga tidak ada arus mengalir di output dan LED tidak hidup.


7. Link Download [Kembali]

Download Rangkaian Simulasi  disini
Download Video simulasi  disini
Download HTML  disini
Download Program Arduino  disini

Tidak ada komentar:

Posting Komentar