• Tidak ada hasil yang ditemukan

Rina Dwi y.s Tk2a 18 Job7

N/A
N/A
Protected

Academic year: 2021

Membagikan "Rina Dwi y.s Tk2a 18 Job7"

Copied!
20
0
0

Teks penuh

(1)

LAPORAN PRAKTIK MIKROPROSESSOR & INTERFACE

PERCOBAAN 7: SERIAL ASINKRON (UART)

OLEH : Rina Dwi Yunita Sari

TK-2A/18

PROGRAM STUDI TEKNIK TELEKOMUNIKASI

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI SEMARANG

2015

(2)

PRAKTIK VII

SERIAL ASINKRON (UART) I. KOMPONEN YANG DIGUNAKAN

1. Modul Arduino 2. Kabel Jumper 3. Protoboard 4. Potensiometer 5. Resistor 330 Ohm 6. LED 7. Arduino IDE II. RANGKAIAN

Gambar 7.1. Rangkaian untuk Percobaan 7.1 dan 7.2

(3)

Gambar 7.3. Rangkaian untuk Percobaan 7.4

Gambar 7.4. Rangkaian untuk Percobaan 7.5

Gambar 7.5. Rangkaian untuk Percobaan 7.6

(4)

1. Percobaan 7.1

1.1 Dasar Program IO Serial Asinkron void setup(){

//put your setup code here, to run once:

Serial.begin(9600); //send and receive at 9600 haud }

int number=0; void loop(){

// put your main code here, to run repeatedly Serial.print("The number is");

Serial.println(number); //print the number

delay(500); //delay half second between numbers number++; //to the next number

}

1.2 Tugas Dasar Program IO Serial Asinkron void setup(){

//put your setup code here, to run once:

Serial.begin(9600); //send and receive at 9600 haud }

int r;

void loop(){

// put your main code here, to run repeatedly for(r=0; r<=100; r++)

{Serial.print("The number is"); Serial.println(r); //print the number

delay(500);} //delay half second between numbers }

2. Percobaan 7.2 Mengirim Data Serial dengan Berbagai Format 1.1 Latihan

/*

* SerialFormatting

*Print values in various formats to the serial port */

char chrValue=65; //this are the starting values to print byte byteValue=65; int intValue=65; float floatValue=65.0; void setup(){ Serial.begin(9600); } void loop(){

(5)

Serial.println("chrValue: "); Serial.println(chrValue); Serial.write(chrValue); Serial.println(); Serial.println(chrValue,DEC); Serial.println("byteValue: "); Serial.println(byteValue); Serial.write(byteValue); Serial.println(); Serial.println(byteValue,DEC); Serial.println("intValue: "); Serial.println(intValue); Serial.println(intValue,DEC); Serial.println(intValue,HEX); Serial.println(intValue,OCT); Serial.println(intValue,BIN); Serial.println("floatValue: "); Serial.println(floatValue);

delay(1000); //delay a second between numbers chrValue++; //to the next value

byteValue++; intValue++; floatValue+=1; }

1.2 Tugas Program Mengirim Data Serial dengan Berbagai Format /*

* SerialFormatting

*Print values in various formats to the serial port */

char chrValue=65; //this are the starting values to print void setup(){

Serial.begin(9600); }

void loop(){

if(chrValue>=65 && chrValue<=90){ Serial.println("karakter: "); Serial.println(chrValue); Serial.println("desimal: "); Serial.println(chrValue,DEC); Serial.println("heksadesimal: "); Serial.println(chrValue,HEX); Serial.println("biner: "); Serial.println(chrValue,BIN);

delay(1000); //delay a second between numbers chrValue++;

(6)

}}

3. Percobaan 7.3 Menerima Data Serial 3.1 Latihan

void setup()

{ Serial.begin(9600); // initialize serial port to send and receive at 9600 baud }

void loop() {

if (Serial.available()) //check to see if at least one character is avilable { char ch=Serial.read(); Serial.write(ch); } } 3.2 Program Langkah 4 /*

*Blink the LED at a rate proportional to the received digit value */

const int ledPin = 13; //pin the LED is conected to int blinkRate=0; // blink rate stored in this variable void setup()

{

Serial.begin(9600); // initialize serial port to send and receive at 9600 baud pinMode(ledPin, OUTPUT); //setthis pin as output

}

void loop() {

if (Serial.available()) //check to see if at least one character is available { char ch=Serial.read();

if(isDigit(ch)) //is this an ascii digit between 0 and 9?

{ blinkRate=(ch-'0'); //ascii value converted to numeric value

blinkRate=blinkRate*100; // actual rate is 100ms times received digit }}

blink(); }

// blink the led with the ono anf=d off times determineed by blink rate void blink()

{ digitalWrite(ledPin, HIGH);

delay(blinkRate); // delay depends on blink rarte value digitalWrite(ledPin, LOW);

delay(blinkRate); }

III.3 Tugas Menerima Data Serial void setup()

(7)

}

void loop() {

if (Serial.available()) //check to see if at least one character is avilable {char ch=Serial.read();

if(ch>=65 && ch<=90) {char chh;

chh=32+ch;

Serial.write(chh); delay(500);} else if(ch>=97 && ch<=122) {char chh; chh=ch-32; Serial.write(chh); delay(500);} else { Serial.write(ch);delay(500); } } }

4. Percobaan 7.4 Komunikasi Serial dari Data ADC 4.1 Latihan

int sensorPin = A0; int ledPin=13; int sensorValue = 0; void setup(){ Serial.begin(9600); } void loop() { sensorValue = analogRead(sensorPin); Serial.println(sensorValue); delay(2000); } 4.2 Program Langkah ke 5 int sensorPin = A0; int ledPin=13; int sensorValue = 0; int sensorOlah = 0; void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); } void loop() {

(8)

sensorValue = analogRead(sensorPin); sensorOlah = sensorValue*2; char ch = Serial.read(); Serial.print("Nilai ADC: "); Serial.println(sensorValue); Serial.print("Nilai Olah: "); Serial.println(sensorOlah); delay(2000); }

