Komunikasi Serial pada Arduino


Komunikasi Serial digunakan untuk komunikasi antara arduino dan komputer atau perangkat lain. Semua jenis arduino memiliki port serial ( juga dikenal sebagai UART atau USART). Komunikasi serial ini terdapat pada pin digital 0 (RX) dan 1 (TX) serta dengan komputer melalui USB. Apabila komunikasi serial menggunakan port USB kita dapat menggunakan serial monitor pada seketch Arduino untuk berkomunikasi antara komputer dengan arduno. Syarat komunikasinya baud rate dari kedua device harus di sinkronkan terlebih dahulu.

Komunikasi serial pada pin RX/TX menggunakan level logika TTL ( 5V atau 3.3.V tergantung dengan Arduino yang digunakan). Pada port serial arduino atau port untuk mengupload jagan berikan tegangan lebih dari 5V karena akan merusak Arduino, salah satu kerusakan yang ditimbulkan karena berlebih tegangan yang masuk ke port serial yaitu arduino tidak dapat diupload lagi.

Pada arduino mega memiliki tiga port serial tambahan : Serial1 pada pin 19(RX) dan 18 (TX), Serial2 pada pin 17(RX) dan 16(TX), Serial3 pada pin 15(RX) dan 14(TX). Untuk mengakses pin ini untuk berkomunikasi dengan komputer harus menambahkan adaptor USB-to-serial, karena pin-pin tersebut tidak terhubung ke perangkat serial TTL eksternal.

Fungsi – fungsi yang tersedia untkuk komunikasi serial Arduino

  • if (Serial) : Untuk mengecek apakah Port sudah siap.
  • Serial.available() : Untuk mengecek apakah data sudah ada di buffer penerima.
  • Serial.begin() : untuk mengeset kecepatan transmisi data.
  • serial.end() : Untuk menon-aktifkan pin rx dan tx sbg fungsi serial dan kembali sbg pin I/O.
  • Serial.find() : mencari string dalam buffer data
  • Serial.findUntil(): mencari buffer data sampai data dgn panjang/terminator nya yg diberikan ditemukan
  • Serial.flush(): menunggu data terkirim semua
  • Serial.parseFloat(): mengambil data float pertama dari data di buffer serial.
  • serial.parseInt(): mengambil data integer pertama dari data di buffer serial.
  • Serial.peek(): mengambil data berikutnya di bufer penerima
  • Serial.print() : mengirim data ASCII
  • Serial.println() : mengirimdata ASCII + CR,LF (kode enter)
  • Serial.read(): membaca data yg diterima
  • Serial.readBytes(): membaca data byte yg diterima
  • Serial.readBytesUntil()
  • Serial.setTimeout(): mengeset batas maksimum waktu tunggu(timeout) transmisi data.
  • Serial.write() : mengirim data byte (numerik)
  • Serial.serialEvent(): fungsi ini akan dipanggil jika data datang/diterima.berlaku spt interupsi serial.
Contoh program komunikasi serial antara arduino dengan komputer.


Program dibawah untuk mencoba komunikasi arduino dengan komputer, apabila pada serial monitor di ketikan karakter ‘h’ maka akan dikirimkan ke arduino dan arduino akan merespon dengan menuliskan “Lampu Hidup” pada serial monitor dan apa bila dari serial monitor mengirimkan karakter ‘m’ maka arduino akan merespon dengan menuliskan “Lampu Mati" pada serial monitor , syarat komunikai serial menggunakan program di bawah, pada serial monitor set baud rate 9600.



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

void loop(){
    if(Serial.available()>0){
    char data = Serial.read();
    if(data==’h’)Serial.println(“Lampu Hidup”);
    else if(data==’m’) Serial.println(“Lampu Mati);
}

Semoga dapat membantu…..

Comments

  1. Numpang tanya, kalau kita menghubungkan 2 buah Arduino board dimana Tx1->Rx2, dan Rx1->Tx1, kira-kira berapa maksimal panjang kabel yang bisa digunakan agar data tidak lost? terimakasih

    ReplyDelete

Post a Comment

Popular posts from this blog

Menggunakan Driver Motor IBT-2 BTS7960 dengan arduino

Register-Register pada CPU--> Arsitektur komputer