Hell Yeah Pointer 6

Rabu, 24 November 2021

Laporan Akhir Modul 3 Percobaan 2 Praktikum Mikrokontroller & Mikroprocessor









Transistor



Push Button

LED
Arduino
 
Resistor

 
 Power Supply




//SPI MASTER (ARDUINO)


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

{
  Serial.begin(115200);                   //Starts Serial Communication at Baud Rate 115200 
  
  pinMode(ipbutton,INPUT_PULLUP);                //Sets pin 2 as input 
  pinMode(buzz,OUTPUT);                    //Sets pin 7 as Output
  
  SPI.begin();                            //Begins the SPI commnuication
  SPI.setClockDivider(SPI_CLOCK_DIV4);    //Sets clock for SPI communication at 8 (16/8=2Mhz)
  digitalWrite(SS,HIGH);                  // Setting SlaveSelect as HIGH (So master doesnt connnect with slave)
}

void loop(void)
{
  byte Mastersend,Mastereceive;          

  buttonvalue = digitalRead(ipbutton);   //Reads the status of the pin 2

  if(buttonvalue == LOW)                //Logic for Setting x value (To be sent to slave) depending upon input from pin 2
  {
    x = 1;
  }
  else
  {
    x = 0;
  }
  
  digitalWrite(SS, LOW);                  //Starts communication with Slave connected to master
  
  Mastersend = x;                            
  Mastereceive=SPI.transfer(Mastersend); //Send the mastersend value to slave also receives value from slave
  
  if(Mastereceive == 1)                   //Logic for setting the LED output depending upon value received from slave
  {
    digitalWrite(buzz,HIGH);              //Sets pin 7 HIGH
    Serial.println("Master Buzz ON");
    delay(1000);
  }
  else
  {
   digitalWrite(buzz,LOW);               //Sets pin 7 LOW
//   Serial.println("Master Buzz OFF");
  }
  delay(1000);
}


//SPI SLAVE (ARDUINO)


#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);               // Setting pin 2 as INPUT
  pinMode(buzz,OUTPUT);                 // Setting pin 7 as OUTPUT
  pinMode(MISO,OUTPUT);                   //Sets MISO as OUTPUT (Have to Send data to Master IN 

  SPCR |= _BV(SPE);                       //Turn on SPI in Slave Mode
  received = false;

  SPI.attachInterrupt();                  //Interuupt ON is set for SPI commnucation
  
}

ISR (SPI_STC_vect)                        //Inerrrput routine function 
{
  Slavereceived = SPDR;         // Value received from master if store in variable slavereceived
  received = true;                        //Sets received as True 
}

void loop()
{ if(received)                            //Logic to SET LED ON OR OFF depending upon the value recerived from master
   {
      if (Slavereceived==1) 
      {
        digitalWrite(buzz,HIGH);         //Sets pin 7 as HIGH LED ON
        Serial.println("Slave buzz ON");
        delay(1000);
      }else
      {
        digitalWrite(buzz,LOW);          //Sets pin 7 as LOW LED OFF
//        Serial.println("Slave buzz OFF");
      }
      
      buttonvalue = digitalRead(buttonpin);  // Reads the status of the pin 2
      
      if (buttonvalue == LOW)               //Logic to set the value of x to send to master
      {
        x=1;
        
      }else
      {
        x=0;
      }
      
  Slavesend=x;                             
  SPDR = Slavesend;                           //Sends the x value to master via SPDR 
  delay(1000);
}
}










Percobaan 1
1. dari percobaan yang dilakukan apakah komunikasi simplex, half duplex, full duplex.
Dari percobaan tersebut dilakukan proses full duplex. Karena proses pengiriman terjadi dalam 1 waktu antara master dengan slave serta antara slave dengan master sehingga komunikasi tersebut merupakan komunikasi full duplex

2. Jika serial begin pada master 9600 dan pada slave tetap apa yang terjadi dan lakukan sebaliknya
Jika baudrate diganti antara slave dan master dengan baudrate yang berbeda. Maka proses pengiriman data masih dapat dilakukan dengan baik. Hal ini dikarenakan pada komunikasi SPI tidak bergantung pada kecepatan baudrate 

3. Ganti clock speed menjadi 4. apa yang terjadi dan bandingkan dengan yang lain
Pada pergantian clock speed menjadi 4MHz proses komunikasi SPI masih dapat dilakukan dengan baik antara master dengan slave dan slave dengan master. Namun kecepatan pengiriman data antara master dan slave akan menjadi lebih cepat dibandingkan sebelumnya dikarenakan sebelumnya kecepatan dari clock tersebut adalah 2 MHz. Begitu pula dengan 8MHz dan lainnya. 




7. Download[kembali] 


 


Tidak ada komentar:

Posting Komentar

Laporan Akhir Modul 4

[KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Tujuan Perancangan 2. Hardware 3. Dasar Teori 4. Listing Program 5. Flowchart 6....