Tugas Pendahuluan Modul 3 Praktikum Mikroprosesor dan Mikrokontroler



1. Kondisi [back]
Percobaan 1 No. 1 : Buatlah kondisi awal LED mati, lalu hidup berkedip dengan delay 500 ms.
Percobaan pada tugas pendahuluan ini adalah percobaan 1 tentang komunikasi UART, yaitu komunikasi yang dapat dilakukan dengan dua objek atau dua device. Alat dan bahan yang digunakan pada rangkaian adalah dua buah arduino, LED, dan button. Pada arduino, terdapat pin komunikasi yang digunakan, yaitu pin 1 (TXQ) sebagai transmitter dan pin 0 (RXQ) sebagai receiver.
Pada rangakain, push button dihubungkan ke pin 2 arduino. LED akan diberi perintah oleh arduino SLAVE. Arduino MASTER akan mengirim data ke arduino SLAVE dan arduino SLAVE nantinya juga akan mengirim data kembali ke arduino MASTER, hubungan ini disebut sebagai hubungan timbal balik. Pin TXQ pada arduino MASTER dihubungkan ke pin RXQ pada arduino SLAVE, begitupun sebaliknya, pin TXQ pada arduino SLAVE dihubungkan ke pin RXQ pada arduino MASTER, hubungan ini disebut hubungan UART menggunakan kabel.
Pada listing program arduino MASTER, setelah mendeklarasikan pin 2 sebagai input button, pada void setup dideklarasikan button sebagai input pull up. Input pull up membeikan kondisi LOW apabila button ditekan dan kondisi HIGH apabila button dilepas. Selanjutnya, pada void loop digunakan tipe data integer untuk nilai (pembacaan dan button) dan menggunakan kondisi if. Ketika button ditekan, nilai = 0, maka arduino MASTER akan mengirim data ke arduino SLAVE berupa data serial atau bit serial "1". Sebaliknya, jika button dilepas, nilai =/= 0, maka arduino MASTER akan mengirim data ke arduino SLAVE berupa data serial atau bit serial "2". Keadaan tersebut akan berganti terus-menerus dengan selang waktu 500 ms.
Pada listing program arduino SLAVE, setelah mendeklarasikan pin 12 sebagai input LED, pada void setup dideklarasikan bahwa LED sebagai output. Serial.begin berfungsi untuk melihat serial monitornya. Pada void loop, digunakan kondisi if, jika data serial yang masuk bernilai "1", maka LED akan dalam kondisi HIGH selama 500 ms dan setelahnya LED akan dalam kondisi LOW selama 500 ms. Selanjutnya, jika data atau bit serial yang masuk bernilai "2", maka LED akan dalam kondisi LOW selama 500 ms. 
A. Arduino MASTER


B. Arduino SLAVE
A. Arduino MASTER
//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(500);
}

B. Arduino SLAVE
//Slave
#define led 12
void setup() {
  // put your setup code here, to run once:
  pinMode(led,OUTPUT);
  Serial.begin(9600);

}

void loop() {
  // put your main code here, to run repeatedly:
  if(Serial.available()>0){
    int data = Serial.read();
    if(data == '1'){
      
      digitalWrite(led,HIGH);
      delay(500);
      digitalWrite(led,LOW);
      delay(500);
      }else{
        digitalWrite(led,LOW);
        }
    }

}
Download video simulasi [di sini]
Download rangkaian [di sini]
Download HTML [di sini]  
Download Library Arduino [di sini]
Download Listing Program Arduino MASTER [di sini]
Download Listing Program Arduino SLAVE [di sini]

Tidak ada komentar:

Posting Komentar