Friday, October 7, 2016

KOMUNIKASI SERIAL ARDUINO

Kali ini gue akan ngepost tentang bagaimana menggunakan serial monitor pada Arduino, sebelumnya kita mengenal terlebih dahulu pengertian dan berbagai instruksi yang ada di Arduino. Silahkan membaca......^_^


PENGERTIAN

Komunikasi data serial digunakan untuk komunikasi antara board arduino dengan komputer atau perangkat lain. Semua board arduino mempunyai sedikitnya 1 buah port serial yang juga dikenal dengan nama UART atau USART. Komunikasi data serial menggunakan 2 buah pin yaitu pin RX untuk menerima data dan ppin TX untuk mengirimkan data. Pada board arduino pin RX terletak pada pin0 dan pin TX terletak pada pin1. Ketika board arduino dikonfigurasikan untuk berkomunikasi secara serial, maka kedua pin0 dan pin1 tidak dapat digunakan sebagai pin input/output digital.
Pada sistem operasi windows XP dan sebelumnya terdapat program HyperTerminal yang dapat digunakan untuk berkomunikasi secara serial dengan hardware, Pada Windows yang lebih baru, seperti Win7, Win8 dan Vista program hyperterminal sudah tidak tersedia. Tetapi hal ini tidak menjadi masalah, program Arduino telah menyediakan serial monitor yang dapat dibuka dengan memilih tool – serial monitor pada menu program arduino atau dengan mengetik shift-ctrl-M bersamaan.
Board Arduino Nano dilengkapi dengan 1 buah serial port yang dapat diakses melalui mini-usb port dengan membuat virtual comport atau melalui pin0 dan pin1.
Program Arduino telah dilangkapi dengan serial port library yang memudahkan programmer untuk membuat program.


1. Serial.available()

Digunakan untuk menyatakan angka, bytes atau karakter yang sudah siap dibaca dari serial port. Data ini adalah data yang telah diterima dan disimpan dalam serial receive buffer. Serial receive buffer dapat menampung 64 bytes data. Berikut ini contoh penulisan instruksi available.

int dataterkirim = 0;   

void setup() 
{ Serial.begin(9600);} 

void loop() 
{
  if (Serial.available() > 0) 
{
   dataterkirim = Serial.read();
   Serial.print("saya menerima data: ");
   Serial.println(dataterkirim, DEC);
  }
}

2. Serial.begin()

“begin()” digunakan untuk mengatur baudrate / kecepatan transmisi data. Beberapa pilihan kecepatan komunikasi data yang dapat digunakan pada board arduino adalah 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 atau 115200. Pengaturan baudrate dilakukan pada bagian setup(). Berikut ini format penulisan dan contoh program “begin()”

void setup() { Serial.begin(9600);}

3. Serial.end()

Perintah “serial.end()” digunakan untuk menutup komunikasi serial port. Berikut format penulisan dan contoh program. Untuk membuka kembali komunikasi serial port dapat menggunakan perintah “Serial.begin()”.

Serial.end

4. Serial.find()

Perintah “Serial.find() digunakan untuk membaca data dari serial port buffer hingga target yang ditentukan dalam perintah “Serial.find()” terpenuhi. Fungsi akan bernilai benar jika target tercapai dan bernilai salah jika target tidak tercapai. Berikut ini contoh penulisan program “Serial.find()”.

Serial.find

5. Serial.print()

Perintah “Serial.print” digunakan untuk menampilkan data ke serial monitor. Data yang ditampilkan dapat berupa karakter, bytes, atau angka. Berikut ini beberapa contoh perintah “serial.print()”.

Serial.print(78)                // mencetak "78" 
Serial.print(1.23456)           // mencetak "1.23" 
Serial.print('N')               // mencetak "N" 
Serial.print("Hello world.")    // mencetak "Hello world." 
Serial.print(78, BIN)           // mencetak "1001110" 
Serial.print(78, OCT)           // mencetak "116" 
Serial.print(78, DEC)           // mencetak "78" 
Serial.print(78, HEX)           // mencetak "4E" 
Serial.println(1.23456, 0)      // mencetak "1" 
Serial.println(1.23456, 2)      // mencetak "1.23" 
Serial.println(1.23456, 4)      // mencetak "1.2346" 
Terdapat 2 macam yaitu Serial.print dan Serial.println. perbedaannya adalah jika “Serial.print” akan menampilkan data di serial monitor dalam satu baris, tetapi perintah “Serial.println” akan menampilkan data di serial monitor pada baris baru.

6. Serial.read()

