Kamis, 25 Agustus 2016

Komunikasi Serial Master Slave

Sebelumnya apa kalian sudah tau apa itu master slave ? 

Komunikasi antar Mikro/Arduino dengan menggunakan serial data sehingga antar mikrokontroller memiliki komunikasi yang bershinambungan dan saling memiliki keterkaitan, dalam serial slave-master minimal dua mikrokontroller terhubung, maksimal tak terhingga selama masih terjadinya komunikasi antar mikrokontroller. Dalam komunikasi slave-master digunnakan serial komunikasi,serial merupakan komunikasi data dengan pengiriman data secara satu per satu berurutan dimulai dari LSB (Least Significant Bit) sampai dengan MSB (Most Significant Bit), dengan menggunakan satu jalur kabel data dalam satu waktu,untuk lebih jelasnya bisa kalian baca baca di google.
Singkatnya sih master slave itu seperti boss dan anak buah,master itu bossnya sedangkan slave itu anak buahnya,jadi ketika master memanggil anak buah untuk memberikan data maka anak buah tersebut akan segera memberikannya,data data yang sudah diberikan oleh pada anak buah/slave maka akan di tampung pada boss/master kemudian data tersebut akan diolah oleh boss/master untuk berbagai aplikasi,oke kita lanjut aja ke bagian wiring dan programming,oh iya kali ini saya menggunakan arduino untuk aplikasi master slavenya,dan menggunakan proteus untuk simulasinya,mudah mudahan bermanfaat.

TOLONG BACA DENGAN DETAIL !

Siapkan alat dan bahan :
  • Arduino Uno/Nano/Mega (sama saja) (jumlah disesuaikan) 
  • Push button
  • Kabel usb arduino 
  • Kabel jumper disesuaikan dengan kebutuhan
  • Download simulasi proteus 
1. Yang pertama kalian wiring master board dan board slave"

Catatan !
a. Jumlah slave jangan terpacu pada gambar bisa kalian sesuaikan dengan kebutuhan
b. Pastikan hubungan RX TX antara mastre dan slave sudah benar 
c. Hasil simulasi dan harware pasti berbeda,jika kaliaan membuatnya langsung pada hardware kalian atur delay pada programnnya (lebih lama) 
d. Setelah kalian berhasil membuatnya,budayakan untuk mempelajarinya,jangan hanya copy paste saja,hasil dari usaha sendiri lebih puas meskipun itu sederhana

2. Copy paste sketch/program di bawah ini  ke dalam software arduino

Master

char patch;

void setup() {
  Serial.begin(9600);
  pinMode(13,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(A0,INPUT_PULLUP);
  pinMode(A1,INPUT_PULLUP);
  pinMode(A2,INPUT_PULLUP);
  pinMode(A3,INPUT_PULLUP);
}

void loop() 
{
  if (!digitalRead(A0))Serial.print('1');delay(5);
  if (!digitalRead(A1))Serial.print('2');delay(5);
  if (!digitalRead(A2))Serial.print('3');delay(5);
  if (!digitalRead(A3))Serial.print('4');delay(5);
  
  if (Serial.available() > 0)
  { 
    
  patch = Serial.read();
    
    if (patch == '5')
    {
    digitalWrite(13,HIGH);
    }
    if (patch == '6')
    {
    digitalWrite(12,HIGH);
    }
    if (patch == '7')
    {
    digitalWrite(11,HIGH);
    }
    if (patch == '8')
    {
    digitalWrite(10,HIGH);
    }
  }
}

Slave 1

bool send_data = true;
bool enable    = true;
char read_data;

int addres  = 2;
int digital = 1;
int adc     = 175;

void setup() {
Serial.begin(9600);  
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
}

void loop() 
{
    if (Serial.available() > 0)
    {
    read_data = Serial.read();
      if (read_data == '1')
      {
        if (send_data = true)
        {
        digitalWrite(13,HIGH);
        delay(100);
        Serial.print('5');
        send_data = false;
        enable = false;
        Serial.end();
        digitalWrite(13,LOW);
        delay(100);
        Serial.begin(9600);   
        }
      }
      else
      {
      Serial.print(" "); 
      Serial.end();
      delay(100);
      Serial.begin(9600); 
      }
    } 
}
3. Verify program arduino,apabila tidak terjadi error lanjut dengan proses upload

4. Upload program,apabila succes akan muncul tulisan done uploading,apabila ada yang belum tahu bagaimana cara upload code/sketch ke board arduino bisa baca disini

5. Sekarang kalian buat rangkaiannya pada software simulasi proteus isis,atau bisa kalian download di atas

Prinsip Kerja
Karena ini adalah program dasar dari aplikasi master slave, jadi saya menggunakan push button untuk trigger memanggil slavenya,pada mode startup kalian di perintahkan untuk menekan salah satu push button pada board master,contoh menekan push button 1,artinya kalian memanggil slave 1,ketika slave 1 sudah menjawab dari panggilan master maka slave 1 akan mengirim data pada master dan master akan mengolah data kiriman dari slave 1 untuk menghidupkan led,begitupun untuk slave slave selanjutnya semoga membantu.

Budayakan mempelajarinya hingga benar benar paham,jika merasa belum paham bisa ajukan pertanyaan di komentar atau contact facebook saya atau email fickrymhd@gmail.com 

Share:

0 comments:

Posting Komentar

Copyright © FILAB | Powered by FILAB
Design by Fickry Muhammad | Technology by Filab.id