TP 1





1. Kondisi
[Kembali]

Percobaan 1 kondisi 15

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

2. Rangkaian Simulasi [Kembali]










3. Video [Kembali]











4. Prinsip Kerja [Kembali]

pada percobaan 2 kondisi 1 tersebut dimana Ketika Rangkaian dijalankan, arduino akan menjalankan program sesuai dengan listing program yang telah di programkan melalui aplikasi arduino uno. berikut programnya:

untuk 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_DIV128);    //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(500);
}


untuk 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(500);
}
}

    
    dari program diatas dapat dilihat bahwa ketika pada program master dimana master merupakat perangkat yang mengendalikan perangkat lain dan slave merupakan perangkat yang dikendalikan. 

    pada percobaan kedua ini merupakan percobaan komunikasi SPI dimana SPI tersebut adalah komunikasi serial yang mode transmisi nya full duplex(komunikasi dua arah dan secara bersamaan) dan jenis transmisinya yaitu sychronus(mengirimkan data dengan clock). Dari gambar rangkain dapat kita lihat bahwa SPI ini punya 4 kaki yaitu MOSI, MISO, SCLK, dan SS
masing-masing fungsinya adalah

MOSI : Master Output Slave Input Artinya jika dikonfigurasi sebagai master maka pin MOSI sebagai output tetapi jika dikonfigurasi sebagai slave maka pin MOSI sebagai input.

MISO : Master Input Slave Output Artinya jika dikonfigurasi sebagai master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka pin MISO sebagai output.
SCLK : Clock Jika dikonfigurasi sebagai master maka pin CLK berlaku sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku sebagai input.
SS/CS : Slave Select/ Chip Select adalah jalur master memilih slave mana yang akan dikirimkan data.
prosesnya adalah 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. Sinyal clock dialirkan dari master ke slave yang berfungsi untuk sinkronisasi. Master dapat memilih slave mana yang akan dikirimkan data melalui slave select, kemudian data dikirimkan dari master ke slave melalui MOSI. Jika master butuh respon data maka slave akan mentransfer data ke master melalui MISO.


5. Link Download [Kembali]

- video download file
-data sheet led klik disini
-Datasheet Arduino UNO download file
-data sheet ground klik disini 
-data sheet push button  klik disini 
-data sheet resistor klik disini
-listing program slave download file
-listing program master klik disini
-simulasi rangkaian download file












Entri yang Diunggulkan

  BAHAN PRESENTASI UNTUK MATAKULIAH  ELEKTRONIKA B OLEH: Dini Meilinda 2010951022 Dosen Pengampu: Dr. Ir. Darwison Referensi:           Darw...