Tugas Pendahuluan II

 



 
 
 
1. Kondisi [Kembali]
 Percobaan 2 Kondisi 4

 
Ubah boud rate pada Slave menjadi 34500



2. Gambar Rangkaian Simulasi [Kembali]
 
 
 
 
   
3.Flowchart [Kembali]
 
 https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuyYLnlob9IW_bsSTCn2u5Bnne7OcBKEENx_NOsm-9S0zMpN32gDafSSFqPYxfGMtCEzx-b4zkk5JYdnxJMIVddEmxXduV-smUIs3YnqbyRgss-N_PNGFY5VfhTC8-S_U09tReSdqth9k/s589/UART.PNG

 4.Listing Program[Kembali]
  
Master#include<SPI.h>                             //Library for SPI
#define LED 7          
#define ipbutton 2

int buttonvalue;
int x;

void setup (void)
{
  Serial.begin(34500);                   //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(void)
{
  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);              //Sets pin 7 HIGH
    Serial.println("Master LED ON");
  }
  else
  {
   digitalWrite(LED,LOW);               //Sets pin 7 LOW
   Serial.println("Master LED OFF");
  }
  delay(1000);
}
 
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(34500);

  pinMode(buttonpin,INPUT_PULLUP);               // 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);         //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(1000);
}
}

 
5. Video Simulasi [Kembali]
 


 
4. Prinsip Kerja Rangkaian [Kembali]
 

Pada percobaan kali ini kita menggunakan 2 arduino dimana salah satu nya kita jadikan master dan satunya lagi kita jadikan slave dimana master adalah pusat pengiriman data dan slave adalah penerima/pengirim.
Dapat dilihat bahwa kita menggunakan komunikasi spi yang mana dilihat pada pin2 arduinonya terhubung ke mosi,miso,sclk dan ss. Pada pin 2 dihubungkan ke button lalu diteruskan ke power dan juga dibungkan ke resistor lalu diteruskan ke ground dan pada pin 7 dihubungkan ke resistor lalu ke led lalu ke ground.
Pada rangkaian ini kita membuat 2 buah listing program yang mana 1 untuk listing program master dan 1 lagi untuk listing program dari slave arduino

 
5. Link Download [Kembali]

Link HTML                                  Download 
Link Video Simulasi                     Download
Rangkaian Simulasi                      Download
LED                                              Download
Button                                           Download
Arduino                                         Download
Library Arduino                            Download
 

Tidak ada komentar:

Posting Komentar

  BAHAN PRESENTASI UNTUK  MATA KULIAH KIMIA  2020 OLEH: Daffa Erdinsyah Putra 2010953030 Dosen Pengampu: Darw...