MODUL 2
PWM,ADC & INTERRUPT
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.
|
Microcontroller |
STM32G474RE (ARM
Cortex-M4F) |
|
Operating Voltage |
3.3 V |
|
Input Voltage
(recommended) |
5 V via USB (ST-LINK) atau 7–12 V via
VIN |
|
Input Voltage
(limit) |
4.5 – 15 V (VIN
board Nucleo) |
|
Digital I/O Pins |
±51 GPIO pins (tergantung konfigurasi fungsi) |
|
PWM Digital I/O Pins |
Hingga 24 channel PWM (advanced,
general-purpose, dan high-resolution timers) |
|
Analog Input
Pins |
Hingga 24 channel ADC (12-bit / 16-bit
dengan oversampling) |
|
DC Current per I/O
Pin |
Maks. 20 mA per pin
(disarankan ≤ 8
mA) |
|
DC Current for 3.3V
Pin |
Hingga ±500 mA (tergantung regulator & sumber daya) |
|
Flash Memory |
512 KB internal Flash |
|
SRAM |
128 KB SRAM (termasuk CCM RAM) |
|
Clock Speed |
Hingga 170 MHz |
2. STM32F103C8
|
Microcontroller |
ARM Cortex-M3 |
|
Operating Voltage |
3.3 V |
|
Input Voltage
(recommended) |
5 V |
|
Input Voltage
(limit) |
2 – 3.6
V |
|
Digital I/O Pins |
32 |
|
PWM Digital
I/O Pins |
15 |
|
Analog Input
Pins |
10 (dengan
resolusi 12-bit ADC) |
|
DC Current per I/O Pin |
25 mA |
|
DC Current for 3.3V Pin |
150 mA |
|
Flash Memory |
64 KB |
|
SRAM |
20 KB |
|
EEPROM |
Emulasi dalam
Flash |
|
Clock Speed |
72 MHz |
3. Heart Beat Sensor
| Parameter Teknis | Spesifikasi / Nilai |
| Tegangan Operasi (VCC) | 3.3V hingga 5V DC |
| Konsumsi Arus | ~4 mA |
| Sinyal Output | Analog (Berfluktuasi sesuai detak jantung) |
| Jenis Sensor | Optik (Photoplethysmography / PPG) |
| Sumber Cahaya (LED) | Hijau (Panjang gelombang ~515 nm) |
| Komponen Utama | LED hijau, Photodetector (misal APDS-9008), Op-Amp |
| Dimensi (Diameter) | ~16 mm (0.625 inci) |
| Sirkuit Tambahan bawaan | Sirkuit Amplifikasi (Gain ~330) & Low Pass Filter |
4. Button Latch
| Parameter Teknis | Spesifikasi / Nilai |
| Mekanisme Kerja | Self-Locking / Alternate Action (Ditekan mengunci, ditekan lagi lepas) |
| Rating Tegangan (Maks) | 12V - 24V DC (Tipe Mini) Hingga 250V AC (Tipe Panel Mount) |
| Rating Arus (Maks) | 0.1A - 0.5A (Tipe Mini) 2A - 5A (Tipe Panel Mount) |
| Resistansi Kontak | Biasanya < 50 mΩ (Sangat kecil, arus mengalir lancar) |
| Resistansi Isolasi | > 100 MΩ (Aman dari kebocoran arus) |
| Siklus Hidup (Mekanikal) | 100.000 hingga 500.000 kali tekanan |
| Suhu Operasi | -25°C hingga +85°C |
| Parameter Teknis | Spesifikasi / Nilai |
| Arus Operasi Normal ($I_f$) | 10 mA – 20 mA (Sangat disarankan beroperasi di ~15mA) |
| Arus Puncak Maksimal | ~30 mA (Lebih dari ini LED bisa terbakar/putus) |
| Tegangan Maju ($V_f$) - Merah / Kuning | 1.8V – 2.2V DC |
| Tegangan Maju ($V_f$) - Hijau / Biru / Putih | 3.0V – 3.4V DC |
| Tegangan Balik Maksimum ($V_r$) | ~5V DC (Batas aman jika polaritas terbalik) |
| Sudut Pandang Cahaya (Viewing Angle) | 15° hingga 30° (Tipe clear/transparent) ~60° (Tipe diffused/doff) |
| Identifikasi Polaritas (Kaki) | Kaki panjang = Anoda (+), Kaki pendek / sisi rata = Katoda (-) |
6. Buzzer
| Parameter Teknis | Spesifikasi / Nilai |
| Tegangan Operasi (VCC) | 4.0V hingga 7.0V DC (Optimal di 5V DC) |
| Konsumsi Arus (Maksimal) | ~30 mA (pada tegangan 5V) |
| Frekuensi Resonansi | $2300 \text{ Hz} \pm 300 \text{ Hz}$ (Menghasilkan nada statis yang nyaring) |
| Tingkat Kekerasan Suara (SPL) | $\ge 85 \text{ dB}$ (Diukur pada jarak 10 cm dengan input 5V) |
| Jenis Sinyal Input | Sinyal Digital DC (Kondisi HIGH = Bunyi, LOW = Mati) |
| Suhu Operasi | -20°C hingga +70°C |
| Dimensi Standar (Diameter x Tinggi) | ~12 mm x 9.5 mm |
| Jarak Antar Pin (Pitch) | 7.6 mm (Cocok untuk standar breadboard atau perfboard) |
| Identifikasi Polaritas | Ada tanda (+) di bagian atas stiker/bodi, dan pin (+) lebih panjang |
| Parameter Teknis | Spesifikasi / Nilai |
| Tegangan Operasi (VCC) | 3.3V hingga 5V DC |
| Konsumsi Arus | ~15 mA |
| Komponen Utama Sensor | Photoresistor (LDR) berdiameter ~5 mm |
| IC Komparator bawaan | LM393 (Untuk mengubah sinyal analog menjadi digital murni) |
| Sinyal Output | AO (Analog Output) dan DO (Digital Output) |
| Pengatur Sensitivitas | Trimpot / Potensiometer (Untuk mengatur batas ukur DO) |
| Indikator Bawaan | 1x LED Indikator Power (Merah/Hijau) 1x LED Indikator DO (Menyala saat cahaya melebihi threshold) |
| Dimensi Modul | ~32 mm x 14 mm |
| Lubang Pemasangan (Mounting) | ~3 mm (Untuk baut/standoff) |
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.
B. 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 (%).
C. 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.






0 comments:
Posting Komentar