Laporan Akhir 2 Modul 3 Up Uc





1. Komponen [Kembali] 

1. Arduino

Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain. 


2. LED





Light Emitting Diode atau sering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan cahaya monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang dipergunakannya. LED juga dapat memancarkan sinar inframerah yang tidak tampak oleh mata seperti yang sering kita jumpai pada Remote Control TV ataupun Remote Control perangkat elektronik lainnya.

3. Push Button

Saklar tekan yang berfungsi sebagai pemutus atau penyambung arus listrik dari sumber arus ke beban listrik. Suatu sistem saklar tekan push button terdiri dari saklar tekan start, stop reset dan saklar tekan untuk emergency. Push button memiliki kontak NC (normally close) dan NO (normally open). Prinsip kerja Push Button adalah apabila dalam keadaan normal tidak ditekan maka kontak tidak berubah, apabila ditekan maka kontak NC akan berfungsi sebagai stop (memberhentikan) dan kontak NO akan berfungsi sebagai start (menjalankan) biasanya digunakan pada sistem pengontrolan motor – motor induksi untuk menjalankan mematikan motor pada industri – industri.

2. Rangkaian Simulasi [Kembali]  

Gambar 4. Rangkaian setelah di RUN


Gambar 5. Rangkaian Sebelum di RUN

 

3. Flowchart [Kembali]  

 


Gambar 6. Flowchart Master




Gambar 7. Flowchart Slave



4. 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);
  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);
  }
}

5. Video Simulasi [Kembali]  


 

6. Kondisi [Kembali] 

ANALISA PERCOBAAN 2 [SPI[:

1. Bisakah pada SPI menggunakan lebih dari 1 master? Jelaskan beserta alasannya

Tidak, karena untuk SPI hanya dapat menggunakan 1 master saja. Hal tersebut dikarenakan Master pada SPI sebagai pengontrol komunikasi serial sinkron pada SPI. Hal tersebut dapat menerima atau mengirim data. Akan tetapi, SPI ini dapat memiliki lebih dari 1 Slave, terdapat Slave Select (SS) untuk memilih (mengontrol) Slave mana yang dipilih oleh Master

2. Jelaskan pengaruh input pullup dan pulldown pada rangkaian !

Jawab :

Pengaruh input pullup dan pulldown pada rangkaian tersebut ada pada button sebagai data yang akan dibaca oleh Mikrokontroler Master yang kemudian akan mengirimkan paket data (bit-bit) ke Slave. Berdasarkan program Arduino yang dibuat, ketika button dalam keadaan pullup, maka button akan menerima logika LOW dari Arduino (bernilai 0) sehingga ketika terbaca oleh Master, Master akan mengirimkan paket data “1” dimana pada Slave ketika menerima data “1” berarti LED hidup (berlogika HIGH). Sedangkan ketika pulldown, button akan menerima logika HIGH (bernilai 1) sehingga ketika terbaca oleh Master selain dari nilai 0, Master akan mengirimkan data “2” dimana pada Slave ketika menerima data selain dari “1” berarti LED mati (berlogika LOW).

3. Jelaskan prinsip kerja SPI pada rangkaian

Penjelasan Rangkaian :

Ketika button di tekan (ON),maka rangkaian akan terhubung,sehingga akan menjadi input pada master.Sinyal clock di alirkan dari master menuju slave melalui pin SCK (pin 13) yang memiliki fungsi untuk sinkronisasi. Untuk pin SS (pin 10) berguna untuk memilih slave mana yang akan di kirim data. Kemudian karna inputnya master dan outputnya slave,maka untuk komunikasi disini kita mengunakan pin MOSI (Master Input Serial Output) . Setelah data terbaca di slave ,maka akan diteruskan menuju pin 2 pada slave sebagai output sehingga LED akan ON. Sedangkan jika button tidak di tekan (OFF) maka LED pada slave nantinya akan OFF.

7. Link Download [Kembali]

File Library Arduino = Klik Disini

File Data Sheet Arduino = Klik Disini

File Video Simulasi = Klik Disini

File Rangkaian = Klik Disini

File Listing Program Master = Klik Disini

File Listing program Slave = Klik Disini

File Flowchart Master = Klik Disini

File Flowchart Slave = Klik Disini

File Html = Klik Disini

Tidak ada komentar:

Posting Komentar