M3 (TP2) percobaan 2 kondisi 4



1. Kondisi[Back]

Percobaan 2 kondisi 4

Ubah boud rate pada Slave menjadi 34500

2. Gambar Rangkaian Simulasi[Back]


                                                                   

Gambar Percobaan 2 kondisi 4


3. Video Simulasi[Back]



                                                     Video Percobaan 2 kondisi 4


4. Prinsip Kerja Rangkaian[Back]

Percobaan 2 kondisi 4

Pada rangkaian percobaan 2 kondisi 4 yang mana kondisi yang diberikan Ubah boud rate pada Slave menjadi 34500. Komponen yang ada pada rangkaian ini adalah Arduino uno yang terdiri atas slave dan master, lalu LED, Button dan resistor. Dimana master itu sebagai pusat pengirim data dan slave sendiri penerima/ pengirim data, dimana disini master dan slave itu saling terhubung dengan menyambungkan pin 11, 12 dan 13 nya. Saat rangkaian di jalankan LED tidak menyala karena nilai pada boud rate pada slave berbeda dengan boud rate pada master, hal ini membuat tidak seimbangnya kecepatan pengiriman data antara slave dan master oleh karena itu LED tidak menyala


listing program

MASTER

#include  <SPI.h>  //Deklarasi library SPI

void setup (void) {
  Serial.begin(115200); //Set baud rate 115200
  digitalWrite(SS, HIGH);
  // disable Slave Select
  SPI.begin ();
  SPI.setClockDivider(SPI_CLOCK_DIV8);  //divide the clock by 8
}

void loop (void) {
  char c;
  digitalWrite(SS, LOW);  //enable Slave Select
  // send test string
  for (const char * p = "Hello, world!\r" ; c = *p; p++)
  {
    SPI.transfer (c);
    Serial.print(c);
  }
  digitalWrite(SS, HIGH); // disable Slave Select
  delay(2000);

}


SLAVE

#include <SPI.h>
char buff [50];
volatile byte indx;
volatile boolean process;

void setup (void) {
  Serial.begin (34500);
  pinMode(MISO, OUTPUT); // have to send on master in so it set as output
  SPCR |= _BV(SPE); // turn on SPI in slave mode
  indx = 0; // buffer empty
  process = false;
  SPI.attachInterrupt(); // turn on interrupt
}
ISR (SPI_STC_vect) // SPI interrupt routine
{
  byte c = SPDR; // read byte from SPI Data Register
  if (indx < sizeof buff) {
    buff [indx++] = c; // save data in the next index in the array buff
    if (c == '\r') //check for the end of the word
      process = true;
  }
}
void loop (void) {
  if (process) {
    process = false; //reset the process
    Serial.println (buff); //print the array on serial monitor
    indx = 0; //reset button to zero
  }
}



5. Link Download[Back]

 

Link Download HTML [disini]

Link Download Rangkaian [disini]

Link Download Video [disini]

Link Download Datasheet Resistor [disini]

Link Download Datasheet Button [disini]

Link Download Datasheet LED [disini]

Link Download Datasheet Arduino Uno [disini]

Link Download Library Arduino Uno [disini]



Tidak ada komentar:

Posting Komentar