LAPORAN PRAKTIK MIKROPROSESSOR & INTERFACE

dokumen-dokumen yang mirip
PANDUAN PRAKTIKUM DASAR ARDUINO

Logika pemrograman sederhana

BAB IV PEMBAHASAN. 27

BAB IV PENGUJIAN DAN ANALISA ALAT

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB IV HASIL DAN UJI COBA

BAB IV PENGUJIAN DAN ANALISA ALAT

Pengenalan Komunikasi Data pada Processing

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB III PERANCANGAN ALAT DAN PROGRAM

Pengenalan Sensor Ultrasonic SRF05 dengan Arduino Sketch. Sensor Ultrasonic SRF05

DT-SENSE Application Note

PANDUAN PRAKTIKUM DASAR ARDUINO

PANDUAN PRAKTIKUM DASAR ARDUINO

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB IV HASIL DAN UJI COBA

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB III PERANCANGAN SISTEM

BAB III PEMBUATAN SOFTWARE

BAB IV HASIL DAN UJI COBA

MIKROKONTROLER ARDUINO

BAB IV ANALISIS DATA DAN PEMBAHASAN

BAB IV PENGUJIAN ALAT DAN ANALISA

PROJECT LED SINYAL MORSE SOS

BAB IV HASIL DAN UJI COBA

PERCOBAAN 1 SEVEN SEGMEN

BAB IV PENGUJIAN. Gambar 4.1 Rangkaian Pengujian Arduino Uno.

BAB IV PENGUJIAN DAN ANALISA SISTEM

BAB IV HASIL DAN UJI COBA

BAB III PERANCANGAN DAN PEMBUATAN ALAT. Pada bab III ini menjelaskan mengenai konsep perancangan alat Monitoring Arus dan

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM

BAB IV PENGUKURAN DAN ANALISIS SISTEM. diharapkan dengan membandingkan hasil pengukuran dengan analisis. Selain itu,

BAB IV HASIL DAN UJI COBA

PANDUAN PRAKTIKUM DASAR ARDUINO

PENGENALAN ARDUINO. SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport komunikasi SPI menggunakan SPI library.

MODUL PRAKTIKUM ROBOTIKA. Program Studi Sistem Komputer STMIK STIKOM Indonesia

BAB 3 PERANCANGAN ALAT. Gambar 3.1 diagram blok rangkaian

Source Code Progam Magnetic Door Lock menggunakan Kode Pengaman berbasis ATmega 328

PRAKTIKUM 9 Penulisan dan Pembacaan ADC pada Mikrokontroler

BAB IV ANALISA DAN PENGUJIAN DATA

BAB IV PENGUJIAN DAN ANALISA ALAT. perancangan alat. Tujuan pengujian adalah untuk mengetahui kebenaran

BAB III METODOLOGI PENELITIAN. Adapun untuk gambar dan penjelasan dari blok diagram dari alat dapat dilihat pada. Modul sensor.

BAB III METODE PENELITIAN. transmisi data streaming menggunakan Zigbee wireless network dengan

BAB 3 PERANCANGAN DAN PEMBUATAN

TERMOMETER DIGITAL BERBASIS MIKROKONTROLER ARDUINO UNO DENGAN OUTPUT TAMPILAN DISPLAY DIGITAL

BAB IV PENGUJIAN ALAT. Pengujian Arduino Board Pengujian Sensor Ultrasonic (ping) Pengujian Tombol Pengujian LCD Pengujian Alat Keseluruhan

BAB IV HASIL DAN PEMBAHASAN. ketepatan masing-masing bagian komponen dari rangkaian modul tugas akhir

BAB IV PENERAPAN DAN PENGUJIAN

BAB IV ANALISA DAN PENGUJIAN ALAT

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV ANALISA DAN PENGUJIAN

BAB III PERANCANGAN ALAT DAN PROGRAM

BAB IV ANALISA DAN PENGUJIAN ALAT

Lembar Kegiatan 8 Arduino Wireless Controlling

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM. patok, serta pemasangan sensor ultrasonik HC-SR04 yang akan ditempatkan pada

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

LAMPIRAN 1 LISTING PROGRAM SECARA KESELURUHAN PADA ARDUINO. #define dht_dpin A0 //no ; here. Set equal to channel sensor is on

