m2 - PWM, ADC, & Interrupt
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]
4. Dasar Teori [kembali]
A. 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. 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:
Gambar . STM32F103C8
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.
E. 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.
F. Komponen lainnya
Resistor
Jenis Resistor yang digunakan disini adalah Fixed
Resistor, dimana merupakan resistor dengan nilai tetap terdiri dari film
tipis karbon yang diendapkan subtrat isolator kemudian dipotong berbentuk
spiral. Keuntungan jenis fixed resistor ini dapat menghasilkan resistor dengan
toleransi yang lebih rendah.
Cara menghitung nilai resistor:
Tabel warna
Contoh :
Gelang ke 1 : Coklat = 1
Gelang ke 2 : Hitam = 0
Gelang ke 3 : Hijau = 5 nol dibelakang angka
gelang ke-2; atau kalikan 105
Gelang ke 4 : Perak = Toleransi 10%
Maka nilai resistor tersebut adalah 10 * 10^5 = 1.000.000 Ohm atau 1 MOhm dengan toleransi 10%.
Relay
Relay adalah Saklar (Switch) yang dioperasikan secara
listrik dan merupakan komponen Electromechanical (Elektromekanikal) yang
terdiri dari 2 bagian utama yakni Elektromagnet (Coil) dan Mekanikal
(seperangkat Kontak Saklar/Switch). Relay menggunakan Prinsip Elektromagnetik
untuk menggerakkan Kontak Saklar sehingga dengan arus listrik yang kecil (low
power) dapat menghantarkan listrik yang bertegangan lebih tinggi. Sebagai
contoh, dengan Relay yang menggunakan Elektromagnet 5V dan 50 mA mampu
menggerakan Armature Relay (yang berfungsi sebagai saklarnya) untuk
menghantarkan listrik 220V 2A.
Ada besi atau yang disebut dengan nama inti besi dililit
oleh sebuah kumparan yang berfungsi sebagai pengendali. Sehingga kumparan
kumparan yang diberikan arus listrik maka akan menghasilkan gaya
elektromagnet. Gaya tersebut selanjutnya akan menarik angker untuk pindah
dari biasanya tutup ke buka normal. Dengan demikian saklar menjadi pada
posisi baru yang biasanya terbuka yang dapat menghantarkan arus listrik.
Ketika armature sudah tidak dialiri arus listrik lagi maka ia akan kembali pada
posisi awal, yaitu normal close.
Fitur:
1. Tegangan pemicu (tegangan kumparan) 5V
2. Arus pemicu 70mA
3. Beban maksimum AC 10A @ 250 / 125V
4. Maksimum baban DC 10A @ 30 / 28V
LED
Light Emiting Diode (LED) adalah komponen yang dapat memancarkan cahaya.LED terbuat dari bahan semi konduktor yang merupakan keluarga dioda.
Spesifikasi :
Klasifikasi tegangan LED menurut warna yang dihasilkan
Buzzer
Buzzer listrik adalah sebuah komponen elektronika yang dapat
mengubah sinyal listrik menjadi getaran suara.
Simbol:
Buzzer dapat bekerja dengan baik dalam menghasilkan
frekuensi kisaran 1-5 KHz hingga 100 KHz untuk aplikasi ultrasound. Tegangan
operasional buzzer yang umumnya berkisar 3-12 V.
Cara Kerja Buzzer
Tegangabn Listrik yang mengalir ke buzzer akan menyebabkan
gerakan mekanis, gerakan tersebut akan diubah menjadi suara atau bunyi yang
dapat didengar oleh manusia.
Push Button
Push button switch (saklar tombol tekan) adalah perangkat / saklarsederhana yang berfungsi untuk menghubungkan atau memutuskan aliran arus listrik dengan sistem kerja tekan unlock (tidak mengunci). Sistem kerja unlock disini berarti saklar akan bekerja sebagai device penghubung atau pemutus aliran arus listrik saat tombol ditekan, dan saat tombol tidak ditekan (dilepas), maka saklar akan kembali pada kondisi normal. Karena sistem kerjanya yang unlock dan langsung berhubungan dengan operator, push button switch menjadi device paling utama yang biasa digunakan untuk memulai dan mengakhiri kerja mesin di industri. Secanggih apapun sebuah mesin bisa dipastikan sistem kerjanya tidak terlepas dari keberadaan sebuah saklar seperti push button switch atau perangkat lain yang sejenis yang bekerja mengatur pengkondisian On dan Off.
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
LDR Sensor
Komentar
Posting Komentar