Komunikasi Serial Arduino
Komunikasi Serial Arduino
Komputer
By
Kustanto
Definisi
• Komunikasi paralel adalah komunikasi yang mengirimkan
data secara bersamaan. Pada penggunaan komunikasi
paralel semua bit dikirim secara bersamaan pada waktu
yang sama. Oleh karena itu pada komunikasi ini kita
membutuhkan banyak kabel.
• kelemahankomunikasi paralel akibat banyaknya kabel
yang dibutuhkan, dan panjang kabel ini tidak boleh lebih
dari 20 m, untuk menjaga keaslian data.
• Kelebihan komunikasi paralel adalah lebih cepat dan
kapasitas yang dibawa juga banyak serta pemrograman
yang lebih mudah.
Komunikasi Paralel
• Komunikasi paralel yang digunakan adalah
komunikasi paralel lewatkabel data untuk printer
(saat mengeluarkan data).
• Pada keadaan normal (tidak aktif) tegangan pada
pin-pin ini adalah 0 volt, namun bila kita beri
high, maka tegangannya akan berubah menjadi 5
volt.
DB 25
Pada port paralel ada 3 jalur data, yaitu :
Jalur kontrol
Memiliki arah bidirectional
Jalur status
Memiliki satu arah, yaitu arah input.
Jalur data
Memiliki 2 arah. Dapat juga berfungsi sebagai pengirim
Address dan data, masing-masing 8 bit, dimana keduanya
melakukan transfer data dengan protokolhandshaking
serta diakses dengan register yang berbeda.
DB 25
• Bila kita menggunakan jalur LPT1 maka alamat
yang ditentukan oleh PC adalah:
Fungsi Pin DB- 25
Port paralel dapat mentransmisi 8 bit data dalam
sekali detak. Tata-letak dari ke-dua puluh lima pin
(DB 25) parallel printer port, diperlihatkan
dalamGambar.
Sinkronisasi
signal AC
Tampilan software sistem dari PC
KONSEP KOMUNIKASI SERIAL
Pengantarmukaan
Periferal Komputer
Antarmuka Kanal serial lebih kompleks/sulit dibandingkan
dengan antarmuka melalui kanal, karcna:
Data yang dikirimkan dengan cara seperti pada gambar dia atas ini
disebut data yang terbingkai (to be framed) oleh start dan stop
bit.
Jika stop bit dalam keadaan LOW, berarti telah terjadi framing error.
Biasanya hal ini terjadi karena perbedaan kecepatan komunikasi
antara pengirim dengan penerima.
•End of Session
Komunikasi serial Arduino
• Komunikasi serial Arduino adalah Komunikasi
antara Arduino Uno dan Komputer dapat
dilakukan melalui port USB. Dalam hal ini,
Arduino Uno tidak hanya bisa mengolah data
dari pin I/O secara independ.
• Tetapi dapat juga dikomunikasikan dengan komputer untuk ditampilkan
hasil dari pengolahan datanya sehingga komunikasi yang dilakukan
bersifat dua arah.
• Pada Arduino IDE menyesuaikan fasilitas untuk melakukan komunikasi
dua arah tersebut melalui serial monitor.
• Dengan menggunakan fasilitas ini, dapat dikirimkan data ke Arduino
Uno dan sebaliknya dapat membaca kiriman dari arduino uno.
• Tentu saja, hal ini memungkinkan dapat mengontrol Arduino Uno
melalui komputer dan memantau sesuatu yang sedang terjadi di Arduino
Uno.
• Sebagai contoh, saat mengirimkan isyarat untuk menghidupkan lampu
atau memantau suhu yang terdeteksi oleh sensor suhu di Serial Monitor.
Jenis command komukasi serial Arduino :
• Serial.begin() : untuk menentukan kecepatan pengiriman dan penerimaan data
melalui port serial. Kecepatan yang umum digunakan adalah 9600 bit per detik
(9600 bps). Namun, kecepatan hingga 115.200 didukung oleh Arduino Uno.
Contoh yang sering digunakan yaitu Serial.begin(9600).
• Serial.end() : digunakan untuk menghentikan program akan perintah komunikasi
serial.
• Serial.available () : berguna untuk menghasilkan jumlah byte di port serial yang
belum terbaca. Jika port serial dalam keadaan kosong, maka fungsi ini dapat
menghasilkan nilai nol.
• Serial.read() : berguna untuk membaca satu byte data yang terdapat di port
serial. Setelah pemanggilan Serial.read(), jumlah data di port serial berkurang
satu.
• Serial.print(data) : berfungsi untuk mengirimkan data ke port serial. Apabila
argumen format disertakan, data yang dikirim akan menyesuaikan dengan format
tersebut. Dalam hal ini, format yang digunakan bisa berupa.
• Serial.flush() : berfungsi sebagai untuk
pengosongan data pembacaan yang ditaruh pada
buffer.
• Serial.parseFloat() : berfungsi untuk bilangan
titik mengambang atau real.
• Serial.println(data) : memiliki fungsi
yang hampir sama dengan serial print, yang
memberi efek perpindahan baris berikutnya.
• Serial.parseln() : untuk menghasilkan nilai bulat.
Contoh konversi data pada komunikasi serial arduino
• Arduino Uno
• LED (4 pcs)
• Resistor (4 pcs)
• Breadboard
• Kabel jumper
• Komputer + Software IDE Arduino
• Skema rangkaian
Skema rangkaian
Pemrogramannya
• int lamp1 = 11;
• int lamp2 = 12;
• int lamp3 = 13;
• int databaca;
•
• void setup() {
• pinMode(lamp1, OUTPUT);
• pinMode(lamp2, OUTPUT);
• pinMode(lamp3, OUTPUT);
• Serial.begin(9600);
• }
Lanjutan
• void loop()
• {
• if (Serial.available()>)
• {
• int bacadata = Serial.read();
• if (bacadata =='a') {databaca=1;}
• if (bacadata =='b') {databaca=2;}
• if (bacadata =='c') {databaca=3;}
•
• if(databaca==1)
• running: //LED akan berjalan pada mode running
• {
• digitalWrite(lamp1, HIGH);
• delay(250);
• digitalWrite(lamp1, LOW);
• delay(250);
• digitalWrite(lamp2, HIGH);
• delay(250);
• digitalWrite(lamp2, LOW);
• delay(250);
• digitalWrite(lamp3, HIGH);
• delay(250);
• digitalWrite(lamp3, LOW);
• delay(250);
• Serial.println("LED mode running");
• loop();
• goto running;
• }
Lanjutan
• if(databaca==2)
• flipflop: // LED akan berjalan pada mode flip flop
• {
• digitalWrite(lamp1, LOW);
• digitalWrite(lamp2, LOW);
• digitalWrite(lamp3, LOW);
• delay(500);
• digitalWrite(lamp1, HIGH);
• digitalWrite(lamp2, HIGH);
• digitalWrite(lamp3, HIGH);
• delay(500);
• Serial.println("LED mode flip flop");
• loop();
• goto flipflop;
• }
•
• if(databaca==3)
• modeoff: // Semua LED akan off
• {
• digitalWrite(lamp1,LOW);
• digitalWrite(lamp2,LOW);
• digitalWrite(lamp3,LOW);
• delay(1000);
• Serial.println("LED mode off");
• loop();
• goto modeoff; }
• }
• }
Hasil pada serial monitor