1. Komponen [kembali]
1. Apakah kita dapat mengirim
data sebanyak 9 bit? Jelaskan alasannya!
Jawab :
Jika mengirim data, Master hanya dapat mengirimkan sejumlah byte (masing-masing 8 bit). Saat memuliah proses transmitting dari Master, 7 bit pertama sebagai alamat Slave yang akan dituju (Address frame), 1 bit kemudian sebagai R/W bit untuk memberitahukan ke Slave-slave apakah Master akan menerima atau mengirimkan data. Sedangkan bit ke-9, bit tersebut akan dikeluarkan oleh Slave sebagai tanda bahwa data telah diterima oleh receiver (ACK/NACK). Kemudian, Master akan menulis data 8 bit (Data frame) dan bit-9 oleh Slave sebagai sinyal acknowledge / ACK (berlogika 0) yang dikeluarkan Slave kembali untuk dapat menerima data selanjutnya hingga SDA menerima sinyal Not Acknowladge / NACK (berlogika 1) untuk mengakhirim transfer data.
2. Apa pengaruh potensiometer
terhadap output (LED)?
Jawab :
Penagruhnya yaitu ada pada intensitas cahaya LED, apakah semakin cepat atau semakin lama redupnya (hidup-mati). Berdasarkan program Arduino yang telah dibuat, semakin kecil tahanan terukur pada potensiometer, maka semakin kecil delay yang dihasilkan dan LED pun akan semakin cepat redupnya (hidup-mati). Sedangkan jika semakin besar tahanan terukur pada potensiometer, maka semakin besar delay yang dihasilkan dan LED pun semakin lama redupnya.
3. Jelaskan prinsip kerja I2C
pada rangkaian!
Jawab :
Pada rangkaian terdapat 2 buah
Arduino (Master dan Slave), button, LED, dan ground. Untuk menjalankan
rangkaian maka dibuat program Arduino untuk Master dan Slave. Untuk Master,
dideklarasikan library Wire, variable SLAVE_ADDR 9, int analogPin = 0, dan int
val = 0. Lalu, fungsi void setup() terdapat Wire.begin() dan dieksekusi sekali.
Kemudian, void loop() yang dieksekusi berulang. Di dalamnya terdapat delay 50
ms. Lalu, val = map(analogRead(analogPin), 0, 1023, 255, 1); dimana analoPin
akan dibaca, 0 dan 1023 dari ADC dengan 10 bit, dan 255, 1 dari PWM dengan 8
bit, sehingga diperlukan sintaks map. Lalu, transmisi dimulai dengan data dari
val sebelumnya dan transmisi selesai.
Untuk Slave, dideklarasikan library Wire, variable SLAVE_ADDR 9, int LED = 13, int rd, dan int br. Kemudian fungsi void setup() dimana LED sebagai output, Wire.begin(SLAVE_ADDR), dan proses penerimaan data. Lalu, set baud rate 9600 dan menampilkan "I2C Slave demo". Pada fungsi receiveEvent() pada proses penerimaan data, terdapat delay 50 ms dan br = map (rd, 1, 255, 100, 2000). Lalu LED HIGH (hidup) , delay dari br, LED LOW (mati), dan delay dari br kembali.
Setelah program Arduino untuk
Master dan Slave dibuat, lalu dipasang pada Arduino pada rangkaian. Ketika
rangkaian dijalankan, ketika nilai tahanan pada potensiometer diatur (rd) maka
akan mempengaruhi nilai br dan delay yang menggunakan nilai br. Apabila nilai
tahanannya kecil, maka nilai br juga kecil sehingga delay nya pun semakin
kecil. Dengan begitu, LED akan redup (hidup-mati) lebih cepat. Sedangkan jika
nilai tahanannya besar, maka delay nya pun besar sehingga LED akan redup lebih
lama.
a. 7. Link Download [kembali]
Download Video Praktikum [ Download ]
Download HTML [ Download ]
Tidak ada komentar:
Posting Komentar