TP 2 Modul 1

 

TP M1 P2 K7



1. Prosedur [Kembali]

Langkah-langkah untuk mensimulasikan rangkaian Sistem Deteksi Jarak pada Parkir Mundur menggunakan platform Wokwi adalah sebagai berikut:

  1. Perancangan Hardware di Wokwi

    • Buka simulator Wokwi dan buat proyek baru menggunakan papan mikrokontroler keluarga STM32 (sesuai spesifikasi NUCLEO).

    • Siapkan komponen-komponen virtual yang dibutuhkan: Infrared Sensor, Buzzer, LED RGB, Resistor (1k ohm), dan Switch.

    • Rangkai seluruh komponen tersebut mengikuti skema jalur pada Gambar 4 (Rangkaian Percobaan 2). Pastikan koneksi pin VCC, GND, serta jalur input/output dari komponen ke pin mikrokontroler terhubung dengan presisi.

  2. Memasukkan Listing Program

    • Buka panel code editor pada antarmuka Wokwi.

    • Salin dan masukkan kode program yang telah dirancang sebelumnya ke dalam tab file main.c dan main.h.

    • Pastikan struktur kode memuat logika kondisi yang diminta: sistem dapat membaca perubahan status (transition state) pada Infrared Sensor. Saat sensor berubah dari status "mendeteksi benda" menjadi "tidak mendeteksi benda", program harus menginstruksikan pin output untuk mematikan LED Merah, menyalakan LED Hijau, dan mematikan sinyal ke Buzzer.

  3. Menjalankan Simulasi

    • Klik tombol Play / Start Simulation pada Wokwi untuk mengompilasi kode dan menjalankan rangkaian.

    • Lakukan pengujian dengan berinteraksi pada komponen Infrared Sensor (mengubah parameter jarak atau deteksi di simulator).

    • Amati respons pada LED RGB dan Buzzer untuk memastikan transisi nyala lampu dan suara sudah sesuai dengan kondisi percobaan yang ditetapkan.

 

2. Hardware dan Diagram Blok [Kembali]

A. Daftar Hardware (Perangkat Keras) 

Perangkat keras yang digunakan pada simulasi sistem deteksi parkir mundur ini beserta fungsinya adalah:

  1. Mikrokontroler STM32 (NUCLEO): Berfungsi sebagai unit pemroses utama (CPU) yang membaca data dari sensor inframerah dan mengeksekusi logika program untuk mengendalikan LED dan Buzzer.


  2. Infrared Sensor (Sensor Inframerah): Berfungsi sebagai perangkat input untuk mendeteksi keberadaan atau jarak objek di belakang kendaraan (simulasi benda). 


  3. LED RGB: Berfungsi sebagai indikator visual (output). Dalam kondisi ini, digunakan warna Merah (indikator awas/ada benda) dan Hijau (indikator aman/tidak ada benda). 


  4. Buzzer: Berfungsi sebagai indikator audio (output) yang memberikan peringatan suara ketika benda terdeteksi, dan mati ketika benda sudah tidak ada. 


  5. Switch: Komponen input tambahan yang bisa digunakan sebagai tombol reset atau pengaktifan sistem. 


  6. Resistor (1k Ohm): Berfungsi sebagai pembatas arus agar komponen seperti LED tidak kelebihan beban dan rusak. 

 

B. Diagram Blok Sistem (Loop Tertutup) Sistem deteksi parkir ini dirancang dengan prinsip closed-loop (loop tertutup) secara perangkat lunak. Mikrokontroler melakukan polling (pembacaan terus-menerus) pada sensor inframerah di dalam kalang while(1). Perubahan status dari sensor langsung menjadi umpan balik (feedback) bagi sistem untuk memperbarui status output.

Berikut adalah representasi diagram bloknya: 


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

A. Rangkaian Simulasi 

Rangkaian simulasi "Sistem Deteksi Jarak pada Parkir Mundur" ini dibangun menggunakan platform Wokwi. Rangkaian berpusat pada papan mikrokontroler STM32 (keluarga NUCLEO) yang dihubungkan dengan perangkat input berupa Infrared Sensor (Sensor Inframerah) dan Switch. Untuk bagian output, mikrokontroler mengendalikan sebuah LED RGB (menggunakan pin warna Merah dan Hijau) serta sebuah Buzzer.


