Modul 3

[KEMBALI KE MENU SEBELUMNYA]




1. Kondisi [Kembali]

Percobaan 2 Kondisi 10

Ganti LED menjadi Buzzer

    Kondisi awal:



Push Button


LED


Arduino

Resistor
 

 Power Supply


 
    3. Gambar Rangkaian Simulasi  [Kembali] 

a. Sebelum di Run
 

b. Setelah di Run (Buzzer akan menyala)



a. Flowchart Listing Program Master

b. Flowchart Listing Program Slave


5. Listing Program  [Kembali] 

a. Listing Program Master
//MASTER

#include <SPI.h> //Deklarasi library SPI
#define button 2

char data = "1";
void setup (void) {
  pinMode(button, INPUT_PULLUP);
  Serial.begin(115200); //untuk memulai serial dengan Set baud rate 115200 untuk USART dan SPI
  digitalWrite(SS, HIGH); // disable Slave Select
  SPI.begin (); // untuk memulai komunikasi SPI
  SPI.setClockDivider(SPI_CLOCK_DIV8); //divide the clock by 8
}

void loop (void) {
  char c; // menginisialisasikan variabel C dengan tipe data char
  int nilai = digitalRead(button);
  if (nilai == 0) {
    digitalWrite(SS, LOW); // enable Slave Select untuk menghidupkan dari slave dibuat low karena si slave akan hidup ketika diberi input low karena dari master berlogika HIGH supaya arus mengalir
    // send test string
    for (const char * p = "1" ; c = *p; p++)
    {
      SPI.transfer (c);
      Serial.print(c); // sebagai penghubung serial monitornya
    }
    SPI.transfer("1");
    digitalWrite(SS, HIGH); // disable Slave Select menggunakan HIGH dikarenkan HIGH bertemu HIGH akan mati
    delay(2000);
  }
}

b. Listing Program Slave
//SLAVE

#include <SPI.h> //Deklarasi library SPI
#define buzzer 2

char buff [50]; // untuk menginisialisasikan variabel buff pada spi.h tinggal tambahkan library
volatile byte indx;// tidak ada koma
volatile boolean process;//  tidak ada koma dan boolean merupakan tipe data yang akan memilih

void setup (void) {
  Serial.begin (115200);// serial begin antara master dan slave harus sama
  pinMode(buzzer, 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;// Ketika dia masuk maka dia akan mati
  SPI.attachInterrupt(); // turn on interrupt
}

ISR (SPI_STC_vect) // SPI interrupt routine // fungsi yg digunakan Ketika program sudah berjalan
{ // fungsi yg digunakan Ketika program sudah berjalan
  byte c = SPDR; // read byte from SPI Data Register from slave
  if (indx < sizeof buff) {
    buff [indx++] = c; // save data in the next index in the array buff
    if (c == '1') //check for the end of the word
      process = true;
  }
  if (c == '1') { //check for the end of the word
    process = true;
  }
}

void loop (void) {
  if (process) {
    digitalWrite(buzzer, HIGH);
    process = false; //reset the process
    Serial.println (buff); //print the array on serial monitor
    indx = 0; //reset button to zero
    delay(1000);
  }
  else
  {
    digitalWrite(buzzer, LOW);
  }
}

    Pada rangkaian simulasi percobaan ini, menggunakan komunikasi SPI, digunakan  2 buah arduino dimana yang satu sebagai master dan yang lainnya sebagai slave. Untuk listing program masing-masing arduino dapat dilihat di atas. Kedua arduino ini saling berhubungan melalui pin SCK, MISO, MOSI, dan SS.

      Rangkaian pada push button yang digunakan adalah rangkaian pull up, dimana saat push button tidak di tekan maka akan berlogika 1 atau active HIGH. 

    Kondisi awal button adalah active HIGH, sedangkan kondisi untuk Buzzer adalah acrive LOW. Saat push button ditekan, maka Button akan active LOW dan Buzzer active HIGH sehingga buzzer akan berbunyi selama waktu 2 detik, sesuai dengan listing program yang telah di buat. Selanjutnya buzzer akan berhenti dengan selang waktu 1 detik sesuai dengan yang kita buat pada program arduino slave. Buzzer akan berbunyi saat push button nya kita matikan.


Download file rangkaian simulasi di sini
Download video simulasi di sini
Download HTML di sini
Download Listing Program Master di sini
Download Listing Program Slave di sini
Download Library Arduino di sini
Download Datasheet Push Button di sini

Tidak ada komentar:

Posting Komentar