MODUL 2
1. Pendahuluan
[Kembali]
- Asistensi dilakukan 1x
- Praktikum dilakukan 1x
2. Tujuan
[Kembali]
- Memahami cara penggunaan PWM, ADC, dan Interrupt pada
Development Board yang digunakan.
- Memahami cara menggunakan komponen input dan output yang
mengimplementasikan PWM, ADC, dan Interrupt pada Development Board
yang digunakan.
3. Alat dan Bahan
[Kembali]
a) STM32 NUCLEO G474RE

b) STM32F103C8

c) Driver Motor L298
d) PIR Sensor
e) LED
f) Fan DCrt
g) Resistor
h) LDR Sensor
i) Resistor 1k ohm
j) Switch
k) Adaptor
l) Breadboard
m) Sensor Suhu Lm35
4. Dasar Teori
[Kembali]
4.1) ADC
ADC atau Analog to Digital Converter merupakan salah satu perangkat
elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog
oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan
yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk
kode-kode digital.
Pada mikrokontroler STM32, terdapat dua ADC (Analog-to-Digital
Converter) 12-bit yang masing-masing memiliki hingga 16 kanal eksternal. ADC
ini dapat beroperasi dalam mode single-shot atau scan mode. Pada scan mode,
konversi dilakukan secara otomatis pada sekelompok input analog yang
dipilih. Selain itu, ADC ini memiliki fitur tambahan seperti simultaneous sample
and hold, interleaved sample and hold, serta single shunt. ADC juga dapat
dihubungkan dengan DMA untuk meningkatkan efisiensi transfer data.
Mikrokontroler ini dilengkapi dengan fitur analog watchdog yang
memungkinkan pemantauan tegangan hasil konversi dengan akurasi tinggi, serta
dapat menghasilkan interupsi jika tegangan berada di luar ambang batas yang
telah diprogram. Selain itu, ADC dapat disinkronkan dengan timer internal (TIMx dan TIM1) untuk memulai konversi, pemicu injeksi, serta pemicu
DMA, sehingga memungkinkan aplikasi untuk melakukan konversi ADC secara
terkoordinasi dengan timer.
Pada STM32 Nucleo G474RE, terdapat blok ADC (Analog-to-Digital
Converter) yang digunakan untuk mengubah sinyal analog menjadi data digital.
STM32 G474RE memiliki beberapa unit ADC (seperti ADC1, ADC2, ADC3,
dan ADC4) yang memungkinkan proses konversi dilakukan secara paralel untuk
meningkatkan kecepatan akuisisi data. Setiap ADC mendukung resolusi hingga
12-bit, dengan fitur tambahan seperti oversampling untuk meningkatkan akurasi
dan mengurangi noise pada sinyal.
Setiap unit ADC dapat mengakses banyak channel input yang terhubung ke
berbagai pin GPIO, sehingga memungkinkan pembacaan berbagai sensor secara
fleksibel. ADC pada STM32 G474RE juga dilengkapi dengan fitur scan mode
untuk membaca beberapa channel secara berurutan, serta mode continuous
conversion yang memungkinkan pembacaan data secara terus-menerus tanpa
intervensi CPU. Selain itu, terdapat injected channel yang berfungsi sebagai
channel prioritas untuk kebutuhan real-time.
ADC ini juga mendukung berbagai sumber trigger, seperti timer (TIM) atau
sinyal eksternal, sehingga dapat disinkronkan dengan modul lain seperti PWM
untuk aplikasi kontrol tertutup (closed-loop). Proses konversi dilakukan melalui
tahap sampling dan quantization, dengan hasil akhir disimpan pada register data
ADC. Dengan fitur-fitur tersebut, ADC pada STM32 G474RE sangat cocok
digunakan dalam aplikasi seperti pembacaan sensor, monitoring tegangan, serta
sistem kendali berbasis sinyal analog yang membutuhkan kecepatan dan presisi
tinggi.
4.2) PWM
PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan
mengubah lebar pulsa (duty cylce) dengan nilai amplitudo dan frekuensi yang
tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli
yang belum termodulasi.
Duty Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan
perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%).