B. Prinsip Kerja Rangkaian 

Sistem ini bekerja berdasarkan pembacaan transisi status atau perubahan kondisi pada sensor inframerah. Berikut adalah urutan prinsip kerjanya dari input ke output:

1. Kondisi Awal (Input Aktif Mendeteksi Benda) 

Pada tahap awal, sistem diasumsikan berada dalam kondisi waspada di mana kendaraan sedang berada terlalu dekat dengan halangan. Dalam kondisi ini, Infrared Sensor (Input) sedang mendeteksi adanya benda. Mikrokontroler membaca status ini dan memberikan instruksi awal pada output: LED Merah menyala dan Buzzer berbunyi (sebagai alarm peringatan).

2. Transisi Input (Perubahan Status Sensor) 

Komponen yang memicu perubahan sistem adalah Infrared Sensor. Ketika kendaraan bergerak menjauh atau halangan disingkirkan, terjadi perubahan tangkapan pada sensor. Infrared Sensor mengalami transisi dan mengirimkan perubahan sinyal logika ke mikrokontroler, yang menandakan statusnya berubah dari "mendeteksi benda" menjadi "tidak mendeteksi benda".

3. Eksekusi Output Akhir (Respons Sistem) 

Mikrokontroler STM32 yang secara terus-menerus (looping) memantau pin input sensor, langsung mengenali perubahan status tersebut. Sebagai respons atas input yang sudah tidak mendeteksi benda, mikrokontroler langsung mengeksekusi tiga tindakan pada pin outputnya:

  • Memutus aliran arus logika ke pin warna merah pada LED RGB, sehingga LED Merah mati.

  • Secara bersamaan, mengalirkan arus logika ke pin warna hijau pada LED RGB, sehingga LED Hijau menyala (sebagai indikator visual bahwa area belakang kendaraan sudah aman).

  • Memutus aliran arus logika ke pin Buzzer, sehingga Buzzer berhenti berbunyi (mematikan peringatan audio).

Sistem akan mempertahankan kondisi (LED Hijau menyala, output lainnya mati) ini selama sensor inframerah tetap tidak mendeteksi adanya benda di sekitarnya.


4. Flowchart dan Listing Program [Kembali]

A. Flowchart Logika


B. Listing Program Bahasa C 

1. File main.h (Deklarasi Library dan Pinout)

  • #include "stm32c0xx_hal.h": Memasukkan library utama HAL (Hardware Abstraction Layer) khusus untuk mikrokontroler STM32 seri C0 yang menangani instruksi perangkat keras.

  • #define BUTTON_REVERSE_Pin GPIO_PIN_0 hingga #define BUZZER_GPIO_Port GPIOB: Bagian ini membuat alias atau nama ganti untuk pin-pin yang digunakan. Tujuannya agar penulisan kode di main.c lebih mudah dibaca manusia (contohnya, daripada menulis GPIOA, GPIO_PIN_1, kita cukup menulis IR_SENSOR_GPIO_Port, IR_SENSOR_Pin).

2. File main.c - Inisialisasi Awal

  • #include "main.h": Menghubungkan file main.c dengan deklarasi pin yang ada di file main.h.

  • void SystemClock_Config(void); & static void MX_GPIO_Init(void);: Deklarasi awal (prototipe) untuk fungsi pengaturan clock dan pin GPIO.

  • int main(void): Fungsi utama di mana program mulai dieksekusi pertama kali.

  • HAL_Init();: Perintah wajib untuk mereset dan menginisialisasi semua peripheral dasar mikrokontroler.

  • SystemClock_Config();: Memanggil fungsi untuk mengatur kecepatan dan sumber clock mikrokontroler.

  • MX_GPIO_Init();: Memanggil fungsi untuk mengatur pin mana saja yang akan menjadi Input dan Output.

