Laporan Akhir 2 Modul 3





1. Komponen [kembali]
  • Arduino Uno

Arduino Uno adalah sebuah board minimum system mikrokontroller yang mana di dalamnya terdapat mikrokontroller AVR seri ATmega 328 yang merupakan produk dari Atmel. Umumnya Arduino memiliki 14 pin input/output yang terdiri dari :

·       6 pin dapat digunakan sebagai output PWM

·       6 pin  sebagai analog input

·       Osilator Kristal 16 MHz

·       Sebuah koneksi USB

·       Sebuah Power Jack

·       Sebuah ICSP Header

·       Dan tombol reset

Oleh karena itu arduino uno mampu mensupport mikrokontroller secara mudah terhubung dengan kabel power USB atau kabel power supply adaptor AC ke DC maupun dengan batteray. Sehingga untuk mendukung mikrokontroller  tersebut bekerja , cukup sambungkan ke powes supply atau hubungkan melalui kabel USB ke PC, maka Arduino Uno telah siap bekerja.

  • Push Button

Push Button adalah perangkat / saklar sederhana yang berfungsi untuk menghubungkan atau memutuskan aliran arus listrik dengan sistem kerja tekan unlock (tidak mengunci). Sistem kerja unlock disini berarti saklar akan bekerja sebagai device penghubung atau pemutus aliran arus listrik saat tombol ditekan, dan saat tombol tidak ditekan (dilepas), maka saklar akan kembali pada kondisi normal.
Berdasarkan fungsi kerjanya yang menghubungkan dan memutuskan, push button  mempunyai 2 tipe kontak yaitu :
  • NO (Normally Open), merupakan kontak terminal dimana kondisi normalnya terbuka (aliran arus listrik tidak mengalir). Dan ketika tombol saklar ditekan, kontak yang NO ini akan menjadi menutup (Close) dan mengalirkan atau menghubungkan arus listrik. Kontak NO digunakan sebagai penghubung atau menyalakan sistem circuit (Push Button ON).
  • NC (Normally Close), merupakan kontak terminal dimana kondisi normalnya tertutup (mengalirkan arus litrik). Dan ketika tombol saklar push button ditekan, kontak NC ini akan menjadi membuka (Open), sehingga memutus aliran arus listrik. Kontak NC digunakan sebagai pemutus atau mematikan sistem circuit (Push Button Off).
  • Buzzer


Buzzer adalah sebuah komponen elektronika yang dapat mengubah sinyal listrik menjadi getaran suara. Buzzer ini biasa dipakai pada sistem alarm, juga bisa digunakan sebagai indikasi suara. Buzzer adalah komponen elektronika yang tergolong tranduser. Sederhananya buzzer mempunyai 2 buah kaki yaitu positive dan negative.

Spesifikasi:

  • Resistor

Resistor merupakan komponen penting dan sering dijumpai dalam sirkuit Elektronik. Boleh dikatakan hampir setiap sirkuit Elektronik pasti ada Resistor. Tetapi banyak diantara kita yang bekerja di perusahaan perakitan Elektronik maupun yang menggunakan peralatan Elektronik tersebut tidak mengetahui cara membaca kode warna ataupun kode angka yang ada ditubuh Resistor itu sendiri.

Seperti yang dikatakan sebelumnya, nilai Resistor yang berbentuk Axial adalah diwakili oleh Warna-warna yang terdapat di tubuh (body) Resistor itu sendiri dalam bentuk Gelang. Umumnya terdapat 4 Gelang di tubuh resistor, tetapi ada juga yang 5 gelang.

Gelang warna Emas dan Perak biasanya terletak agak jauh dari gelang warna lainnya sebagai tanda gelang terakhir. Gelang Terakhirnya ini juga merupakan nilai toleransi pada nilai Resistor yang bersangkutan.

Tabel dibawah ini adalah warna-warna yang terdapat di Tubuh Resistor :



2. Rangkaian Simulasi [kembali]


3. Flowchart [kembali]




4. Listing Program [kembali]

#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(500);
  }
}

#include <SPI.h>
#define buzzer 2

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

void setup (void) {
  Serial.begin (115200);
  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;
  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(buzzer, HIGH);
    process = false; //reset the process
    Serial.println (buff); //print the array on serial monitor
    indx = 0; //reset button to zero
    delay(500);
  }
  else
  {
    digitalWrite(buzzer, LOW);
  }
}

5. Video [kembali]


Prinsip kerja :
Terdapat beberapa komponen pada percobaan tersebut di antaranya 2 buah arduino uno, push button, buzzer, resistor, ground dan voltmeter. Dimana pin 2 digital pada arduino master dihubungkan ke puss button, lalu pin 2 digital pada arduino slave dihubungkan ke resistor 1k lalu ke buzzer dan ground. Untuk pin 13,12,11,10 digital pada arduino saling dihubungkan antara master dan slave. Voltmeter digunakan untuk mengukur besarnya tegangan pada buzzer, dimana operating voltage bernilai maksimal sesuai dengan besarnya tegangan yang mengalir dari resistor agar buzzer menyala.
Selanjutnya pada listing program arduino-master, apabila push button bernilai 0 maka SS akan berlogika LOW agar hidup dan mati saat SS berlogika HIGH. Pada listing program arduino-slave, apabila data yang masuk SS berlogika low atau aktif maka proses tersebut false dan menyebabkan buzzer menyala dan begitu sebaliknya.

6. Kondisi [kembali]

1.  Jelaskan transmisi data pada SPI dan gambarkan timing diagram dari transmisi data pada SPI

Jawab :

  • MOSI (Master Output Slave Input) : Jika dikonfigurasi sebagai master maka pin MOSI sebagai output tetapi jika dikonfigurasi sebagai slave maka pin MOSI sebagai input.
  • MISO (Master Input Slave Output) : Jika dikonfigurasi sebagai master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka pin MISO sebagai output.
  • SCLK (Clock) : Jika dikonfigurasi sebagai master maka pin CLK berlaku sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku sebagai input.
  •  SS/CS (Slave Select/ Chip Select) : Jalur master memilih slave mana yang akan dikirimkan data.

 

2.  Bagaimana cara menghubungkan rangkaian SPi saat menggunakan lebih dari satu slave

Jawab :

Apabila menggunakan lebih dari satu slave, maka dilakukan perubahan pada kedua aspek, yaitu rangkaian dan programnya. Pada SPI untuk multislave, ada dua bentuk rangkaian yang dapat digunakan, yaitu Independent Slave Configuration dan Daisy Chain Configuration.  Pada Independent Slave Configuration ini setiap pin SS/CS terhubung ke slave yang berbeda beda. Sedangkan pada Daisy Chain Configuration, master hanya memerlukan satu pin SS/CS untuk berkomunikasi dengan slave-slave yang ada.

Untuk programnya, apabila digunakan independent slave configuration, maka pada program untuk master, harus ada 2 kondisi untuk SS/CS pada master. Alamat ini berfungsi sebagai identitas bagi masing-masing slave. Selain pada master, program pada slave juga diubah, pada slave diinisiasi kode identitas yang sudah diinisiasi sebelumnya pada master. Tujuannya agar slave mengetahui saat master mengirim kode. Pada slave juga diinisiasi kode untuk perintah menerima atau mengirim data.

7. Link download [kembali]
Download video DISINI
Download listing program DISINI 
Rangkaian simulasi DISINI
Download HTML DISINI

Tidak ada komentar:

Posting Komentar