4.3 Tugas membuat program agar Arduino mampu mengirim data X dan Y secara berururan. Nilai x adalah hasil pembacaan ADC dan y adalah hasil pengolahan dengan ketentuan: Y = 0 jika X =<100, Y = X jika 100<X<500, Y = 2X jika X>=500

int sensorPin = A0; int ledPin=13; int sensorValue = 0; int sensorOlah = 0; void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); } void loop() { sensorValue = analogRead(sensorPin); char ch = Serial.read(); if (sensorValue<100) {sensorOlah = 0; Serial.print("Nilai X :"); Serial.println(sensorValue); Serial.print("Nilai Y : "); Serial.println(sensorOlah);}

else if (sensorValue <=500&&sensorValue>=100) { sensorOlah=sensorValue; Serial.print("Nilai X :"); Serial.println(sensorValue); Serial.print("Nilai Y : "); Serial.println(sensorOlah);} else if (sensorValue > 500) { sensorOlah=2*sensorValue; Serial.print("Nilai X :"); Serial.println(sensorValue); Serial.print("Nilai Y : "); Serial.println(sensorOlah);} delay(2000);

(9)

}

5. Percobaan 7.5 Data Serial dikirim ke LCD 5.1 Latihan #include <LiquidCrystal.h> LiquidCrystal lcd(12,11,5,4,3,2); void setup(){ lcd.begin(16,2); lcd.print("Mikro&Antarmuka"); } void loop(){ lcd.setCursor(0,1); if(Serial.available()) { char ch = Serial.read(); lcd.print(ch); } }

5.2 Tugas membuat program agar Arduino mampu menerima data karakter huruf dari Keyboard PC dan menkonversi menjadi huruf capital atau sebaliknya dan menampilkan dalam LCD. Jika data bukan huruf, maka data ditampilkan pada LCD seperti aslinya.

#include <LiquidCrystal.h> LiquidCrystal lcd(12,11,5,4,3,2); void setup()

{ lcd.begin(16,2);

Serial.begin(9600); // initialize serial port to send and receive at 9600 baud }

void loop() {

if (Serial.available()) //check to see if at least one character is avilable {char ch=Serial.read(); if(ch>=65 && ch<=90) {char chh; chh=32+ch; lcd.setCursor(0,1); lcd.print(chh); delay(500);} else if(ch>=97 && ch<=122) {char chh; chh=ch-32; lcd.setCursor(0,1); lcd.print(chh); delay(500);} else {

(10)

lcd.setCursor(0,1); lcd.print(ch);delay(500); }

} }

