Anda di halaman 1dari 13

BORANG MODUL 8 DAN 9

PEMBANGKITAN SINYAL PWM & DATA LOGGING

Nama Syahriza Malika Yahya Tanggal 16 November 2023


NPM 2106702945 Shift 3
Kelompok 14 Asisten KR

1. Pemahaman

A. Jelaskan secara singkat dan komprehensif apa itu pulse width modulation dan
hubungannya dengan duty cycle!

Pulse Width Modulation (PWM) merupakan teknik modulasi yang


menggunakan sinyal digital untuk membangkitkan sinyal analog. PWM
mengubah lebar pulsa sinyal, di mana amplitudo dan frekuensinya tetap
konstan. Sinyal PWM terdiri dari siklus on dan off, di mana on
menggambarkan keadaan hidup atau sinyal aktif, sedangkan off
menggambarkan keadaan mati atau sinyal non-aktif.

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

Ctrl + klik di sini untuk unduh program Rangkaian 1

A. Jelaskan proses merangkai rangkaian pembangkitan sinyal PWM dan lampirkan


gambar rangkaian yang telah dibuat dan cuplik Serial Monitor!

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!

Tabel 1. Tabel kondisi Buzzer

Nilai
60 86 247 540 890
Analog

Nilai LED 14 21 61 139 222

Duty
5.49% 8.24% 23.92% 54.51% 87.06%
Cycle

Kondisi Menyala Menyala Menyala Menyala


Menyala
LED* Redup redup terang terang

4
*Tidak Menyala/Menyala Redup/Menyala/Menyala Terang

C. Jelaskan fungsi dari analogWrite() secara komprehensif yang terdapat pada


program rangkaian yang telah dibuat!

Fungsi `analogWrite()` dalam program ini digunakan untuk menghasilkan


sinyal Pulse Width Modulation (PWM) pada pin tertentu pada board Arduino.
Fungsi ini memberikan antarmuka sederhana untuk menghasilkan level voltase
yang mirip dengan sinyal analog dengan memvariasikan duty cycle dari sinyal
PWM.

Pada program ini, variabel `analogValue` digunakan untuk menyimpan nilai


analog yang dibaca dari potensiometer yang terhubung ke pin `A0`. Nilai
`ledValue` kemudian dipetakan dari rentang 0-1023 (rentang input analog)
menjadi rentang 0-255 (rentang output analog). Hal ini dilakukan
menggunakan fungsi `map()`.

Fungsi `analogWrite()` kemudian digunakan untuk mengatur nilai PWM pada


pin `ledPin` (yang terhubung ke LED). Nilai `ledValue` digunakan sebagai
parameter untuk mengatur duty cycle dari sinyal PWM. Dengan mengubah
nilai `ledValue`, kita dapat mengatur tingkat kecerahan LED yang terhubung
ke pin tersebut.

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.

Akhirnya, terdapat perintah `delay(1)` yang digunakan untuk memberikan jeda


1 milidetik pada setiap iterasi `loop()` sehingga sinyal PWM dapat diperbarui
dengan periode tertentu.

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:

analogWrite(ledPin, ledValue); (Pada baris 17)

Perintah tersebut mengatur tingkat kecerahan LED dengan mengubah nilai


duty cycle dari sinyal PWM yang dihasilkan oleh pin `ledPin`. Nilai `ledValue`

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

Tabel 2. Pin-pin Rangkaian 2

Arduino UNO MicroSD Card Module


4 CS
13 SCK
11 MOSI
12 MISO
VCC/5V VCC
GND GND
Arduino UNO RTC DS3231
Tidak dihubungkan. 32K
Tidak dihubungkan. SQW
A5 SCL
A4 SDA

7
VCC/5V VCC
GND GND

Ctrl + klik untuk program Rangkaian 2

A. Jelaskan proses merangkai rangkaian data logging dan lampirkan gambar


rangkaian yang telah dibuat dan cuplik Serial Monitor!

Menyiapkan Micro SD card mobile dan RTC DS3231. Cara menghubungkan


Micro SD card mobile yaitu hubungkan pin CS pada pin 4 arduino, SCK pada
pin 13, MOSI pada pin 11, MISO pada pin 12, VCC pada 5v, GND pada GND.
Lalu pada merangkai RTC DS3231 SCL dihubungkan ke A5, SDA pada A4,
VCC dan GND dihubungkan ke arduino.

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!

C. Analisis secara komprehensif bagaimana cara microSD card adapter


berkomunikasi dengan Arduino!

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.

3. Menulis Data ke File:


a. Setelah berhasil membuka file pada baris 29, program akan menulis data
ke file tersebut pada baris 38-39.
b. Pada baris 38, tanggal dan waktu dari modul RTC ditulis ke file
menggunakan fungsi `rtc.getDateStr()` dan `rtc.getTimeStr()` yang
mengembalikan nilai string format tanggal dan waktu.
c. Pada baris 39, suhu dari modul RTC ditulis ke file menggunakan fungsi
`rtc.getTemp()`. Angka 2 yang diberikan sebagai argumen menentukan jumlah
angka desimal yang ingin ditampilkan.
d. Setelah selesai menulis data, file ditutup dengan menggunakan fungsi
`myFile.close()` pada baris 41.

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.

D. Jelaskan apa saja yang dilakukan pada void setup()!

1. Inisialisasi Serial Communication:


- Menginisialisasi komunikasi serial antara Arduino dan komputer dengan
baud rate 9600.

10
2. Inisialisasi RTC:
- Menginisialisasi modul RTC DS3231.

3. Pengaturan Tanggal, Waktu, dan Hari:


- Mengatur tanggal, waktu, dan hari pada modul RTC sesuai dengan
kebutuhan.

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.

E. Jelaskan apa saja yang dilakukan pada void loop()!

1. Menampilkan Data ke Serial Monitor:


- Baris 43: Menampilkan nilai dari variabel buffer1 ke serial monitor.
- Baris 44: Menampilkan suhu yang didapatkan dari modul RTC DS3231 ke
serial monitor.

2. Menulis Data ke File:


- Baris 46-48: Menulis tanggal, waktu, dan suhu dari modul RTC ke file
"LOG.txt" pada SD card.
- Baris 50: Menutup file setelah selesai menulis data.

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

F. Analisis secara komprehensif bagaimana cara RTC DS3231 berkomunikasi dengan


Arduino!

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

Anda mungkin juga menyukai