MODUL 3
LAPORAN AKHIR 1
Universal Asynchronous Receiver Transmitter. |
a. Arduino beserta kabel USB dan aplikasi Arduino IDE
Gambar 1. Arduino dan kabel USB |
b. Breadboard
Gambar 2. Breadboard |
c. Button
d. Jumper Wire
Gambar 4. Jumper Wire |
e. LED Red
f. Resistor 220 Ω
Rangkaian pada percobaan 1 terdiri dari 2 Arduino UNO (Master dan Slave), LED, resistor, push button, breadboard, dan jumper wire.
- Untuk komunikasi UART, pin Tx Master dihubungkan ke pin Rx Slave, pin Rx Master dihubungkan ke pin Tx Slave, dan pin Ground Master dihubungkan ke pin Ground Slave
- Pada Arduino Master, pin 2 dihubungkan ke push button sebagai input.
- Pada Arduino Slave, pin 13 dihubungkan ke LED sebagai output
- Resistor dipasang seri dengan LED sebagai pengaman.
- Kabel USB dihubungkan ke laptop.
Kemudian kita program Arduino melalui aplikasi Arduino UNO:
- pinMode (spdt, INPUT_PULLUP); menunjukkan spdt sebagai input dengan input_pullup dimana resistor pullup internal akan diaktifkan.- Serial.begin(9600);} menunjukkan kecepatan data dan penerimaan data melalui port serial dengan kecepatan 9600 bit per second (bps).
- void
loop (){ menunjukkan
semua kode dalam fungsi ini akan dibaca berulang:
- int nilai=digitalRead(spdt); menunjukkan nilai didapatkan dari pembacaan SPDT.- if(nilai == 0){ menunjukkan jika SPDT dihubungkan ke pin B (GND) maka kode di dalam if dieksekusi.
Serial.print("1");} menunjukkan perintah print 1 pada serial monitor.
- else{ menunjukkan jika SPDT dihubungkan ke pin A maka kode di dalam else dieksekusi.
Serial.print("2");} menunjukkan perintah print 2 pada serial monitor.
- delay(200); menunjukkan jeda waktu 200 ms sebelum melakukan perulangan.
- // SLAVE
- #define
led 12 menunjukkan
pendeklarasian pin 12 untuk LED.
- void
setup (){ menunjukkan
kode dalam fungsi ini hanya dibaca satu kali:
- pinMode (led, OUTPUT); menunjukkan led sebagai output.
- Serial.begin(9600);} menunjukkan kecepatan data dan penerimaan data melalui port serial dengan kecepatan 9600 bit per second (bps).
- void
loop (){ menunjukkan
semua kode dalam fungsi ini akan dibaca berulang:
- if(Serial.available()>0) menunjukkan jika jumlah byte (karakter) yang tersedia untuk dibaca dari port serial lebih dari 0 maka kode di dalam if dieksekusi..- int data=Serial.read(); menunjukkan data didapatkan dari serial data yang masuk.- if(data=='1'){ menunjukkan jika data yang masuk 1 maka kode di dalam if dieksekusi.
digitalWrite(led, HIGH);} menunjukkan lED akan hidup.
- else{ menunjukkan jika data yang masuk selain 1 maka kode di dalam else dieksekusi.
digitalWrite(led, LOW);}}} menunjukkan lED akan mati.
Pada program Slave, jika data yang masuk adalah 1 maka LED akan hidup dan jika data yang masuk adalah 2 maka LED akan mati. Ini menunjukkan komunikasi UART bekerja, dimana jika SPDT dihubungkan ke pin B maka LED akan hidup dan jika dihubungkan ke pin A maka LED akan mati.
a. Analisa apa yang akan terjadi jika memprogram
arduino di laptop dengan keadaan Tx dan Rx di pin 0 dan 1 terhubung?
Jawab:
Pada percobaan 1 (UART), ketika memprogram dan mengupload Arduino dengan keadaan Tx dan Rx terhubung maka akan terjadi error saat upload. Hal ini terjadi karena pada Arduino terdapat 2 pin Tx dan Rx, yaitu pada pin 1 dan 0 dan pada USB. Sehingga ketika kita mengupload program, Arduino nya akan bingung memilih Tx dan Rx yang mana. Oleh karena itu, ketika mengupload program untuk komunikasi UART, pin Tx dan Rx nya harus diputus terlebih dahulu.
b. Analisa apa yang akan terjadi jika pin Tx dan Rx diputus?
Jawab:
Pada percobaan 1 (UART), apabila pin Tx dan Rx diputus maka tidak ada komunikasi antara Arduino Master dan Arduino Slave. Tetapi ketika yang diputus adalah pin Rx Arduino Master dan pin Tx Arduino Slave, maka komunikasi UART tetap berjalan. Hal ini dikarenakan Arduino Master mengirim data ke Arduino Slave dan Arduino Slave tidak mengirim data ke Arduino Master. Sehingga pin Tx pada Arduino Master dan pin Rx pada Arduino Slave tidak boleh diputus.
Jawab:
Pada percobaan 1 (UART), ketika memprogram dan mengupload Arduino dengan keadaan Tx dan Rx terhubung maka akan terjadi error saat upload. Hal ini terjadi karena pada Arduino terdapat 2 pin Tx dan Rx, yaitu pada pin 1 dan 0 dan pada USB. Sehingga ketika kita mengupload program, Arduino nya akan bingung memilih Tx dan Rx yang mana. Oleh karena itu, ketika mengupload program untuk komunikasi UART, pin Tx dan Rx nya harus diputus terlebih dahulu.
b. Analisa apa yang akan terjadi jika pin Tx dan Rx diputus?
Jawab:
Pada percobaan 1 (UART), apabila pin Tx dan Rx diputus maka tidak ada komunikasi antara Arduino Master dan Arduino Slave. Tetapi ketika yang diputus adalah pin Rx Arduino Master dan pin Tx Arduino Slave, maka komunikasi UART tetap berjalan. Hal ini dikarenakan Arduino Master mengirim data ke Arduino Slave dan Arduino Slave tidak mengirim data ke Arduino Master. Sehingga pin Tx pada Arduino Master dan pin Rx pada Arduino Slave tidak boleh diputus.
No comments:
Post a Comment