1. Pemahaman
A. Jelaskan secara singkat dan komprehensif apa itu pulse width modulation dan
hubungannya dengan duty cycle!
Duty cycle dalam konteks PWM adalah rasio antara waktu sinyal on dengan
total periode siklus sinyal. Jika siklus sinyal PWM memiliki durasi 100 unit,
dan sinyal on aktif selama 75 unit, maka duty cycle-nya adalah 75%. Duty
cycle ini menentukan seberapa lama output sinyal dalam keadaan aktif atau on.
Jadi, duty cycle mempengaruhi seberapa "terang" atau "intens" suatu sinyal
output PWM.
Hubungan antara pulse width modulation dan duty cycle terletak pada
pengaturan lebar pulsa sinyal PWM. Duty cycle yang lebih tinggi akan
menghasilkan sinyal dengan lebar pulsa yang lebih panjang, sementara duty
cycle yang lebih rendah akan menghasilkan sinyal dengan lebar pulsa yang lebih
pendek. Dengan mengubah nilai duty cycle, kita dapat mengatur tingkat
kecerahan atau intensitas output sinyal PWM.
B. Jelaskan secara singkat dan komprehensif apa yang kalian ketahui mengenai data
logging dan kegunaannya!
Data logging merupakan pengumpulan data serta perekaman data dari sensor
pada jangka waktu. Beberapa metode data logging:
1
Mengirim dan menyimpan ke cloud menggunakan Wifi, Bluetooth, Menyimpan
di kartu memori dan lain-lain. Kegunaanya adalah untuk analisis serta
pengarsipan.
2
2. Pembangkitan Sinyal PWM
Rangkai, upload, dan analisis program Arduino yang diberikan di bawah ini! Serta
jawablah pertanyaan yang tertera.
Gambar 1. Rangkaian 1
Hubungkan VCC dan GND pada arduino ke breadboard ‘+’ dan ‘-‘. Lalu
colokkan LED ke breadboard dengan menyambungkan kutub negatif ke GND,
dan positif pada kaki LED diberikan resistor yang akan dihubungkan ke arduino
pada pin 6. Setelah itu colokkan potensiometer ke A0. Lalu pada sisa kaki
potensiometer dihubungkan ke VCC dan GND.
3
B. Putarlah potensiometer sesuai dengan yang diinginkan. Dari rangkaian LED yang
telah dicoba, isi tabel berikut ini!
Nilai
60 86 247 540 890
Analog
Duty
5.49% 8.24% 23.92% 54.51% 87.06%
Cycle
4
*Tidak Menyala/Menyala Redup/Menyala/Menyala Terang
Selain itu, dalam program ini juga terdapat beberapa perintah `Serial.print()`
yang digunakan untuk mencetak nilai `ledValue` dan `analogValue` ke Serial
Monitor agar dapat diamati dan dianalisis dalam pengembangan atau
debugging program.
D. Jelaskan mengapa LED mengalami fading (menyala dari gelap ke terang dan
sebaliknya)! Baris kode ke berapa yang menyebabkan hal tersebut?
LED mengalami fading (menyala dari gelap ke terang dan sebaliknya) karena
program menggunakan teknik Pulse Width Modulation (PWM) untuk
mengontrol kecerahan LED. Dalam program tersebut, baris kode yang
menyebabkan fading pada LED adalah sebagai berikut:
5
yang ditetapkan pada setiap iterasi `loop()` mengontrol durasi atau lebar pulsa
sinyal PWM, yang pada gilirannya mengatur level voltase yang diberikan ke
LED.
Dengan mengubah-ubah nilai `ledValue` setiap kali `loop()` berjalan, kita dapat
menghasilkan sinyal PWM dengan duty cycle yang berbeda-beda pada tiap
iterasinya. Perubahan ini menciptakan efek fading pada LED, di mana LED
secara bertahap menyala dari gelap ke terang saat nilai `ledValue` meningkat,
dan sebaliknya, LED akan secara bertahap memudar saat nilai `ledValue`
berkurang.
E. Jelaskan mengapa LED tidak mengalami flickering padahal sinyal yang diberikan
adalah ON dan OFF!
LED tidak mengalami flickering karena sinyal PWM beroperasi pada frekuensi
yang sangat tinggi, sehingga mata manusia tidak dapat mendeteksinya.
6
3. Data Logging
Rangkai, upload, dan analisis program Arduino yang diberikan di bawah ini! Serta
jawablah pertanyaan yang tertera.
Gambar 2. Rangkaian 2
7
VCC/5V VCC
GND GND
B. Ambil data selama 60 detik. Kemudian, ambil gambar isi dari file LOG.TXT dan
simpan file LOG.TXT ke komputer/laptop Anda. Lampirkan gambar isi file
LOG.TXT.
8
Catatan: Sebelum USB dilepas, eject terlebih dahulu!
1. Inisialisasi:
a. Pada baris 10, modul SD diinisialisasi dengan menggunakan fungsi
`SD.begin(4)`. Angka 4 yang diberikan sebagai argumen merupakan pin SS
(Slave Select) yang digunakan untuk menghubungkan modul SD card dengan
Arduino. Dalam kasus ini, pin 4 digunakan sebagai pin SS.
9
b. Setelah inisialisasi berhasil, pada baris 15, pesan "Initialization done."
akan ditampilkan di serial monitor.
2. Membuka File:
a. Setelah inisialisasi, program melakukan pengecekan apakah file "LOG.txt"
sudah ada di SD card. Ini dilakukan dengan menggunakan fungsi
`SD.exists("LOG.txt")` pada baris 22.
b. Jika file "LOG.txt" belum ada, maka program akan menciptakan file
tersebut pada baris 26 dengan menggunakan fungsi `SD.open("LOG.txt",
FILE_WRITE)`. Fungsi ini akan mengembalikan objek File yang diakses
untuk menulis data ke file.
c. Jika file "LOG.txt" sudah ada, program akan melanjutkan tanpa membuat
file baru.
Dalam komunikasi antara Arduino dan modul microSD card adapter, pin-pin
yang digunakan adalah sebagai berikut:
- Pin SS (Slave Select): Digunakan untuk memilih modul SD card saat
komunikasi SPI. Pada program ini, pin 4 digunakan sebagai pin SS.
- Pin SCK (Serial Clock): Mengirimkan sinyal clock untuk sinkronisasi
komunikasi SPI antara Arduino dan modul SD card. Pada program ini, pin
SCK terhubung ke pin SCK pada modul SD card.
- Pin MOSI (Master Out Slave In): Digunakan untuk mengirimkan data dari
Arduino ke modul SD card. Pada program ini, pin MOSI terhubung ke pin
MOSI pada modul SD card.
- Pin MISO (Master In Slave Out): Digunakan untuk mengirimkan data dari
modul SD card ke Arduino. Pada program ini, pin MISO terhubung ke pin
MISO pada modul SD card.
10
2. Inisialisasi RTC:
- Menginisialisasi modul RTC DS3231.
4. Inisialisasi SD Card:
- Memulai inisialisasi modul SD card.
- Memeriksa apakah file "LOG.txt" sudah ada di SD card.
- Jika file belum ada, membuat file "LOG.txt" dan menuliskan header pada
file tersebut.
3. Penanganan Kesalahan:
- Baris 54-56: Jika terjadi kesalahan saat membuka file "LOG.txt", pesan
kesalahan akan ditampilkan di serial monitor.
4. Delay:
- Baris 58: Delay selama 10.000 milidetik (10 detik) sebelum mengulangi
loop().
1. Inisialisasi:
- Module RTC DS3231 diinisialisasi dengan menggunakan objek rtc yang
menggunakan pin SDA dan SCL pada Arduino untuk komunikasi I2C.
- rtc.begin() digunakan untuk memulai komunikasi I2C dengan modul RTC
DS3231.
11
2. Pengaturan Tanggal, Waktu, dan Hari:
- rtc.setDate() digunakan untuk mengatur tanggal pada RTC DS3231.
- rtc.setTime() digunakan untuk mengatur waktu pada RTC DS3231.
- rtc.setDOW() digunakan untuk mengatur hari pada RTC DS3231.
3. Membaca Data:
- rtc.getDateStr() digunakan untuk membaca tanggal dari RTC DS3231.
- rtc.getTimeStr() digunakan untuk membaca waktu dari RTC DS3231.
- rtc.getTemp() digunakan untuk membaca suhu dari RTC DS3231.
G. Buat grafik dari isi file LOG.TXT dengan menggunakan Microsoft Excel, Google
Sheets, atau aplikasi spreadsheet lainnya dengan delimiter “,” 30 Analisislah hasil
dari grafik yang didapatkan!
Grafik Seharusnya: (hapus gambar dan kata ini saat ingin mengumpulkan)
Grafik yang didapatkan dari 60 detik adalah lurus yang berarti temperatur tidak
ada perubahan sama sekali.
12
4. Kesimpulan
• PWM mengubah lebar pulsa sinyal, di mana amplitudo dan frekuensinya tetap
konstan. Pada praktikum ini diterapkan pada LED yang diberikan sinyal on off
• Data logging merupakan pembacaan data pada sensor yang akan dianalisis, pada
praktikum ini adalah data suhu dan data waktu yang disimpan di SD card.
5. Pengumpulan
File yang dikumpulkan bersamaan dengan borang (.pdf) ini, yaitu file .txt dari micro
SD card, dijadikan dalam satu file .zip dengan menggunakan format penamaan seperti
berikut ini:
KodeAslab_PSB_BP_Modul89_Nama.tipefile
Contoh:
TM_PSB_BP_Modul89_Erling Braut Haaland.pdf
TM_PSB_BP_Modul89_Erling Braut Haaland.txt
TM_PSB_BP_Modul89_Erling Braut Haaland.zip
13