Modul 2


Modul 2




MODUL II
PWM, ADC, & INTERRUPT



1. Pendahuluan[Kembali]

STM32. ADC digunakan untuk membaca sinyal analog dari sensor, PWM digunakan untuk mengontrol aktuator seperti servo, dan interrupt digunakan untuk merespons kejadian secara cepat tanpa polling terus-menerus. Implementasi dilakukan pada dua sistem, yaitu Heart Rate Indicator dan Jemuran Otomatis


2. Tujuan[Kembali]

 

  • Memahami cara kerja ADC dalam membaca sensor analog
  • Memahami penggunaan PWM untuk kontrol aktuator
  • Memahami penggunaan interrupt pada sistem embedded
  • Mengimplementasikan sistem berbasis sensor secara real-time
  •                                                            

    3. Alat dan Bahan[Kembali]

    Instrumentasi / Alat


      1. Breadboard— Papan prototyping untuk merangkai komponen tanpa solder.
    1. Adaptor — Sumber daya eksternal untuk rangkaian.

    Komponen / Bahan


    1. STM32F103C8 (Blue Pill) — Mikrokontroler berbasis ARM Cortex-M3, beroperasi pada 3.3V dengan 32 pin GPIO dan clock speed 72 MHz.

      Spesifikasi:

      • Microcontroller Core : ARM Cortex-M3
      • Operating Voltage : 3.3V
      • Input Voltage (recommended) : 5V
      • Input Voltage (limit) : 2.0V – 3.6V
      • Digital I/O Pins : 32 pin
      • PWM Digital I/O Pins : 15 channel
      • Analog Input Pins : 10 channel (ADC 12-bit)
      • DC Current per I/O Pin : 25 mA
      • DC Current for 3.3V Pin : 150 mA
      • Flash Memory : 64 KB
      • SRAM : 20 KB
      • Clock Speed : 72 MHz
      • Komunikasi : USART, SPI, I²C, USB, CAN
      • Pemrograman : SWD, JTAG, USART Bootloader

    2. STM32 NUCLEO-G474RE — Development board berbasis ARM Cortex-M4F dengan 51 GPIO pin dan clock speed hingga 170 MHz, dilengkapi ST-LINK onboard.

      Spesifikasi:

      • Microcontroller : STM32G474RE (ARM Cortex-M4F)
      • Operating Voltage : 3.3V
      • Input Voltage (recommended) : 5V via USB atau 7–12V via VIN
      • Input Voltage (limit) : 4.5V – 15V
      • Digital I/O Pins : ±51 GPIO
      • PWM Digital I/O Pins : Hingga 24 channel (termasuk HRTIM)
      • Analog Input Pins : Hingga 24 channel ADC (12-bit / 16-bit dengan oversampling)
      • DC Current per I/O Pin : Maks. 20 mA (disarankan ≤ 8 mA)
      • DC Current for 3.3V Pin : Hingga ±500 mA
      • Flash Memory : 512 KB
      • SRAM : 128 KB (termasuk CCM RAM)
      • Clock Speed : Hingga 170 MHz
      • Onboard Debugger : ST-LINK V3
      • Komunikasi : USART, SPI, I²C, USB, CAN FD
    3. LED — Light Emitting Diode sebagai indikator output visual.

      Spesifikasi (LED 5mm Standar):

      • Warna : Merah / Hijau / Kuning (tergantung jenis)
      • Forward Voltage (Vf) : 1.8V – 2.2V (merah), 2.0V – 3.5V (hijau/biru)
      • Forward Current (If) : 10 mA – 30 mA (tipikal 20 mA)
      • Maximum Current : 30 mA
      • Luminous Intensity : 5 – 500 mcd
      • Viewing Angle : 20° – 60°
      • Reverse Voltage (max) : 5V
      • Operating Temperature : -25°C hingga +85°C
      • Resistor yang dibutuhkan (3.3V supply) : (3.3V – 2.0V) / 0.02A = 65 ohm (gunakan 100 ohm)

        Spesifikasi:

        • Tipe : Common Cathode LED RGB
        • Forward Voltage Merah : 1.8V – 2.2V
        • Forward Voltage Hijau : 2.8V – 3.5V
        • Forward Voltage Biru : 2.8V – 3.5V
        • Forward Current : 20 mA per channel
        • Maximum Current per Channel : 30 mA
        • Luminous Intensity : 2000 – 4000 mcd
        • Viewing Angle : 30°
        • Pin : 4 pin (R, G, B, GND/common cathode)Spesifikasi:
          • Tipe : Tactile Push Button / Toggle Switch
          • Tegangan Operasi : 12V DC (max 50V DC)
          • Arus Maksimum : 50 mA
          • Contact Resistance : < 100 mΩ
          • Insulation Resistance : > 100 MΩ
          • Life Cycle : > 100,000 kali tekan
          • Operating Temperature : -25°C hingga +70°C
          • Bounce Time : 5 – 10 ms (perlu debounce di software)
    4. Buzzer — Komponen output audio sebagai alarm/peringatan.

      Spesifikasi:

      • Tipe : Active Buzzer (osilator internal)
      • Tegangan Operasi : 3.5V – 5.5V DC
      • Tegangan Rated : 5V DC
      • Konsumsi Arus : < 30 mA
      • Frekuensi Suara : 2300 ± 300 Hz
      • Sound Pressure Level (SPL) : ≥ 85 dB (pada 10 cm)
      • Operating Temperature : -20°C hingga +70°C
      • Dimensi : 12mm × 9.5mm
      • Sambungan : 2 pin (+ dan -)

    5. Resistor — Komponen pembatas arus (1k ohm).

      Spesifikasi (Resistor 100 ohm, 1/4 Watt):

      • Nilai Resistansi : 100 Ω (coklat-hitam-coklat)
      • Toleransi : ±5% (gelang emas)
      • Daya Maksimum : 0.25 Watt (1/4 W)
      • Tegangan Maksimum : 250V
      • Suhu Operasi : -55°C hingga +155°C
      • Material : Carbon Film
    6. Sensor Heartbeat 

    Pulse Sensor Features and Specifications

      • Biometric Pulse Rate or Heart Rate detecting sensor
      • Plug and Play type sensor
      • Operating Voltage: +5V or +3.3V
      • Current Consumption: 4mA
      • Inbuilt Amplification and Noise cancellation circuit.
      • Diameter: 0.625”
      • Thickness: 0.125” Thick


    1. Sensor LDR



      Spesifikasi Sensor Cahaya LDR

       

      1. Supply : 3.3 V – 5 V (arduino available)

      2. Output Type: Digital Output (0 and 1) 

      3. Inverse output

      4. Include IC LM393 voltage comparator

      5. Sensitivitasnya dapat diatur 

      6. Dimensi PCB size: 3.2 cm x 1.4 cm

    2. Motor Servo



    3. Push Button


    Spesifikasi Teknis Push Button Switch

    Karakteristik Listrik

      • Rating Tegangan (Voltage): Menunjukkan batas maksimum tegangan yang bisa ditangani, misalnya 12V DC atau 250V AC.

      • Rating Arus (Current): Menunjukkan seberapa besar arus yang bisa dialirkan tanpa merusak kontak, biasanya berkisar antara 1A hingga 5A.

      • Tipe Kontak: Bisa NO (Normally Open), NC (Normally Closed), atau kombinasi keduanya (SPDT / Single Pole Double Throw).

    4. Dasar Teori[Kembali]

     

    4.1 STM32 NUCLEO-G474RE

    STM32 NUCLEO-G474RE adalah papan pengembangan berbasis mikrokontroler STM32G474RET6 yang dikembangkan oleh STMicroelectronics. Board ini mengintegrasikan antarmuka ST-LINK debugger/programmer secara onboard sehingga pengguna dapat langsung melakukan pemrograman dan debugging tanpa perangkat tambahan.



    Spesifikasi utama:

    • Microcontroller: STM32G474RE (ARM Cortex-M4F)
    • Operating Voltage: 3.3V
    • Input Voltage (recommended): 5V via USB atau 7–12V via VIN
    • Digital I/O Pins: ±51 GPIO
    • PWM Digital I/O Pins: Hingga 24 channel
    • Analog Input Pins: Hingga 24 channel ADC (12-bit/16-bit)
    • Flash Memory: 512 KB
    • SRAM: 128 KB
    • Clock Speed: Hingga 170 MHz

    Bagian-bagian pendukung STM32 NUCLEO-G474RE:

    • RAM 128 KB: Digunakan sebagai memori sementara untuk menyimpan variabel, buffer, stack, dan heap selama program berjalan.
    • Flash Internal 512 KB: Bersifat non-volatile, menyimpan program permanen meskipun catu daya dimatikan.
    • Crystal Oscillator: Menggunakan osilator internal HSI (High Speed Internal) sebagai sumber clock utama secara default, tanpa memerlukan kristal eksternal.
    • Regulator Tegangan: Memastikan pasokan tegangan stabil ke mikrokontroler.
    • Pin GPIO: Antarmuka input dan output digital yang fleksibel.

    4.2 STM32F103C8

    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 seperti USART, SWD, dan JTAG.



    Spesifikasi utama:

    • Microcontroller: ARM Cortex-M3
    • Operating Voltage: 3.3V
    • Input Voltage (recommended): 5V
    • Input Voltage (limit): 2–3.6V
    • Digital I/O Pins: 32
    • PWM Digital I/O Pins: 15
    • Analog Input Pins: 10 (resolusi 12-bit ADC)
    • DC Current per I/O Pin: 25 mA
    • Flash Memory: 64 KB
    • SRAM: 20 KB
    • Clock Speed: 72 MHz

    Bagian-bagian pendukung STM32F103C8:

    • RAM 20 KB SRAM on-chip: Memungkinkan mikrokontroler menjalankan berbagai aplikasi serta menyimpan data sementara selama eksekusi program.
    • Flash Internal 64 KB: Digunakan untuk menyimpan firmware dan program pengguna secara permanen tanpa memerlukan media penyimpanan eksternal.
    • Crystal Oscillator Eksternal: Menggunakan kristal 8 MHz yang bekerja bersama PLL untuk meningkatkan frekuensi clock hingga 72 MHz.
    • Regulator Tegangan Internal: Mendukung tegangan operasi 2.0V hingga 3.6V.
    • Pin GPIO (37 pin): Dapat dihubungkan ke berbagai perangkat eksternal seperti sensor, motor, LED, serta mendukung antarmuka UART, SPI, dan I²C.

      4.3 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.4 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 (%).

      rectangular waveform


     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.

     4.5  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.

    4.6 Sensor Heart Beat





    4.7 Sensor LDR


    LDR

    Sensor Cahaya LDR (Light Dependent Resistor) adalah salah satu jenis resistor yang dapat mengalami perubahan resistansinya apabila mengalami perubahan penerimaan cahaya. Modul sensor cahaya bekerja manghasilkan output yang mendeteksi nilai intensitas cahaya. Perangkat ini sangat cocok digunakan untuk project yang berhubungan dengan cahaya seperti nyala mati lampu.

     

    Spesifikasi Sensor Cahaya LDR

     

    1. Supply : 3.3 V – 5 V (arduino available)

    2. Output Type: Digital Output (0 and 1) 

    3. Inverse output

    4. Include IC LM393 voltage comparator

    5. Sensitivitasnya dapat diatur 

    6. Dimensi PCB size: 3.2 cm x 1.4 cm

     

    Modul sensor cahaya ini memudahkan Anda dalam menggunakan sensor LDR (Light Dependent Resistor) untuk mengukur intensitas cahaya. Modul LDR ini memiliki pin output analog dan pin output digital dengan label AO dan DO pada PCB. Nilai resistansi LDR pada pin analog akan meningkat apabila intensitas cahaya meningkat dan menurun ketika intensitas cahaya semakin gelap. Pada pin digital, pada batas tertentu DO akan high atau low, yang dikendalikan sensitivitas nya menggunakan on-board potensiometer.

    • Input Voltage: DC 3.3V - 5V

    • Output: Digital - Sensitivitas bisa diatur, dan analog

    • Ukuran PCB : 33 mm x 15 mm 

     

    LDR atau Light Dependent Resistor merupakan salah satu komponen jenis resistor dengan nilai resistansi yang terus berubah sesuai intensitas cahaya yang mengenai sensor. Semakin banyak cahaya yang mengenai sensor LDR, maka akan semakin menurun nilai resistansinya. Nah, semakin sedikit cahaya yang mengenai sensor (gelap), maka nilai resistansinya akan semakin besar, jadi arus listrik yang mengalir akan terhambat.

     

    Pada umumnya, sensor LDR mempunyai nilai resistansi sebesar 200 KOhm di tengah kegelapan dan akan turun menjadi 500 Ohm saat terkena banyak cahaya. Oleh karena itu, menjadi hal biasa apabila komponen elektronika yang peka cahaya ini sering digunakan untuk lampu alarm, kamar tidur, penerangan jalan dan lain sebagainya.

     

    LDR memiliki peran sebagai sensor cahaya di dalam aneka rangkaian elektronika seperti saklar otomatis berdasarkan cahaya. Jadi jika sensor terkena cahaya, maka arus listrik akan mengalir (ON) dan jika sensor berada di dalam kondisi minim cahaya alias gelap, maka aliran listrik akan terhambat (OFF). LDR sering digunakan untuk sensor lampu kamar tidur, penerangan jalan otomatis, alarm dan lain sebagainya







    Komentar

    Postingan populer dari blog ini

    Tugas Besar