Tugas Pendahuluan 1 M1
2. Buat program untuk mikrokontroler STM32 NUCLEO-G474RE di software STM32 CubeIDE.
3. Salin program main.c dan main.h dari stm32cubeide ke wokwi
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada wokwi.
Sistem deteksi jarak pada parkir mundur ini bekerja dengan memanfaatkan dua sinyal input digital yang dibaca oleh mikrokontroler STM32 NUCLEO-G474RE secara terus-menerus dalam sebuah loop. Switch yang terhubung ke pin PA0 berfungsi sebagai tombol aktivasi mode parkir mundur — ketika switch ditekan, sistem mulai memantau infrared sensor pada pin PA1 yang bertugas mendeteksi keberadaan objek di belakang kendaraan. Mikrokontroler membaca kedua sinyal tersebut menggunakan fungsi HAL_GPIO_ReadPin() lalu memproses logikanya untuk menentukan kondisi output, yaitu LED hijau pada PB0 sebagai indikator aman, LED merah pada PB1 sebagai peringatan objek terdeteksi, dan buzzer pada PB2 sebagai peringatan audio. Seluruh pengukuran waktu menggunakan HAL_GetTick() sehingga tidak ada pemblokiran eksekusi program, menjaga loop tetap responsif setiap 10ms.
Kondisi tambahan yang membedakan sistem ini dari rangkaian parkir mundur biasa adalah mekanisme deteksi transisi berbasis waktu yang mengaktifkan mode darurat. Setiap kali IR sensor berubah dari kondisi tidak mendeteksi menjadi mendeteksi, sistem mengukur selisih waktu antara kedua transisi tersebut menggunakan variabel ir_not_detect_time yang dicatat saat sensor pertama kali kehilangan deteksi. Apabila jarak waktu perubahan tersebut kurang dari 500ms — yang mengindikasikan objek muncul secara tiba-tiba atau kendaraan bergerak terlalu cepat mendekati halangan — sistem langsung mengaktifkan emergency_mode dan menonaktifkan alur normal. Dalam mode darurat ini, LED merah dan LED biru berkedip bergantian setiap 100ms secara non-blocking menggunakan teknik timestamp comparison, sementara buzzer berbunyi terus-menerus tanpa henti sebagai peringatan keras, dan kondisi ini hanya dapat direset dengan menekan switch kembali yang terdeteksi sebagai rising edge oleh variabel switch_last.





Komentar
Posting Komentar