Laporan Akhir Modul 3 Percobaan 2

     




    

1. Tujuan (kembali)

1. Merangkai percobaan 2 modul 3.

2. Menjelaskan cara kerja rangkaian percobaan 2.

3. Melakukan simulasi rangkaian percobaan 2.

Kondisi :  Ubah kondisi awal LED mati, lalu ketika button di tekan led hidup berkedip dengan delay 500ms


2. Hardware (kembali)
 Alat

    1. Power Supply

    2. Ground

Bahan

     1. Arduino

Arduino Uno Tutorial [Pinout]

    2. Resistor

    3. LED

    4. Push Button

3. Rangkaian Percobaan (kembali)

Rangkaian Percobaan

Prinsip Kerja    
    Pada rangkaian terdapat 2 buah Arduino yang mana salah satunya berfungsi sebagai master dan satu lagi sebagai slave. Kedua Arduino ini saling terhubung maing-masing melalui pin 13-13, 12-12 dan 11-11. Kemudian pin 7 master terhubug ke resistor dan button sedangkan pin 7 slave terhubungkan ke resistor dan LED. Pada listing programnya juga saling berhubugan yang mana sama-sama menggukan library #include <SPI.h> kemudian juga terdapat pendefinisian pin-pin yang digunakan serta yag saling terhubung antar Arduino master dan slave. 
    Pada bagian dalam programnya disusun sesuai dengan kondisi yang diminta untuk dapat menyalakan LED secara berkedip dengan delay 500 ms pada saat push button ditekan. Pada saat rangkaian ini disimulasikan, apabila push button tidak ditekan atau dalam kondisi LOW, maka LED tidak akan menyala. Namun ketika puh button ditekan atau dalam kondisi HIGH, maka LED akan menyala berkedip denga delay waktu 500ms sesuai yang diminta pada kondisi ini.  


4. Listing Percobaan (kembali)

Listing Program
  • Master
#include <SPI.h>
#define BUTTON 7
int buttonStatus;
int buttonVal;

void setup (){
  Serial.begin(115200);
  pinMode(BUTTON, INPUT);
  digitalWrite(SS, HIGH);
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV8);
}

void loop (){
  byte masterSend;
  buttonStatus = digitalRead(BUTTON);
  if (buttonStatus == HIGH){
    buttonVal = 1;
  }else{
    buttonVal = 0;
  }
  digitalWrite(SS, LOW);
  masterSend = buttonVal;
  SPI.transfer(masterSend);
  digitalWrite(SS, HIGH);
  delay(200);
}

  • Slave
#include <SPI.h>
#define LED 7
volatile byte slaveReceived;
volatile boolean received;

void setup (){
  Serial.begin (115200);
  pinMode(LED, OUTPUT);
  pinMode(MISO, OUTPUT);
  SPCR |= _BV(SPE);
  slaveReceived = 0;
  received = false;
  SPI.attachInterrupt();
}

ISR (SPI_STC_vect)
{
  slaveReceived = SPDR;
  received = true;
}

void loop (){
  if(received){
    while(slaveReceived == 0){
      digitalWrite(LED, HIGH);
      delay(500);
      digitalWrite(LED, LOW);
      delay(500);
    }
  }
}

Flowchart



5. Soal Analisa  (kembali)

1. Apakah pin SS bisa diganti dengan pin digital lain?
Jawab:
    Tidak bisa pin SS diganti dengan pin digital lainnya, disebabkan pin yang memiliki fitur yang sama dengan pin SS ini hanya terdapat satu pin saja pada Arduino. Pada rangkain tidak akan berjalan sesuai dengan semestinya, ketika pin SS dipindahkan ke pin digital lainnya.

2. Apa yang terjadi jika pin MISO di lepas?
Jawab:
   Jika pin MISO dilepaskan maka yang terjadi yaitu slave tidak akan dapat mentrasmisikan data ke master. Hal ini dikarenakan pin MISO yaitu master sebagai input dan slave sebagai output. Apabila pin MISO dilepas menyebabkan tidak akan terjadi komunikasi antara master dan slave.

3. Apakah pada komunikasi ini bisa menggunakan multi master?
Jawab:
    Pada komunikasi ini bisa menggunakan multi master, apabila yang digunakan 2 master dan 1 slave. Hal ini dapat terjadi apabila salah satu master yang melakukan komunikasi dengan salve. Disebabkan komunikasi dengan slave di waktu yang bersamaan tidak dapat dilakukan, karena SPI adalah membutuhkan identifikasi alamat masing-masing device dan komunikasi secara serial (bergantian). Jika kedua master digunakan secara bersamaan mengirimkan data ke slave maka akan terjadi bentrok data.


6. Video (kembali)




7. Link Download (kembali)

1. Download HTML       (unduh)
2. File simulasi        (unduh)
3. Listing program        
     Arduino master        (unduh)
     Arduino slave       (unduh)
4. Datasheet 
    Datasheet Arduino    (unduh)
    Datasheet Resistor     (unduh)
    Datasheet LED    (unduh)
5. Library       (unduh)
6. Video     (unduh) 

Tidak ada komentar:

Posting Komentar