3. File main.c - Logika Utama (Loop while(1))

  • while (1): Perulangan tak terbatas agar mikrokontroler terus memantau sensor inframerah selama alat menyala.

  • if (HAL_GPIO_ReadPin(IR_SENSOR_GPIO_Port, IR_SENSOR_Pin) == GPIO_PIN_SET): Program membaca pin Sensor IR. Sesuai asumsi modul, jika hasilnya SET (logika 1 / HIGH), artinya tidak ada benda yang terdeteksi di belakang.

  • Jika kondisi di atas terpenuhi (Area Aman):

    • HAL_GPIO_WritePin(LED_RED_GPIO_Port, LED_RED_Pin, GPIO_PIN_RESET);: Mikrokontroler mengirim logika LOW untuk mematikan LED Merah.

    • HAL_GPIO_WritePin(LED_GREEN_GPIO_Port, LED_GREEN_Pin, GPIO_PIN_SET);: Mikrokontroler mengirim logika HIGH untuk menyalakan LED Hijau (tanda aman).

    • HAL_GPIO_WritePin(BUZZER_GPIO_Port, BUZZER_Pin, GPIO_PIN_RESET);: Mikrokontroler mematikan Buzzer.

  • else: Kondisi sebaliknya, yaitu ketika hasil pembacaan adalah RESET (logika 0 / LOW), yang berarti ada benda yang terdeteksi menutupi sensor.

  • Jika kondisi else terpenuhi (Area Bahaya):

    • HAL_GPIO_WritePin(LED_RED_GPIO_Port, LED_RED_Pin, GPIO_PIN_SET);: Menyalakan LED Merah (tanda bahaya/awas).

    • HAL_GPIO_WritePin(LED_GREEN_GPIO_Port, LED_GREEN_Pin, GPIO_PIN_RESET);: Mematikan LED Hijau.

    • HAL_GPIO_WritePin(BUZZER_GPIO_Port, BUZZER_Pin, GPIO_PIN_SET);: Menyalakan Buzzer sebagai alarm peringatan.

  • HAL_Delay(50);: Memberikan jeda waktu 50 milidetik pada setiap perulangan. Ini sangat penting untuk menstabilkan pembacaan sensor (debouncing) agar lampu atau buzzer tidak berkedip/bunyi secara tidak beraturan (flicker).

4. File main.c - Blok Konfigurasi Sistem (Di Luar Main)

  • void SystemClock_Config(void): Berisi serangkaian kode untuk mengaktifkan osilator internal (HSI) mikrokontroler agar sistem berjalan pada frekuensi dan kestabilan yang tepat.

  • static void MX_GPIO_Init(void):

    • __HAL_RCC_GPIOA_CLK_ENABLE(); & __HAL_RCC_GPIOB_CLK_ENABLE();: Mengaktifkan jalur daya/sinyal (clock) untuk Port A dan Port B.

    • GPIO_InitStruct.Pin = BUTTON_REVERSE_Pin | IR_SENSOR_Pin; (dan baris di bawahnya): Mengatur pin PA0 dan PA1 sebagai pin INPUT dengan resistor internal PULLDOWN.

    • GPIO_InitStruct.Pin = LED_GREEN_Pin | LED_RED_Pin | BUZZER_Pin; (dan baris di bawahnya): Mengatur pin PB0, PB1, dan PB2 sebagai pin OUTPUT_PP (Push-Pull) untuk memberikan arus ke LED dan Buzzer.

  • void Error_Handler(void): Fungsi yang akan menghentikan program dalam loop kosong jika terjadi kesalahan kritis saat konfigurasi clock di awal.

 

5. Video Demo [Kembali]


6. Kondisi [Kembali]

Modul 1 Percobaan 2 Kondisi 7

Buatlah rangkaian seperti pada gambar percobaan 1 dengan kondisi sensor Touch mendeteksi sentuhan pertama kali, maka LED menyala dan Buzzer berbunyi, serta PIR dinonaktifkan.


7. Video Simulasi [Kembali]



8. Download File [Kembali]

Tidak ada komentar:

Posting Komentar

ADAM SIRHAN

  BAHAN PRESENTASI UNTUK ELEKTRONIKA 2024 Oleh : ADAM SIRHAN NIM. 2310952036   Dosen Pengampu : Dr. Darwison, S. T., M. T. NIDN. 0014096406 ...