Perintah “Serial.read()” digunakan untuk membaca data dari serial port. Berikut contoh penulisan perintah “Serial.read()”

void loop() 
{
  if (Serial.available() > 0) 
{
   dataterkirim = Serial.read();
   Serial.print("saya menerima data: ");
   Serial.println(dataterkirim, DEC);
  }
}

7. Serial.write()

Perintah “Serial.write” digunakan untuk membaca data biner dari serial port. Data ini dikirim dalam bentuk byte atau deretan data byte. Contoh penulisan perintah “Serial.write”.

void setup(){
  Serial.begin(9600);
}

void loop(){
  Serial.write(45); 
   int bytesSent = Serial.write(“hello”); 
}


TUGAS!

Buatlah program arduino dengan menggunakan serial port sebagai control pengendali.
jika pada serial port di ketik "a" maka led akan jalan running,
jika pada serial port di ketik "b" maka led akan flip flop,
jika pada serial port di ketik "c" maka led akan mati.  
Gunakan 3 LED saja.

JAWAB!

int led1 = 13;
int led2 = 12;
int led3 = 11;
int out;
void setup()
{
  Serial.begin(9600);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}

void loop()
{
  if (Serial.available()>0)
  {
    int baca = Serial.read();
    if (baca =='a')
    {
    out=1;
    }
    if (baca =='b')
    {
    out=2;
    }
    if (baca =='c')
    {
    out=3;
    }
    
  if(out==1)
  jalan:                          //LED akan berjalan running
  {
  digitalWrite(led1, HIGH);
  delay(500);
  digitalWrite(led1, LOW);
  delay(500);
  digitalWrite(led2, HIGH);
  delay(500);
  digitalWrite(led2, LOW);
  delay(500);
  digitalWrite(led3, HIGH);
  delay(500);
  digitalWrite(led3, LOW);
  delay(500);
  Serial.println("LED running");
  loop();
  goto jalan;
   }
       
  if(out==2)
  start:                           // LED akan berjalan flip flop
  {
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  delay(500);
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  digitalWrite(led3, LOW);
  delay(500);
  Serial.println("LED flip flop");  
  loop();
  goto start;
  }
      
  if(out==3)
  stop:                             // LED akan mati
  {
  digitalWrite(led1,LOW);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  Serial.println("LED mati");
  loop();
  goto stop;
  }
  }
}

Setelah membuat progran diatas dibawah ini adalah langkah - langkah mengaktifkan LED mengunakan serial port :

1. Rangkailah rangkaian menggunakan arduino. Gunakan output di nomor 13,12,11. LED aktif high.


2. Sambungkan kabel downloader ke PC. 
(sebelumnya pastikan kabel downloader sudah terinstal terlebih dahulu di PC anda, jika belum terinstal installah dulu. baca artikel saya sebelumnya tentang cara menginstal downloader arduino).


3. Buka Aplikasi Arduino, kemudian buat program sesuai perintah di atas. atau tinggal copas program yang sudah saya buat.


4. Pastikan port berada pada serial port COM5.


5. Upload program sampai tertera tulisan Done Uploading.


6. Buka serial monitor di pojok kanan atas.


7. Ketikan "a" untuk menjalankan perintah running. "b" untuk menjalankan perintah flip flop. "c" untuk mematikan semua program.


Nah semoga itu semua bermanfaat untuk semuanya :)
Mampir juga boleh Klinik Fisioterapi

5 comments:

  1. gan bisa cantumin sumber ? untuk daftar pustaka saya di skripsi
    terimakasih gan

    ReplyDelete
  2. This way my acquaintance Wesley Virgin's tale launches with this SHOCKING and controversial video.

    You see, Wesley was in the army-and shortly after leaving-he unveiled hidden, "self mind control" tactics that the CIA and others used to obtain everything they want.

    As it turns out, these are the same secrets tons of celebrities (especially those who "became famous out of nothing") and the greatest business people used to become rich and famous.

    You've heard that you utilize only 10% of your brain.

    Mostly, that's because most of your brain's power is UNTAPPED.

    Maybe this thought has even taken place INSIDE OF YOUR own head... as it did in my good friend Wesley Virgin's head 7 years ago, while riding an unregistered, trash bucket of a vehicle without a license and with $3.20 in his bank account.

    "I'm so frustrated with living check to check! When will I finally make it?"

    You've been a part of those those types of questions, isn't it right?

    Your own success story is waiting to be written. You need to start believing in YOURSELF.

    CLICK HERE To Find Out How To Become A MILLIONAIRE

    ReplyDelete