Modul 1(General Input Output)
Modul 1
MODUL 1
General Input Output
Modul ini membahas penggunaan General Input dan Output (GPIO) pada mikrokontroler STM32. GPIO merupakan fitur dasar yang memungkinkan mikrokontroler berkomunikasi dengan dunia luar melalui pin-pin digital yang dapat dikonfigurasi sebagai input maupun output. Dalam praktikum ini, digunakan dua platform mikrokontroler yaitu STM32F103C8 (Blue Pill) dan STM32 NUCLEO-G474RE untuk mengimplementasikan dua aplikasi nyata: sistem kontrol lampu lorong dan sistem deteksi jarak pada parkir mundur.
a) Memahami cara penggunaan input dan output digital pada mikrokontroler.
b) Menggunakan komponen input dan output sederhana dengan STM32 NUCLEO-G474RE.
c) Menggunakan komponen input dan output sederhana dengan STM32F103C8.
Instrumentasi / Alat
- 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
- 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
- ST-LINK — Programmer/debugger untuk memprogram mikrokontroler STM32.
- Adaptor — Sumber daya eksternal untuk rangkaian.
Komponen / Bahan
- Touch Sensor — Sensor sentuh kapasitif sebagai input digital.
Spesifikasi:
- IC Utama : TTP223-BA6
- Tegangan Operasi : 2.0V – 5.5V DC
- Konsumsi Arus : 1.5 µA (standby), 3.5 µA (aktif)
- Output : Digital (Active HIGH atau Active LOW, configurable)
- Response Time : < 60 ms (mode cepat), < 220 ms (mode hemat daya)
- Sensing Area : ±5mm dari permukaan pad
- Operating Temperature : -40°C hingga +85°C
- Output Type : Push-pull (CMOS)
- Sensitivitas : Dapat dikalibrasi otomatis
- PIR Sensor — Passive Infrared Sensor untuk mendeteksi gerakan manusia.
Spesifikasi:
- Nama Komponen : PIR Motion Sensor HC-SR501
- Tegangan Operasi : 4.5V – 20V DC
- Konsumsi Daya : < 65 mA (standby < 50 µA)
- Output : Digital (HIGH = 3.3V, LOW = 0V)
- Jarak Deteksi : 3 – 7 meter (adjustable)
- Sudut Deteksi : ±25° (cone angle)
- Waktu Tunda Output (Tx) : 0.3 detik – 5 menit (adjustable)
- Waktu Penguncian (Ti) : 2.5 detik
- Suhu Operasi : -20°C hingga +80°C
- Dimensi : 32mm × 24mm
- Output Logic HIGH : 3.3V
- Output Logic LOW : 0V
- Infrared (IR) Sensor — Sensor inframerah untuk mendeteksi objek dalam jarak dekat.
Spesifikasi:
- Nama Komponen : IR Obstacle Sensor FC-51
- Tegangan Operasi : 3.3V – 5V DC
- Konsumsi Arus : 20 mA – 43 mA
- Output : Digital (Active LOW — LOW saat mendeteksi)
- Jarak Deteksi : 2 cm – 30 cm (adjustable via potensiometer)
- Sudut Deteksi : 35°
- Panjang Gelombang Emitter : 950 nm (inframerah)
- Operating Temperature : -25°C hingga +85°C
- Output Logic : Active LOW (0V = terdeteksi, 3.3V = tidak terdeteksi)
- Potensiometer : Ada, untuk mengatur sensitivitas/jarak
- 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)
- 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 -)
- 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
- Switch — Tombol tekan sebagai input manual.
4.1 General Input Output (GPIO)
Input adalah semua data dan perintah yang dimasukkan ke dalam memori untuk diproses lebih lanjut oleh mikroprosesor. Sebuah perangkat input adalah komponen piranti keras yang memungkinkan pengguna memasukkan data ke dalam mikroprosesor. Output adalah data hasil yang telah diproses, disampaikan kepada pengguna melalui perangkat output.
Pada STM32F103C8T6 dan STM32 NUCLEO-G474RE, pin input/output terdiri dari digital dan analog yang jumlah pin-nya tergantung jenis mikrokontroler yang digunakan. Input digital digunakan untuk mendeteksi perubahan logika biner pada pin tertentu — mikrokontroler menerjemahkan 0V menjadi logika LOW dan 3.3V/5V menjadi logika HIGH. Pembacaan sinyal digital menggunakan sintaks digitalRead(pin); sedangkan untuk menghasilkan output digunakan sintaks digitalWrite(pin, nilai);.
4.2 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.3 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.4 Touch Sensor (TTP223)
Touch sensor kapasitif adalah sensor yang mendeteksi sentuhan manusia berdasarkan perubahan kapasitansi pada permukaan elektroda sensor. Berbeda dengan tombol mekanis yang membutuhkan tekanan fisik, touch sensor kapasitif cukup disentuh ringan atau bahkan didekati untuk memberikan respons.
4.4.1 Prinsip Kerja Kapasitansi
Kapasitor adalah komponen yang menyimpan muatan listrik antara dua pelat konduktor yang dipisahkan oleh bahan dielektrik.
Ketika jari manusia mendekati atau menyentuh elektroda sensor, tubuh manusia yang bersifat konduktif bertindak sebagai pelat kedua kapasitor dengan udara sebagai dielektrik. Ini menyebabkan kapasitansi total pada elektroda bertambah secara signifikan.
4.4.2 IC TTP223-BA6
IC TTP223-BA6 adalah chip kontrol touch kapasitif yang secara terus-menerus mengukur kapasitansi pada elektroda input. IC ini menggunakan teknik pengukuran berbasis osilator RC yang frekuensinya berubah sesuai kapasitansi elektroda. Ketika kapasitansi berubah melampaui threshold yang dikalibrasi, IC menyimpulkan ada sentuhan dan mengubah output.
TTP223 memiliki fitur auto-calibration yang secara otomatis menyesuaikan threshold deteksi setiap beberapa detik. Ini memastikan sensor tetap berfungsi meskipun ada perubahan kondisi lingkungan seperti kelembaban atau suhu.
4.4.3 Konfigurasi Output TTP223
TTP223-BA6 dapat dikonfigurasi melalui pad AHLB dan TOG pada PCB:
Mode Toggle (TOG = 1): Output berubah status (toggle) setiap kali ada sentuhan, cocok untuk fungsi on/off.
Mode Momentary (TOG = 0): Output HIGH hanya selama disentuh, kembali LOW saat dilepas, cocok untuk fungsi tombol biasa.
Active High (AHLB = 0): Output HIGH saat tersentuh. Active Low (AHLB = 1): Output LOW saat tersentuh.
4.5 Infrared (IR) Sensor (FC-51)
Sensor inframerah (IR) adalah sensor yang bekerja berdasarkan prinsip pemantulan cahaya inframerah. Sensor ini terdiri dari dua komponen utama yaitu IR LED (infrared transmitter) yang memancarkan cahaya inframerah dan fotodioda atau fototransistor (infrared receiver) yang mendeteksi pantulan cahaya tersebut.
4.5.1 Prinsip Kerja IR Sensor
IR LED memancarkan cahaya inframerah secara terus-menerus pada panjang gelombang sekitar 950 nm yang tidak terlihat oleh mata manusia. Ketika cahaya inframerah mengenai permukaan objek di depan sensor, sebagian cahaya dipantulkan kembali ke arah sensor. Fotodioda penerima mendeteksi intensitas cahaya pantul tersebut dan mengubahnya menjadi sinyal listrik.
Jika intensitas cahaya pantul yang diterima cukup kuat (ada objek dekat), komparator pada IC LM393 yang terdapat di modul FC-51 membandingkan tegangan fotodioda dengan tegangan referensi dari potensiometer. Jika tegangan fotodioda melampaui referensi, output komparator berubah ke LOW (active low), menandakan objek terdeteksi.
4.5.2 Faktor yang Mempengaruhi Deteksi
Warna dan tekstur permukaan objek sangat mempengaruhi kemampuan deteksi IR sensor. Permukaan berwarna putih atau terang memantulkan hampir seluruh cahaya inframerah sehingga mudah terdeteksi dari jarak jauh. Sebaliknya, permukaan berwarna hitam atau gelap menyerap sebagian besar cahaya inframerah sehingga hanya bisa terdeteksi dari jarak sangat dekat atau bahkan tidak terdeteksi sama sekali.
Cahaya ambient terutama sinar matahari juga dapat mengganggu kerja IR sensor karena sinar matahari mengandung komponen inframerah yang kuat. Penggunaan IR sensor di luar ruangan atau di bawah cahaya matahari langsung dapat menyebabkan false detection.
4.5.3 Potensiometer Sensitivitas
Modul FC-51 dilengkapi potensiometer untuk mengatur threshold komparator. Memutar potensiometer searah jarum jam meningkatkan tegangan referensi sehingga hanya pantulan yang lebih kuat (objek lebih dekat atau permukaan lebih reflektif) yang dapat memicu output. Memutar berlawanan menurunkan threshold sehingga sensor lebih sensitif dan dapat mendeteksi dari jarak lebih jauh.
Komentar
Posting Komentar