TP Modul 3 Praktikum Up&Uc




1. Kondisi [Kembali]

Modul 3 Percobaan 2 Kondisi 1

Buatlah kondisi awal LED mati, lalu hidup berkedip dengan delay 500 ms


2. Gambar Rangkaian Simulasi [Kembali]

Rangkaian Sebelum disimulasikan :


Rangkaian setelah disimulasikan :




3. Flowchart [Kembali]





4. Listing Program [Kembali]

  • Master

#include<SPI.h>                             //Library for SPI 

#define LED 7           

#define ipbutton 2

int buttonvalue;

int x;

void setup ()


{

  Serial.begin(115200);                   //Starts Serial Communication at Baud Rate 115200 

  

  pinMode(ipbutton,INPUT);                //Sets pin 2 as input 

  pinMode(LED,OUTPUT);                    //Sets pin 7 as Output

  

  SPI.begin();                            //Begins the SPI commnuication

  SPI.setClockDivider(SPI_CLOCK_DIV8);    //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()

{

  byte Mastersend,Mastereceive;          


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


  if(buttonvalue == HIGH)                //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(LED,HIGH);

    delay(500);

    digitalWrite(LED,LOW);

          //Sets pin 7 HIGH

    Serial.println("Master LED ON");

  }

  else

  {

   digitalWrite(LED,LOW);               //Sets pin 7 LOW

   Serial.println("Master LED OFF");

  }

  delay(250);

}


  • Slave

#include<SPI.h>

#define LEDpin 7

#define buttonpin 2

volatile boolean received;

volatile byte Slavereceived,Slavesend;

int buttonvalue;

int x;

void setup()


{

  Serial.begin(115200);

  

  pinMode(buttonpin,INPUT);               // Setting pin 2 as INPUT

  pinMode(LEDpin,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(LEDpin,HIGH);

        delay(500);    

        digitalWrite(LEDpin, LOW);//Sets pin 7 as HIGH LED ON

        Serial.println("Slave LED ON");

      }else

      {

        digitalWrite(LEDpin,LOW);          //Sets pin 7 as LOW LED OFF

        Serial.println("Slave LED OFF");

      }

      

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

      

      if (buttonvalue == HIGH)               //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(250);

}

}


5. Video Simulasi dan Prinsip Kerja [Kembali]

  • Video Simulasi
  • Prinsip Kerja
Arduino 1 ditentukan sebagai master dan arduino 2 yang bertindak sebagai slave. Master dan slave ini dihubungkan melalui kaki pin 10 master ke kaki pin 10 slave sebagai SS,  pin 11 master ke kaki pin 11 slave sebagai MOSI, pin 12 master ke kaki pin 12 slave sebagai MISO, dan pin 13 master ke kaki pin 13 slave sebagai SCK. pin 2 (push button) sebagai input dan pin 7 sebagai output pada masing masing arduino. Ketika input button berlogika HIGH maka akan ada keluaran di pin MOSI ke slave sehingga LED pada slave menyala. sedangkan ketika input button pada slave  logika HIGH maka akan ada keluaran di pin MISO akibatnya LED pada Master menyala.


6. Link Download [Kembali]

Download File HTML 
Download File Rangkaian 
Download Vidio Simulasi 
Download Library
Download Datasheet Arduino
Download Datasheet Push Button
Download Datasheet LED








Tidak ada komentar:

Posting Komentar