6. Komunikasi Serial antar Arduino 6.1 Latihan (PC1) void setup(){ Serial.begin(9600); Serial1.begin(9600); } void loop(){ if(Serial.available()) { char ch1 = Serial.read(); Serial1.println(ch1); } delay(200); Latihan (PC2) void setup(){ Serial.begin(9600); Serial1.begin(9600); } void loop(){ if(Serial1.available()) { char ch = Serial1.read(); Serial.println(ch); } delay(200); IV. HASIL Percobaan Gambar

(11)

7.1 Latihan

7.1 Tugas

7.2 Latihan

7.2 Tugas

(12)

7.3 Langkah 4 7.3 Tugas 7.4 Latihan 7.4 Langkah 5 7.4 Tugas 7.5 Latihan

(13)

7.5 Tugas

7.6 Latihan

7.6 Tugas

V. ANALISA

Dari percobaan diatas dapat dianalisa bahwa:

1. Percobaan 7.1 adalah dasar program input output serial asinkron. Pada percobaan ini Arduino dipasangkan ke PC melalui USB. USB terhubung ke PC melalui serial port (COM) yang berfungsi sebagai Universal Asynchronous Receiver Transmitter (UART). Pada board Arduino terdapat satu port komunikasi serial, yaitu pada pin 0 (menerima (RX)), dan pin 1 ( mengirim (TX)). Serial monitor pada aplikasi Arduino IDE dapat digunakan untuk berkomunikasi serial dengan board arduino. Pada program terdapat fungsi Serial.begin() yang berfungsi untuk menyetting kecepatan data dalam bits per second (baud) untuk penyampaian data serial. Baud rate yang digunakan disini sebesar 9600 bit per second. Int number artinya angka dimulai dari angka 0. Serial.print berfungsi untuk untuk menampilkan data berbasis teks dengan satu baris

(14)

menyambung secara terus-menerus sehingga teksnya memanjang pada satu baris. Sedangkan Serial.println berfungsi untuk menampilkan teks pada baris baru secara terus-menerus. Selanjutnya program diberi delay sebesar 500 ms dalam menampilkan antar angka. Kemudian diberi number++ agar selanjutnya angka bertambah satu. Sehingga hasil program menampilkan karakter huruf “The number is” diikuti angka yang berurutan ke bawah.

2. Selanjutnya pada tugas percobaan 7.1, diminta menampilkan data ketika mencapai 100 kembali ke 0. Programnya hampir sama dengan program sebelumnya, tetapi diberi syntax for yaitu for(r=0; r<=100; r++) . r =number. Sehingga angka pertama menampilkan angka 0, kemudian angka akan bertambah satu karena kurang dari 100,begitu seterusnya. Ketika sampai pada angka 100 maka akan kembali ke angka 0.

3. Pada percobaan 7.2 adalah percobaan mengirim data serial dengan berbagai format. Format yang dikirim adalah format karakter,byte, decimal, hexadecimal, octadesimal, dan biner. Semua format yang dikirim dimulai dari 65. 65 merupakan code ASCII dari karakter A. Serial.println(“chrValue: “), output menampilkan kata chrValue, Serial.println(chrValue); output akan menampilkan konversi code ASCII 65 ke huruf A dari chrValue. Serial.write(chrValue); menampilkan karakter dari nilai chrValue, Kemudian saat Serial.println(chrValue,DEC), nilai chrValue dicetak dalam format desimal. Kemudian dengan dalam format byte, byteValue akan menghasilkan 1 Byte = 8 bit bilangan biner dari bilangan ASCII 65. Hasil tersebut akan ditampilkan dalam format desimal yaitu 65, format heksadesimal yaitu 65, format oktadesimal yaitu 41, format biner yaitu 01000001. Pada format oktadesimal angka 41 didapat dari pembacaan bilangan biner 65 yaitu 01000001, 0100 = 4, dan empat bit selanjutnya yaitu 0001 =1, maka octadesimal dari bilangan 65 adalah 41. Berikut adalah hasil dari program di atas :

Output program akan berlanjut dari A ke B, C, dan seterusnya. Hasil output satu dengan output selanjutnya memiliki waktu jeda selama 1 detik.

(15)

4. Selanjutnya tugas percobaan 7.2 yaitu mengirim kode ASCII dari huruf A sampai Z dalam format : char, desimal, hexadecimal, dan biner. Bilangan ASCII 65 di inisialisasi terlebih dahulu dengan char ch =65. Kemudian untuk dapat mengirim huruf dari A-Z maka digunakan syntax if

Jika char value bernilai dari 65 sampai 90 maka output akan menampilkan format dalam char menggunakan Serial.println(chrValue), dalam decimal menggunakan Serial.println(chrValue,DEC, dalam hexadecimal menggunakan Serial.println(chrValue,HEX), dalam biner menggunakan Serial.println(chrValue,BIN).

Karakter akan bertambah 1 level dari A ke B , B ke C seterusnya sampai Z karena diberi syntax chrValue++.

5. Percobaan 7.3 adalah menerima data serial. Pada program ini menggunakan syntax if (Serial.available() yaitu untuk mengecek apakah data di sudah ada di buffer penerima, jika data tersedia maka true jika data kosong maka false. Serial.read() untuk membaca data yg diterima. Kemudian Serial.write(ch) untuk menampilkan karakter yang diterima. Sehingga programnya adalah jika terdapat karakter pada buffer penerima, maka akan dibaca oleh Serial.read lalu data yang dikirim ditampilkan oleh Serial.write .

6. Pada percobaan 7.3 program langkah 4 , adalah menerima data serial dengan LED. LED terambung pada pin 13 arduino, berfungsi sebagai output. Jika terdapat karakter pada buffer penerima (if (Serial.available()) maka karakter akan dibaca oleh Serial.read, sebelum ditampilkan, jika karakter tersebut adalah angka 0-9 ( if( isDigit(ch) ) maka akan angka tersebut akan dikonversi dari nilai ASCII ke nilai bilangan oleh blinkRate = (ch-‘0’) kemudian angka angka tersebut dikalikan dengan 100ms oleh blinkRate=blinkRate*100. Angka pada blinkRate inilah yang akan mengatur kedipan LED. Dan ketika delay(blinkRate) maka LED akan berkedip dengan lama waktu sesuai dengan angka pada blinkRate. Jadi saat mengirim angka 5 pada Serial monitor maka akan, didapat delay atau jeda sebesar 500 ms. Semakin besar data yang dikirim, maka delay kedip dari indikator LED juga akan besar.

(16)

7. Pada tugas percobaan 7.3 yaitu menerima data karakter huruf dari keyboard PC dan menkonversi menjadi huruf kapital atau sebaliknya. Jika data bukan huruf, maka data dikirim kembali apa adanya. Untuk huruf A sampai Z kode ASCII nya adalah 65-90 sedangkan untuk huruf a-z kode ASCII nya adalah 97-122. Syntax if (Serial.available()), akan mengecek ada atau tidaknya data yang diterima. Apabila ada data yang diterima maka akan dibaca dengan Serial.read(). Jika data yang diterima bernilai antara lebih dari sama dengan 65 (huruf A) dan kurang dari sama dengan 90 ( huruf Z), maka yang akan ditampilkan adalah chh. Chh merupakan nilai data ASCII ditambah dengan 32 agar dapat menampilkan konversi dari huruf besa ke huruf kecil. Kemudian data chh akan dicetak menggunakan Serial.write(chh). Jika data yang diterima bernilai antara lebih dari sama dengan 97 (huruf a) dan kurang dari sama dengan 122 (huruf z), maka yang ditampilkan adalah ch. Ch merupakan nilai data ASCII dikurangi dengan 32 agar dapat menampilkan konversi huruf kecil ke huruf besar .Kemudian data ch akan dicetak menggunakan Serial.write(ch). Apabila inputan yang diberikan berupa angka maka hasil outputnya tetap berupa angka karena pada program tidak diberikan pengaturan khusus.

8. Pada percobaan 7.4 adalah percobaan Komunikasi Serial dari Data ADC, pada percobaan ini digunakan potensiometer sebagai input Analog dan LED sebagai output. Kaki tengah potensiometer terhubung pada port Analog 0 pada Arduino. Sedangkan LED terhubung pada port 13 arduino. SensorValue merupakan nilai hambatan pada potensiometer, int sensorValue=0 artinya nilai hambatan awal dari potensiometer adalah 0. 12. Untuk membaca nilai dari sensor (potensiometer) digunakan perintah sensorValue = analogRead(sensorPin); Perintah analogRead() berfungsi untuk mengkonversi range tegangan input analog (0 sampai 5 volt) ke nilai digital sensor yaitu antara 0 sampai 1023. Perintah tesebut dilakukan oleh rangkaian ADC (Analog to Digital Converter) pada Arduino. Nilai sensor atau potensiometer yang telah dibaca akan ditampilkan pada serial monitor dengan perintah Serial.println(sensorValue).

9. Pada percobaan 7.4 langkah 5, rangkaiannya sama seperti pecobaan 7.4 sebelumnya. Pada program ini sensorValue sama seperti program sebelumnya yaitu nilai dari hambatan potensiometer. Untuk membaca nilai dari sensor (potensiometer) digunakan perintah sensorValue = analogRead(sensorPin); Pada program ini ditambahkan sensorOlah yang nilainya 2 kali sensorValue. Serial.println(“Nilai ADC: “), output akan mencetak kata Nilai ADC: , kemudian saat Serial.println(sensorValue); akan mencetak

(17)

nilai dari sensorValue yang didapat dari hambatan potensiometer. Saat Serial.println(“Nilai Olah: “), output akan mencetak kata Nilai Olah: , kemudian saat Serial.println(sensorOlah); akan mencetak nilai dari sensorOlah yang didapat dari 2x sensor yang didapat dari potensiometer.

10.Selanjutnya pada tugas percobaan 7.4 output yang diharapkan adalah nilai X merupakan hasil pembacaan ADC dan nilai Y merupakan hasil pengolahan sesuai dengan ketentuan berikut : nilai Y= 0, jika X =< 100 ; nilai Y = X, jika 100<X <500 ; nilai Y = 2X, jika X>=500. Untuk menghasilkan output seseuai dengan ketentuan maka digunakan syntax if dan else if sebagai looping. SensorValue sebagai nilai X dan sensorOlah sebagai nilai Y. Jika sensorValue=<100 maka sensorOlah = 0. Kemudian nilai sensorValue dan sensorOlah ditampilkan dengan perintah Serial.println(sensorValue) dan Serial.println(sensorOlah). Berikut adalah program tugas percobaan 7.4

if (sensorValue<100) {sensorOlah = 0; Serial.print("Nilai X :"); Serial.println(sensorValue); Serial.print("Nilai Y : "); Serial.println(sensorOlah);}

Selanjutnya, jika sensorValue(X) bernilai antara 100-500 maka nilai sensorOlah(Y) adalah nilai dari sensorValue itu sendiri. Kemudian nilai sensorValue dan sensorOlah ditampilkan dengan perintah Serial.println(sensorValue) dan Serial.println(sensorOlah)

else if (sensorValue <=500&&sensorValue>=100) { sensorOlah=sensorValue;

Serial.print("Nilai X :"); Serial.println(sensorValue); Serial.print("Nilai Y : "); Serial.println(sensorOlah);}

Jika nilai sensorValue(X) lebih dari sama dengan 500 maka nilai sensorOlah adalah 2kali nilai sensorValue itu sendiri.

Jadi ketika nilai sensorValue (X) bernilai 0-100 maka sensorOlah(Y) akan bernilai 0, jika sensorValue (X) bernilai 100-500 maka sensorOlah(Y) akan bernilai X itu sendiri,jika sensorValue (X) bernilai lebih dari 500 maka sensorOlah(Y) akan bernilai 2kali X. Misalnya nilai X adalah 250 maka Y adalah 250. Sedangkan jika X adalah 750 maka Y adalah 1500.

11. Pada percobaan 7.5 yaitu Data Serial yang dikirim ke LCD, percobaan ini menggunakan LCD sebagai outputnya dan Serial Monitor sebagai inputnya. LCD terhubung dengan pin 2,3,4,5,11,13 pada Arduino Leonardo. Pin 2,3,4,5 tersambung dengan pin D7,D6,D5,D4

(18)

LCD, dimana pin D7-D0 pada LCD merupakan jalur data untuk mengirim dan menerima data/instruksi dari mikrokontroller ke LCD. Untuk mengaktifkan LCD yang dipakai maka digunakan syntax lcd.begin (16,2) yang artinya LCD yang dipakai pada percobaan ini bisa menampilkan 2x16 karakter. Program harus dapat mengidentifikasi bahwa LCD yang digunakan adalah LCD 2x16 (2baris 16 kolom) dengan menggunakan syntax lcd.begin. Selanjutnya menggunakan syntax lcd.print untuk menampilkan karakter.

Syntax led.setCursor(0,1) artinya karakter terletak pada kolom 0 baris 1.

Syntax if (Serial.available()), akan mengecek ada atau tidaknya data yang diterima. Apabila ada data yang diterima (char ch) maka akan dibaca dengan Serial.read(). Sehingga apabila pada Serial Monitor diketikkan suatu karakter melalui keyboard PC lalu diklik SEND maka karakter yang dikirim melalui Serial Monitor juga akan tampil pada kolom 0 dan baris 1 di LCD.

12.Selanjutnya pada tugas 7.5 diharapkan output yang dihasilkan adalah Arduino mampu menerima data karakter huruf dari keyboard PC dan mengkonversi menjadi huruf capital atau sebaliknya dan menampilkan dalam LCD, jika data bukan huruf maka data yang ditampilkan pada LCD tetap seperti aslinya. Untuk huruf A sampai Z kode ASCII nya adalah 65-90 sedangkan untuk huruf a-z kode ASCII nya adalah 97-122. Syntax if (Serial.available()), akan mengecek ada atau tidaknya data yang diterima. Apabila ada data yang diterima maka akan dibaca dengan Serial.read(). Jika data yang diterima bernilai antara lebih dari sama dengan 65 (huruf A) dan kurang dari sama dengan 90 ( huruf Z), maka yang akan ditampilkan adalah chh. Chh merupakan nilai data ASCII ditambah dengan 32 agar dapat menampilkan konversi dari huruf besa ke huruf kecil. Kemudian data chh akan dicetak menggunakan syntax lcd.setCursor(0,1) dan lcd.print. Jika data yang diterima bernilai antara lebih dari sama dengan 97 (huruf a) dan kurang dari sama dengan 122 (huruf z), maka yang ditampilkan adalah ch. Ch merupakan nilai data ASCII dikurangi dengan 32 agar dapat menampilkan konversi huruf kecil ke huruf besar . Kemudian data chh akan dicetak menggunakan syntax lcd.setCursor(0,1) dan lcd.print. Apabila inputan yang diberikan berupa angka maka hasil outputnya tetap berupa angka karena pada program tidak diberikan pengaturan khusus.

13.Pada percobaan 7.6 yaitu Komunikasi Serial antar Arduino , pada percobaan ini digunakan dua buah PC dan dua buah Arduino, yang masing-masing berfungsi sebagai

(19)

pengirim (TX) dan penerima (RX). Pada port tx di Arduino1 terhubung dengan port RX pada Arduino2 lalu port RX pada Arduino1 terhubung pada port TX pada Arduino2. Arduino1 sebagai Arduino TX dan Arduino2 sebagai Arduino RX. PC 1 terhubung dengan Arduino1 sedangkan PC 2 terhubung dengan Arduino 2. Arduino1 diprogram untuk dapat mengirim karakter namun tidak dapat menerima karakter sedangkan pada Arduino2 kebalikan dari Arduino2 yaitu diprogram untuk dapat menerima karakter namun tidak dapat mengirim karakter. Pada PC1 memiliki 2 variabel Serial.begin() yaitu Serial.begin(9600) dan Serial.begin1(9600). Variabel Serial digunakan pada sisi pengirim atau TX, sedangkan variable Serial1 digunakan pada sisi penerima. Saat sisi TX mengirimkan pesan, maka dideteksi dan dibaca oleh serial.read. Pesan dari serial.read()tersebut yang akan dikirim ke PC2. Pesan akan dicetak oleh Serial1.print, yang ada pada sisi penerima atau RX. Sehingga pesan yang dikirim oleh sisi TX akan dicetak pada sisi RX.

a. Pada PC 2 dikonfigurasi berkebalikan dengan konfigurasi PC 1. PC 2 akan bertindak sebagai penerima saja dan tidak dapat mengirim pesan. PC 2 juga memiliki 2 variabel Serial.begin yaitu Serial.begin() dan Seria1l.begin(). Pada PC 2 akan dideteksi ada atau tidaknya data yang diterima, kemudian apabila ada data yang diterima akan dibaca oleh Serial1.read(). Kemudian data yang dibaca akan ditampilkan pada sisi penerima.

b. Pada tugas yang memiliki ketentuan kedua aduino dapat saling mengirim dan menerima data. Untuk memenuhi ketentuan tersebut, maka dilakukan perubahan pada program di atas, yaitu menggabungkan 2 program di atas, sehingga kedua PC dapat bertindak sebagai pengirim dan penerima.

VI. KESIMPULAN

Dari percobaan yang telah dilakukan dapat dianalisa bahwa:

1. Pada board Arduino terdapat satu port komunikasi serial, yaitu pada pin 0 (menerima (RX)), dan pin 1 ( mengirim (TX)). serial port (COM) pada PC berfungsi sebagai Universal Asynchronous Receiver Transmitter (UART).

2. Serial.begin() berfungsi untuk menyetting kecepatan data dalam bits per second (baud) untuk penyampaian data serial. Serial.print berfungsi untuk untuk menampilkan data berbasis teks dengan satu baris menyambung secara terus-menerus sehingga teksnya

(20)

memanjang pada satu baris. Sedangkan Serial.println berfungsi untuk menampilkan teks pada baris baru secara terus-menerus.

3. Serial.println(chrValue) berfungsi menampilkan format dalam char, Serial.println(chrValue,DEC) berfungsi menampilkan format dalam desimal Serial.println(chrValue,HEX), berfungsi menampilkan format dalam hexadecimal, Serial.println(chrValue,BIN) berfungsi menampilkan format dalam biner.

4. if (Serial.available() berfungsi untuk mengecek apakah data di sudah ada di buffer penerima. Serial.read() untuk membaca data yg diterima. Kemudian Serial.write(ch) untuk menampilkan karakter yang diterima.

5. Kode ASCII berupa angka 0 hingga 9 dapat dijadikan sebagai delay atau waktu jeda dari sebuah rangkaian LED dengan mengalikan kode ASCII tersebut dengan angka 100 yang mewakili 100 ms.

6. Pada komunikasi serial dari data ADC digunakan potensiometer sebagai input. sensorValue merupakan nilai hambatan potensiometer. Untuk menampilkan nilai hambatan potensiometer ke serial monitor menggunakan syntax Serial.println(sensorValue).

7. Dengan menggunakan 2 Arduino, antar PC dapat melakukan komunikasi serial. Dengan menghubungkan port TX Arduino 1 ke port RX Arduino 2 dan menghubungkan port TX Arduino 2 ke port RX Arduino 1.

Gambar

Gambar 7.1. Rangkaian untuk Percobaan 7.1 dan 7.2
Gambar 7.4. Rangkaian untuk Percobaan 7.5

Referensi

Dokumen terkait

Laju pertumbuhan bobot mutlak, laju pertumbuhan harian dan nisbah konversi pakan menunjukkan bahwa kelompok benih lele yang media hidupnya diberi tambahan 50%

Hasil penelitian yang terlihat pada tabel 2 menunjukkan bahwa pemberian kinesiotaping dapat menghasilkan penurunan nyeri yang bermakna pada penderita nyeri

Simpulan akhir yang dapat disampaikan adalah bahwa penerapan model pembelajaran Student Team Achievement Division (STAD) mampu meningkakant prestasi belajar PPKn pada

&#34;Sen kısa yaşarsın ufaklık. Biz uzun yaşarız. Ama bizler zaman içinde yaşarız. Çocuk İmparatoriçe benden daha önce vardı. Onun varlığı süreyle değil,

Hasil percobaan menunjukkan bahwa kombinasi perlakuan pemangkasan pucuk dan dosis pupuk kalium berpengaruh terhadap produksi dan kualitas benih mentimun yaitu pada

Unit PT PLN (PERSERO) yang akan membangun SCADA harus mengacu pada SPLN S3.001: 2008 Peralatan SCADA Sistem Tenaga Listrik. Jumlah yang dijelaskan pada tabel 6 dan tabel 7

Seleksi Jalur Mandiri Alih Jenjang adalah jalur seleksi bagi calon mahasiswa baru yang dilakukan berdasarkan seleksi terhadap kompetensi profesi sesuai jenjangnya

Pola pergerakan penumpang kapal antar pelabuhan utama yang disinggahi dimana marginal output lebih besar dari 50% sesuai wilayah operasinya dapat dilihat pada Tabel