Laporan Akhir 1 Percobaan 2




 Laporan Akhir 1 Percobaan 2


1. Komponen [KEMBALI]

1. Arduino Uno




2. Resistor




3. Transistor




4. Buzzer




5. Button

 




  • //Master

  • //Slave



//Master

#include<SPI.h>                            
#define buzz 7           
#define ipbutton 2
int buttonvalue;
int x;
void setup (void)

{
  Serial.begin(115200);                   
  
  pinMode(ipbutton,INPUT_PULLUP);                 
  pinMode(buzz,OUTPUT);                   
  
  SPI.begin();                            
  SPI.setClockDivider(SPI_CLOCK_DIV4);    
  digitalWrite(SS,HIGH);                
}

void loop(void)
{
  byte Mastersend,Mastereceive;          

  buttonvalue = digitalRead(ipbutton);  

  if(buttonvalue == LOW)               
  {
    x = 1;
  }
  else
  {
    x = 0;
  }
  
  digitalWrite(SS, LOW);                 
  
  Mastersend = x;                            
  Mastereceive=SPI.transfer(Mastersend); 
  
  if(Mastereceive == 1)                   
  {
    digitalWrite(buzz,HIGH);             
    Serial.println("Master Buzz ON");
    delay(1000);
  }
  else
  {
   digitalWrite(buzz,LOW);          

  }
  delay(1000);
}


// Slave

#include<SPI.h>
#define buzz 7
#define buttonpin 2
volatile boolean received;
volatile byte Slavereceived,Slavesend;
int buttonvalue;
int x;
void setup()

{
  Serial.begin(115200);
  
  pinMode(buttonpin,INPUT_PULLUP);              
  pinMode(buzz,OUTPUT);                
  pinMode(MISO,OUTPUT);                  

  SPCR |= _BV(SPE);                     
  received = false;

  SPI.attachInterrupt();                 
  
}

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

void loop()
{ if(received)                           
   {
      if (Slavereceived==1) 
      {
        digitalWrite(buzz,HIGH);        
        Serial.println("Slave buzz ON");
        delay(1000);
      }else
      {
        digitalWrite(buzz,LOW);       
       Serial.println("Slave buzz OFF");
      }
      
      buttonvalue = digitalRead(buttonpin);
      
      if (buttonvalue == LOW)             
      {
        x=1;
        
      }else
      {
        x=0;
      }
      
  Slavesend = x;                             
  SPDR = Slavesend;                          
  delay(1000);
}
}







1.  Analisa Percobaan ini apakah informasi yang diberikan simplex, half duplex, atau full duplex?

   Jawab :

Rangkaian tersebut adalah rangkaian SPI dengan komunikasi secara full duplex. Hal ini dapat diketahui dari pin yang dihubungkan adalah pin MISO dan MOSI dimana data bertransmisi dari master ke slave melalui pin MISO lalu tanpa diproses, data langsung ditransmisikan kembali ke master melalui pin MOSI. Ini dapat terjadi karena bilik-bilik pada slot bit yang kosong dapat langsung diisi oleh bit yang datang, begitu seterusnya.

 

2.  Apa yang terjadi jika serial begin diganti 115200 menjadi 9600?

Jawab :

Serial.begin digunakan untuk mengatur kecepatan komunikasi, dalam bit per  detik. Satu byte sama dengan 8 bit, tetapi koneksi serial mengirim bit start dan stop untuk mengidentifikasi awal dan akhir byte tertentu ke sistem penerima. Jadi, 10 bit diperlukan untuk mengirim satu karakter. Singkatnya mengubah angka mengubah kecepatan.

Set baud rate pada Master dan Slave adalah 115200. Sedangkan jika ditukar salah satu atau keduanya dengan 9600, maka rangkaian akan tetap berjalan seperti yang diinginkan karena transmisi data secara full duplex sehingga tidak ada terjadi penumpukan data-data (bit-bit).

 

3.   Apa pengaruh clock divider jika diubah menjadi 0 dan 16, yang normalnya 8?

Jawab :

SPI_CLOCK_DIV8. Artinya adalah membagi clock pada komunikasi menjadi 16/8 = 2 Mhz. Kenapa 8? Karena pembagi yang tersedia bisa berupa 2, 4, 8, 16, 32, 64, 128. Jadi walaupun diganti menjadi 0 dan 16, rangkaian masih bisa berjalan sesuai dengan yang diinginkan.



  • File HTML                                Download
  • File Rangkaian Simulasi           Download
  • Listing Program Master            Download
  • Listing Program Slave              Download
  • Flowchart                                  Download
  • Video Simulasi                          Download

Tidak ada komentar:

Posting Komentar

BAHAN PRESENTASI UNTUK MATAKULIAH MIKROPROSESOR DAN MIKROKONTROLER SEMESTER GANJIL 2021-2022 Oleh: Fadel Abdhana ...