TUGAS PENDAHULUAN 2

 PERCOBAAN 2

 M3






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

2. Gambar Rangkaian [kembali]


3. Vidio simulasi [kembali]


4. Prinsip kerja [kembali]

      Pada prinsip kerja rangkaian diatas dimana merupakan rangkaian berupa SPI yang mana pengiriman datanya secara sinkron dan mode transmisinya berupa full duplex. pada SPI ini terdapat 4 buag pin yaitu pin 13 (SCK) pin 12 (MOSI) pin 11 (MISO) dan pin 10 (SS). yang nantinya pada arduino bagian MASTER, akan memilih slave mana ayang akan dikirm datanya lewat pin SS lalu MASTER akan memberikan output kepada SLAVE (MOSI). setelah SLAVE menerima input maka SLAVE akan juga memberikan output pada MASTER (MISO). dan nantinya akan terus berulang. jika pada rangkaian diatas diaman menggunakan indikator berupa LED yang mana LED pada slave terlebih dahhulu hidup lalu LED pada MASTER yang mana dilakukan secara berulang dengan delay 1 detik.

  •     listining program

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

{
  Serial.begin(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);    
  digitalWrite(SS,HIGH);                  
}

void loop()
{
  byte Mastersend,Mastereceive;          

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

  if(buttonvalue == HIGH)                
    x = 1;
  }
  else
  {
    x = 0;
  }
 
  digitalWrite(SS, LOW);     //Starts communication with Slave
 
  Mastersend = x;                            
  Mastereceive=SPI.transfer(Mastersend);
 
  if(Mastereceive == 1)                  
  {
    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(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(115200);
 
  pinMode(buttonpin,INPUT);    // Setting pin 2 as INPUT
  pinMode(LEDpin,OUTPUT);      // Setting pin 7 as OUTPUT
  pinMode(MISO,OUTPUT);        

  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;        
  received = true;             //Sets received as True
}

void loop()
{ if(received)                            
      {
        digitalWrite(LEDpin,HIGH);
        delay(1000);    
        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)              
      {
        x=1;
       
      }else
      {
        x=0;
      }
     
  Slavesend=x;                            
  SPDR = Slavesend;            //Sends the x value to master via SPDR
  delay(250);
}
}


    
    Html disini
    Vidio Percobaan disini
    File Rangkaian Percobaan disini
    File Program Percobaan disini
     Datasheet Arduino Uno disini
    Datasheet Motor DC disini
    Datasheet LCD disini
    Datasheet IC L293D disini
    Datasheet Button disini
    Datasheet Potensiometer disini

    
 




Tidak ada komentar:

Posting Komentar

  ELECTRICAL ENGINEERING Oleh : Ilham Jasrial Putra Dosen Pengampu : Darwinson, M.T Referensi : 1.   Robert L. Boylestad and Louis Nas...