PWM pada STM32 dihasilkan menggunakan timer internal yang berfungsi
sebagai penghitung waktu dengan berbagai mode operasi. Mikrokontroler ini
memiliki empat timer 16-bit (TIM1–TIM4), yang dapat dikonfigurasi untuk
menghasilkan sinyal dengan frekuensi dan duty cycle tertentu. Timer bekerja
dengan menghitung hingga nilai tertentu
berdasarkan frekuensi clock, lalu mengubah status register untuk menghasilkan
gelombang persegi.
STM32 memiliki 15 pin yang mendukung PWM, beberapa di antaranya
berasal dari timer tingkat lanjut seperti TIM1, yang memiliki fitur tambahan
seperti complementary output. Selain menghasilkan sinyal PWM, timer juga bisa
digunakan untuk mengukur sinyal eksternal (input capture), menghasilkan sinyal
berbasis waktu (output compare), dan membuat satu pulsa berdasarkan trigger (one pulse mode). PWM sering digunakan untuk mengontrol kecepatan motor,
mengatur kecerahan LED, dan berbagai aplikasi berbasis waktu lainnya.
Pada STM32 Nucleo G474RE, PWM dihasilkan melalui blok timer (TIM)
yang terdiri dari beberapa jenis, seperti advanced-control timer (TIM1, TIM8),
general-purpose timer (TIM2–TIM5), dan basic timer. Setiap timer memiliki
beberapa channel yang dapat digunakan untuk menghasilkan sinyal PWM,
sehingga memungkinkan banyak output PWM dikendalikan secara bersamaan
pada berbagai pin GPIO. Timer pada STM32 G474RE umumnya memiliki
resolusi hingga 16-bit atau lebih (tergantung jenis timer), dilengkapi dengan
prescaler untuk pengaturan frekuensi yang presisi, serta register pembanding
(CCR) untuk mengatur duty cycle dari 0–100%.
Selain itu, setiap channel PWM dapat dikonfigurasi secara independen, baik
dalam mode edge-aligned maupun center-aligned, sehingga cocok untuk aplikasi
seperti kontrol motor dan konversi daya. STM32 G474RE juga mendukung fitur
lanjutan seperti complementary output, dead-time insertion, break input, dan
sinkronisasi antar timer, yang sangat penting dalam sistem power electronics dan
inverter. Pengaturan PWM dapat dilakukan secara fleksibel melalui register timer
atau menggunakan library seperti HAL/LL, serta dapat diaktifkan atau dihentikan
secara terpusat, memungkinkan sinkronisasi beberapa sinyal PWM untuk aplikasi
yang lebih kompleks dan presisi tinggi.
4.3) INTERRUPT
Interrupt adalah mekanisme yang memungkinkan suatu instruksi atau
perangkat I/O untuk menghentikan sementara eksekusi normal prosesor agar dapat
diproses lebih dulu seperti memiliki prioritas tertinggi. Misalnya, saat prosesor
menjalankan tugas utama, ia juga dapat terus memantau apakah ada kejadian atau
sinyal dari sensor yang memicu interrupt. Ketika terjadi interrupt eksternal,
prosesor akan menghentikan sementara tugas utamanya untuk menangani
interrupt terlebih dahulu, kemudian melanjutkan eksekusi normal setelah selesai menangani interrupt tersebut. Fungsi yang menangani interrupt disebut Interrupt
Service Routine (ISR), yang dieksekusi secara otomatis setiap kali interrupt
terjadi.
Pada STM32F103C8, semua pin GPIO dapat digunakan sebagai pin
interrupt, berbeda dengan Arduino Uno yang hanya memiliki pin tertentu
(misalnya pin 2 dan 3). Untuk mengaktifkan interrupt di STM32 menggunakan
Arduino
IDE,
digunakan fungsi
attachInterrupt(digitalPinToInterrupt(pin),
ISR,
mode).
Parameter
pin
menentukan pin mana yang digunakan untuk interrupt, ISR adalah fungsi yang
dijalankan saat interrupt terjadi, dan mode menentukan jenis perubahan sinyal
yang memicu interrupt. Mode yang tersedia adalah RISING (dari LOW ke
HIGH), FALLING (dari HIGH ke LOW), dan CHANGE (baik dari LOW ke
HIGH maupun HIGH ke LOW). Saat menggunakan lebih dari satu interrupt
secara bersamaan, terkadang perlu memperhatikan batasan tertentu dalam
pemrograman.
Pada STM32 Nucleo G474RE, sistem interrupt merupakan mekanisme
yang memungkinkan mikrokontroler merespons suatu kejadian (event) secara
langsung tanpa harus terus-menerus melakukan polling. Dengan interrupt, CPU
dapat menghentikan sementara proses utama untuk menjalankan fungsi khusus
yang disebut Interrupt Service Routine (ISR), sehingga meningkatkan efisiensi
dan respons sistem secara real-time.
STM32 G474RE menggunakan NVIC (Nested Vectored Interrupt
Controller) untuk mengatur berbagai sumber interrupt, seperti dari timer (TIM),
ADC, UART, GPIO (external interrupt), dan periferal lainnya. Setiap sumber
interrupt memiliki prioritas tertentu yang dapat diatur, sehingga memungkinkan
penanganan beberapa interrupt secara bersamaan (nested interrupt). Selain itu,
sistem ini mendukung preemption dan subpriority untuk pengelolaan interrupt
yang lebih kompleks.
Interrupt dapat dipicu oleh berbagai kondisi, seperti perubahan logika pada pin GPIO (EXTI), selesainya konversi ADC, overflow pada timer, atau
penerimaan data komunikasi. Ketika interrupt terjadi, program akan lompat ke
ISR yang sesuai, kemudian setelah selesai, eksekusi akan kembali ke program
utama. STM32 G474RE juga menyediakan fitur enable/disable interrupt secara
fleksibel melalui register maupun library seperti HAL.
Dengan adanya interrupt, STM32 G474RE sangat cocok untuk aplikasi
real-time seperti sistem kendali, monitoring sensor, komunikasi data, dan
otomasi, karena mampu merespons kejadian penting dengan cepat tanpa
membebani CPU secara terus-menerus.
4.4) STM32 NUCLEO G474RE
STM32 NUCLEO-G474RE merupakan papan pengembangan (development
board) berbasis mikrokontroler STM32G474RET6 yang dikembangkan oleh
STMicroelectronics. Board ini dirancang untuk memudahkan proses pembelajaran,
pengujian, dan pengembangan aplikasi sistem tertanam (embedded system), baik
untuk pemula maupun tingkat lanjut. STM32 Nucleo-G474RE mengintegrasikan
antarmuka ST-LINK debugger/programmer secara onboard sehingga pengguna dapat
langsung melakukan pemrograman dan debugging tanpa perangkat tambahan.
Adapun spesifikasi dari STM32 NUCLEO-G474RE adalah sebagai berikut:
STM32F103C8 adalah mikrokontroler berbasis ARM Cortex-M3 yang
dikembangkan oleh STMicroelectronics. Mikrokontroler ini sering digunakan dalam pengembangan sistem tertanam karena kinerjanya yang baik, konsumsi
daya yang rendah, dan kompatibilitas dengan berbagai protokol komunikasi.
Pada praktikum ini, kita menggunakan STM32F103C8 yang dapat diprogram
menggunakan berbagai metode, termasuk komunikasi serial (USART), SWD
(Serial Wire Debug), atau JTAG untuk berhubungan dengan komputer maupun
perangkat lain. Adapun spesifikasi dari STM32F4 yang digunakan dalam
praktikum ini adalah sebagai berikut:
LDR merupakan salah satu komponen resistor yang nilai resistansinya akan berubah-ubah sesuai dengan intensitas cahaya yang mengenai sensor.
Grafik Respon Sensor LDR:
4.8) Sensor Suhu Lm35
Sensor suhu LM35 adalah sensor suhu analog yang digunakan untuk mengukur suhu dalam satuan derajat Celcius. Sensor ini menghasilkan tegangan keluaran yang proporsional secara linear terhadap suhu, yaitu sebesar 10 mV per 1°C. Artinya, jika suhu ruangan 25°C, maka output tegangan dari LM35 adalah 250 mV. Salah satu keunggulan utama LM35 adalah akurasi pengukuran yang cukup tinggi serta tidak memerlukan kalibrasi eksternal, karena telah dikalibrasi secara internal oleh pabrik pembuatnya.
Sensor LM35 memiliki bentuk fisik seperti transistor kecil (umumnya dalam kemasan TO-92), dengan tiga pin utama yaitu Vcc (tegangan input), Vout (tegangan keluaran), dan GND (ground). Sensor ini dapat bekerja dalam rentang suhu sekitar -55°C hingga +150°C, dan membutuhkan tegangan kerja antara 4V hingga 30V.
Respon frekuensi sensor suhu LM35
5. Percobaan
[Kembali]
Kembali ke Halaman Atas
Komentar
Posting Komentar