MODUL 2 PRAKTIKUM UP & UC
PWM, ADC, INTERRUPT, & MILLIS
a) Asistensi dilakukan 1x
b) Praktikum dilakukan 1x
a) Memahami cara penggunaan PWM, ADC, Interrupt, dan Millis pada Development Board yang digunakan
b) Memahami cara menggunakan komponen input dan output yang mengimplementasikan PWM, ADC, Interrupt, dan Millis pada Development Board yang digunakan
Duty Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%).
Gambar 1. Duty Cycle
Duty Cycle = tON / ttotal
Ton = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (high atau 1)
Toff = Waktu OFF atau Waktu dimana tegangan keluaran berada pada posisi rendah (low atau 0)
Ttotal = Waktu satu siklus atau penjumlahan antara Ton dengan Toff atau disebut juga dengan “periode satu gelombang”
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 Raspberry Pi Pico, terdapat blok PWM yang terdiri dari 8 unit (slice), dan masing-masing slice dapat mengendalikan dua sinyal PWM atau mengukur frekuensi serta duty cycle dari sinyal input. Dengan total 16 output PWM yang dapat dikontrol, semua 30 pin GPIO bisa digunakan untuk PWM. Setiap slice memiliki fitur utama seperti penghitung 16-bit, pembagi clock presisi, dua output independen dengan duty cycle 0–100%, serta mode pengukuran frekuensi dan duty cycle. PWM pada Raspberry Pi Pico juga mendukung pengaturan fase secara presisi serta dapat diaktifkan atau dinonaktifkan secara bersamaan melalui satu register kontrol global, sehingga memungkinkan sinkronisasi beberapa output untuk aplikasi yang lebih kompleks.
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 RP2040, setiap inti prosesor dilengkapi dengan ARM Nested Vectored Interrupt Controller (NVIC) yang memiliki 32 jalur interrupt. Namun, hanya 26 jalur pertama yang digunakan, sedangkan jalur IRQ 26 hingga 31 tidak aktif. Setiap NVIC menerima interrupt yang sama, kecuali untuk GPIO, di mana setiap bank GPIO memiliki satu interrupt per inti. Ini berarti, misalnya, core 0 dapat menerima interrupt dari GPIO 0 di bank 0, sementara core 1 menerima interrupt dari GPIO 1 di bank yang sama secara independen. Jika diperlukan, inti prosesor masih bisa dipaksa masuk ke interrupt handler dengan menulis bit 26 hingga 31 pada register NVIC ISPR.
1.4.5 Raspberry Pi Pico
Raspberry Pi Pico adalah papan rangkaian elektronik yang di dalamnya terdapat komponen utama chip mikrokontroler RP2040, yang dirancang dan diproduksi oleh Raspberry Pi Foundatio. Tidak seperti komputer mini raspberry Pi lainnya yang menjalankan sistem operasi seperti Linux, Pico dirancang untuk tugas-tugas yang lebih sederhana dan langsung (embedded system), seperti membaca sensor, mengontrol perangkat, atau melakukan pengolahan data pada tingkat hardware. Adapun spesifikasi dari Raspberry Pi Pico adalah sebagai berikut:
Komentar
Posting Komentar