Tugas Pendahuluan 2


Tugas Pendahuluan Percobaan 2 Kondisi 18



1. Kondisi
[Kembali]

        Pada  tugas pendahuluan pertama modul 1 ini untuk percobaan 2 saya menggunakan kondisi 10. Soalnya yaitu :
      Tambahkan buzzer sebagai input. Sehingga input yang tersedia adalah LED dan Buzzer


2. Gambar Rangkaian Simulasi [Kembali]
    
        Bentuk dari rangkaian sebelum disimulasikan yaitu sebagai berikut :


       Bentuk dari rangkaian setelah disimulasikan yaitu sebagai berikut :


3. Listing Program [Kembali]

MASTER
#include <SPI.h> //Deklarasi library SPI
#define button 2
void setup (void) {
  pinMode(button, INPUT_PULLUP);
  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;
  int nilai=digitalRead(button);
  if(nilai==0){
   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>
#define led 2

char buff [50];
volatile byte indx;
volatile boolean process;

void setup (void) {
  Serial.begin (115200); // harus sama antara master dan slave
  pinMode(led, 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) {
    digitalWrite(led, 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(led, LOW);
  }
}

4. Video Simulasi [Kembali]




5. Prinsip Kerja Rangkaian [Kembali]

         Pada percobaan 2 kondisi 18 di modul 1 ini, menggunakan dua arduino. Arduino uno pertama berfungsi sebagai master dan arduino kedua sebagai slave. Pada percobaan 2 ini menggunakan SPI, dimana SPI terdapat 4 pin yang digunakannya, yaitu pin 10 sebagai SS (Select Slave), pin 11 sebagai MOSI (Master Output Slave Input), pin 12 sebagai MISO (Master Input Slave Output), pin SCK (Clock). Pada pin 2 digital Master disambungkan push button. Pada pin 3 digital Slave disambungkan  dengan buzzer. Pin 2 digital Slave dihubungkan dengan LED. Lalu kita buat program yang sesuai untuk menjalankan rangkaian pada proteus. Setelah itu dicopykan hex nya  lalu dimasukkan ke arduino. Maka program akan berjalan sesuai dengan kondisi yang diinginkan, yaitu menambahkan buzzer sebagai input sehingga input yang tersedia adalah led dan buzzer. 

6. Link Download [Kembali]

Download file HTML [disini]
Download file rangkaian [disini]
Download file video simulasi [disini]
Download listing program master [disini]
Download listing program slave [disini]
Download library arduino [disini]
Download datasheet arduino [disini]
Download datasheet buzzer [disini]
Download datasheet LED [disini]

Tidak ada komentar:

Posting Komentar

BAHAN PRESENTASI MATA KULIAH SISTEM DIGITAL SEMESTER GENAP TA 2021/2022 OLEH : NADILLA FADILLAH 2010951020 DOSEN PENGAMPU : Darwison, M.T Re...