1. Tujuan
2. Komponen
3. Dasar Teori
[Kembali]
a. Arduino UNO
|
Pin pin pada arduino UNO |
|
konfigurasi pin Arduino UNO |
Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya. Setiap 14 pin digital pada arduino uno dapat digunakan sebagai input dan output, menggunakan fungsi pinMode(), digitalwrite(), dan digitalRead(). Fungsi fungsi tersebut beroperasi di tegangan 5 volt, Setiap pin dapat memberikan atau menerima suatu arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara default) 20-50 kOhm.
b. LED
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.
Cara kerja LED hanya akan memancarkan cahaya apabila dialiri tegangan maju (bias forward) dari Anoda menuju ke Katoda. LED terdiri dari sebuah chip semikonduktor yang di doping sehingga menciptakan junction P dan N. Yang dimaksud dengan proses doping dalam semikonduktor adalah proses untuk menambahkan ketidakmurnian (impurity) pada semikonduktor yang murni sehingga menghasilkan karakteristik kelistrikan yang diinginkan. Ketika LED dialiri tegangan maju atau bias forward yaitu dari Anoda (P) menuju ke Katoda (K), Kelebihan Elektron pada N-Type material akan berpindah ke wilayah yang kelebihan Hole (lubang) yaitu wilayah yang bermuatan positif (P-Type material). Saat Elektron berjumpa dengan Hole akan melepaskan photon dan memancarkan cahaya monokromatik (satu warna).
c. Resistor
Resistor merupakan salah satu komponen dasar elektronika, salah satu tipe resistor yaitu resistor tetap. Resistor tetap merupakan jenis resistor yang memiliki nilai hambatan yang relatif tetap. Komponen resistor tetap pada umumnya terbuat dari karbon, kawat atau paduan logam.
Nilai hambatan dari resistor tetap ini ditentukan oleh tebal dan panjangnya lintasan dari bahannya. Panjang lintasan tergantung dari berapa panjang alur dari lintasan resistor tersebut yang berbentuk spiral.
Menentukan nilai hambatan resistor dari Kode Warna
Kode warna yang terdapat pada resistor menyatakan nilai tahanan (resistansi) dan toleransi dari resistor tersebut. Semakin kecil nilai toleransi dari suatu resistor maka akan semakin baik, dikarenakan nilai tahanan resistor yang dibaca menurut kode warna tersebut akan mendekati nilai tahanan dari resistor sebenarnya.
Bila jumlah gelang resistor tersebut ada 4 buah maka cara membaca nilai tahanannya yaitu :
- Gelang pertama menunjukkan angka pertama dari nilai tahanan
- Gelang kedua menunjukkan angka kedua dari nilai tahanan
- Gelang ketiga menunjukkan faktor pengali
- Gelang keempat menunjukkan nilai toleransi
Bila jumlah gelang resistor tersebut ada 5 buah maka cara membaca nilai tahanannya yaitu :
- Gelang pertama menunjukkan angka pertama dari nilai tahanan
- Gelang kedua menunjukkan angka kedua dari nilai tahanan
- Gelang ketiga menunjukkan angka ketiga dari nilai tahanan
- Gelang keempat menunjukkan faktor pengali
- Gelang kelima menunjukkan nilai toleransi
Bila jumlah gelang resistor tersebut ada 6 buah maka cara membaca nilai tahanannya yaitu :
- Gelang pertama menunjukkan angka pertama dari nilai tahanan
- Gelang kedua menunjukkan angka kedua dari nilai tahanan
- Gelang ketiga menunjukkan angka ketiga dari nilai tahanan
- Gelang keempat menunjukkan faktor pengali
- Gelang kelima menunjukkan nilai toleransi
- Gelang kelima menunjukkan nilai koefisien suhu
d. button
Sebagai device penghubung atau pemutus, push button switch hanya memiliki 2 kondisi, yaitu On dan Off (1 dan 0). Istilah On dan Off ini menjadi sangat penting karena semua perangkat listrik yang memerlukan sumber energi listrik pasti membutuhkan kondisi On dan Off.
Karena sistem kerjanya yang unlock dan langsung berhubungan dengan operator, push button switch menjadi device paling utama yang biasa digunakan untuk memulai dan mengakhiri kerja mesin di industri. Secanggih apapun sebuah mesin bisa dipastikan sistem kerjanya tidak terlepas dari keberadaan sebuah saklar seperti push button switch atau perangkat lain yang sejenis yang bekerja mengatur pengkondisian On dan Off.
Berdasarkan fungsi kerjanya yang menghubungkan dan memutuskan, push button switch mempunyai 2 tipe kontak yaitu NC (Normally Close) dan NO (Normally Open).
- 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).
4. Percobaan
[Kembali]
a. Prosedur Percobaan
[Kembali]
1. Memahami materi komunikasi SPI 2. Merangkai simulasi rangkaian
3. Menambahakna komponen tambahan sesuai kondisi yang diminta
4. Membuat listing program
5. Mengopy kan hex dari program dan dipastekan pada arduino master dan arduino slave
6. Menjalankan rangkaian
b. Hardware
[Kembali]
Arduino
Resistor
LED
d. Video
Pada percobaan komunikasi SPI digunakan 2 Arduino untuk
master dan untuk slave. Selanjutnya dihubungkan pin CLK, MOSI, MISO dan SS pada
master dengan slave. Selanjutnya pada pin 7 master dihubungkan dengan buzzer
yang telah dibungkan dengan sebuah transistor dan resistor sebesar 220 ohm. Dan
pada pin 6 dihubungkan dengan sebuah led dan resistor sebesar 220 ohm dan
dilanjutnya keground. Pada slave pin 7 dihubungkan dengan buzzer dan pada pin 6
dihubungkan dengan led. Selanjutnya digunakan 2 buah button yang akan digunakan
sebagai input_pullup.
Selanjutnya pada listing program master dideklrasikan
komunikasi yang digunakan yaitu komunikasi SPI, dan dideklarasi pin 6 untuk
buzzer, pin 7 untuk led, dan pin 2 untuk button. Pada void setup, terdapat
serial.begin untuk pengaturan kecepatan pengiriman atau penerimaan data sebesar
115.200 bps. Selajutnya pendeklarasian button sebagai input pull up, dan buzzer
dan led sebagai output. Selanjutnya pada bagian void loop, akan dideklarasikan
kondisi dimana jika x = 1 atau button value=LOW maka master akan mengirimkan
data menuju slave dengan digitalWrite (SS, LOW). Dan master juga akan menerima
data dari slave, jika data yang diterima yaitu 1, maka buzzer akan hidup, dan
led akan hidup dan sebaliknya.
Pada listing program slave, dideklarasikan komunikasi yang
digunakan, dan buzzer pada pin 6, led pada pin 7, button pada pin 2. Selanjutnya
dideklrasikan bahwa slave akan menerima dan mengirimkan data pad amaster. Pada void
setup, dideklarasi baudrate sebesar 115.200 bps. Selajutnya pad avoid loop,
jika slave menerima data 1, maka buzzer dan LED akan menyala. Sedangkan pada
kondisi lain, buzzer dan led akan mati.
e. Flowchart
MASTER
f. Listing Program
//Master
#include<SPI.h> //deklarasi komunikasi SPI
#define buzz 6 //deklarasi pin 6 sebagai buzzer
#define led 7 //deklarasi pin 7 sebagai led
#define button 2 // deklarasi pin 2 untuk button
int buttonvalue;
int x; // deklarasi nilai x
void setup (void) //semua kode dalam fungsi ini dieksekusi sekali
{
Serial.begin(115200); //pengatur kecepatan pengiriman atau penerimaan data
pinMode(button,INPUT_PULLUP); //deklarasi button sebagai input pull_up
pinMode(buzz,OUTPUT); //deklarasi buzzer sebagai output
pinMode(led,OUTPUT); //deklarasi led sebagai output
SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV4); //menggunakan kecepatan prosesor sebesar 4 hz
digitalWrite(SS,HIGH); // slave select berlogika HIGH
}
void loop(void) //kode dalam fungsi ini dieksekusi berulang
{
byte Mastersend,Mastereceive; //master akan mengirim dan master akan menerima
buttonvalue = digitalRead(button); //akan dibaca sebagai input pada button
if(buttonvalue == LOW)
{
x = 1;
}
else
{
x = 0;
}
digitalWrite(SS, LOW);
Mastersend = x;
Mastereceive=SPI.transfer(Mastersend); //master akan mentransfer
if(Mastereceive == 1)
{
digitalWrite(buzz,HIGH);
digitalWrite(led,HIGH);
Serial.println("Master Buzz ON");
Serial.println("Master led ON");
delay(1000);
}
else
{
digitalWrite(buzz,LOW);
digitalWrite(led,LOW);
}
delay(1000);
}
// Slave
#include<SPI.h> //deklarasi komunikasi SPI
#define buzz 6 //deklarasi buzzer pada pin 6
#define led 7 //deklarasi led pada pin 7
#define button 2 // deklarasi button pin 2
volatile boolean received; //deklrasi bahwa slave akan menjadi penerima
volatile byte Slavereceived,Slavesend; // slave menjadi pengirim dan penerima
int buttonvalue;
int x;
void setup()
{
Serial.begin(115200); //pengatur kecepatan pengiriman atau penerimaan data
pinMode(button,INPUT_PULLUP); //button sebagai input pull_up
pinMode(buzz,OUTPUT); //buzzer sebagai output
pinMode(led,OUTPUT); //led sebagai output
pinMode(MISO,OUTPUT); //pin miso akan menjadi output
SPCR |= _BV(SPE); //SPCR = BV
received = false; // jika input salah, maka output tidak akan menyala
SPI.attachInterrupt(); //SPI diinteruppt
}
ISR (SPI_STC_vect)
{
Slavereceived = SPDR; //slave akan menjadi received
received = true;
}
void loop() //semua kode dalam fungsi ini akan dieksekusi berulang
{ if(received)
{
if (Slavereceived==1)
{
digitalWrite(buzz,HIGH);
digitalWrite(led,HIGH);
Serial.println("Slave buzz ON");
Serial.println("Slave led ON");
delay(1000);
}else
{
digitalWrite(buzz,LOW);
digitalWrite(led,LOW);
Serial.println("Slave buzz OFF");
Serial.println("Slave led OFF");
}
buttonvalue = digitalRead(button);
if (buttonvalue == LOW)
{
x=1;
}else
{
x=0;
}
Slavesend = x;
SPDR = Slavesend;
delay(1000);
}
}
g. Kondisi
[Kembali]
Kondisi : Tambahkan buzzer sebagai output, sehingga output yang tertera LED dan buzzer.
Analisa :
1. Pada komunikasi SPI menggunakan lebih dari 1 meter dalam sistem yang sama apakah dapat dilakukan ? Jelaskan alasannya !
Jawab :
Pada komusikasi SPIO tidakdapat digunakan lebih dari 1 master dalam sistem yang sama, karena master bagaikan otak yang mengatur jalannya sistem, tetapi 1 master apat menjalankan beberapa slave.
`2. Pada kondisi master menggunakan lebih 1 satu slave, bagaimana cara agar master mengirimkan data yang berbeda pada setiap slave? Jelaskan!
Jawab :
Pada komunikasi SPI bisa menggunakan lebih dari 1 slave, dan untuk master dapat menggunakan 1 master dengan beberapa slave. Untuk penghubung master dengan slave dapat dihubungkan dengan pin ss, jika terdapat 2 slave pada rangkaian maka dihubungkan pin ss1 dan pin ss2 dari master menuju slave.
Cara untuk master mengirimkan data yang berbeda tiap slave dengan cara membuat perbedaan paa listing program master. Jika ingin mengirimkan data maka akan memberikan logika LOW kepada slave yang akan dikirimkan. Data dari master akan dikirim kepada slave yang diberikan pin LOW melalui pin MOSI, sedagkan untuk pin MISO berguna untuk master mendapatkan respon dari slave.
3. Apakah baudrate pada master dan slave pada komunikasi SPI harus bernilai sama ? berikan alasan!
Jawab :
Baudrate merupakan pengatur kecepatan dat ayang akan dikirim atau diterima pada 1 arduino ke arduino lain melalui komunikasi serial. Untuk kecepatan data dari master ataupun slave pada komunikasi SPI tidak berpengaruh jika besarnya berbeda, besar nilai baudrate hanya untuk mempengaruhi cepat atau lambatnya pengiriman data.
h. Link Download
[Kembali]
Tidak ada komentar:
Posting Komentar