BAB IV PENGUJIAN DAN ANALISA ALAT

BAB III PERANCANGAN PERANGKAT KERAS DAN LUNAK

BAB IV IMPLEMENTASI DAN PENGUJIAN

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB III PERANCANGAN ALAT

BAB III PERANCANGAN ALAT

BAB IV HASIL PENGUJIAN DAN PENGAMATAN. pengujian perangkat lunak (software) dan kinerja keseluruhan sistem, serta analisa

BAB IV HASIL PENGUJIAN DAN PENGAMATAN. pengujian perangkat keras (hardware), perangkat lunak (software) dan kinerja

DQI-03 DELTA ADC. Dilengkapi LCD untuk menampilkan hasil konversi ADC. Dilengkapi Zero offset kalibrasi dan gain kalibrasi

BAB IV HASIL DAN UJI COBA

PANDUAN PRAKTIKUM DASAR ARDUINO

What is it? 3 x 4 Keypad 4 x 4 Keypad

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB IV PENGUJIAN DAN ANALISA SISTEM

BAB III PERANCANGAN SISTEM

#include <SoftwareSerial.h> SoftwareSerial BTSerial(10, 11);

BAB 3 METODE PENELITIAN. Sikonek, rumah tinggal Sunggal, dan Perpustakaan Universitas Sumatera Utara.

BAB IV HASIL DAN UJI COBA

BAB V PENUTUP. 5.1 Kesimpulan

BAB III METODOLOGI PERANCANGAN. Diagram alir digambarkan pada gambar berikut :

BAB IV PENGUJIAN ALAT. pengujian yang akan dilakukan, yaitu pengujian fungsional dan pengujian sistem

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB IV HASIL PENGUKURAN DAN PENGUJIAN ALAT SISTEM PENGONTROL BEBAN DAYA LISTRIK

BAB IV PENGUJIAN DAN ANALISA ALAT

BAB IV IMPLEMENTASI DAN PENGUJIAN. dirancang sebelumnya akan dibahas pada bab ini. Tahap implementasi merupakan

BAB III METODE PENELITIAN

BAB 3 PERANCANGAN SISTEM

BAB II LANDASAN TEORI

Analog to Digital Convertion Menggunakan Arduino Uno Minsys

DT-51 Application Note

BAB IV HASIL DAN PEMBAHASAN

BAB 3 PERANCANGAN SISTEM

BAB III PERANCANGAN ALAT

Light Dependent Resistor LDR Menggunakan Arduino Uno Minsys

BAB III DESKRIPSI DAN PERANCANGAN SISTEM

BAB III PERANCANGAN ALAT

BAB III PERANCANGAN. meliputi dua Perancangan yaitu perangkat keras (hardware) dan perangkat lunak

DAFTAR PUSTAKA. [1] Jazi Eko Istiyanto Pengantar Elektronika & Instrumentasi. Jakarta: Penerbit Andi

BAB III METODE PENELITIAN. kepada security atau pihak yang berwenang melalui komunikasi wireless dengan output

BAB IV HASIL DAN UJI COBA

Transkripsi:

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

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 Gambar 7.2. Rangkaian untuk Percobaan 7.3 Langkah Kerja No.4

Gambar 7.3. Rangkaian untuk Percobaan 7.4 Gambar 7.4. Rangkaian untuk Percobaan 7.5 Gambar 7.5. Rangkaian untuk Percobaan 7.6 III. PROGRAM

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()

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++;

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() 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; 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()

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);

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

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

7.1 Latihan 7.1 Tugas 7.2 Latihan 7.2 Tugas 7.3 Latihan

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

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

menyambung secara terus-menerus sehingga teksnya memanjang pada satu baris. Sedangkan Serial.println berfungsi untuk menampilkan teks pada baris baru secara terusmenerus. 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.

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), Serial.println(chrValue,DEC, dalam dalam decimal hexadecimal menggunakan 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 5. syntax chrvalue++. 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.

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

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

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

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

memanjang pada satu baris. Sedangkan Serial.println berfungsi untuk menampilkan teks pada baris baru secara terus-menerus. 3. Serial.println(chrValue) berfungsi Serial.println(chrValue,DEC) menampilkan berfungsi menampilkan format format dalam dalam char, 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.