MODUL 1
TUGAS PENDAHULUAN & LAPORAN AKHIR 2
1. Prosedur [kembali]
1. Persiapan Perangkat dan Koneksi
Pastikan Catu Daya Terhubung: Hubungkan adaptor ke papan Nucleo untuk memastikan seluruh komponen (Sensor IR, LED RGB, dan Buzzer) mendapatkan tegangan yang stabil.
Verifikasi Rangkaian: Periksa kembali apakah kabel jumper sudah terpasang sesuai diagram:
Input: Sensor Infrared dan Switch sebagai trigger/sensor utama.
Output: LED RGB (indikator visual) dan Buzzer (indikator suara) yang terhubung ke pin PWM atau GPIO.
Inisialisasi Software: Buka aplikasi simulasi (seperti Proteus atau simulator online yang digunakan pada gambar) dan pastikan firmware atau kode program sudah di-upload ke mikrokontroler Nucleo.
2. Tahap Pengujian Awal (Power On)
Tekan tombol Run/Play pada simulator.
Perhatikan kondisi awal (idle). Biasanya, jika tidak ada rintangan yang terdeteksi, LED akan berwarna hijau atau mati, dan Buzzer tidak berbunyi.
Gunakan Switch (jika berfungsi sebagai saklar sistem) untuk mengaktifkan mode parkir mundur.
3. Simulasi Deteksi Objek (Input Sensor IR)
Karena sensor IR pada simulator biasanya menggunakan parameter jarak atau logika low/high, lakukan langkah berikut:
Dekatkan Objek Simulasi: Ubah nilai input pada sensor Infrared untuk mensimulasikan adanya benda di belakang kendaraan.
Amati Respon Bertahap:
Jarak Aman: LED menyala hijau, Buzzer mati.
Jarak Peringatan: LED berubah menjadi kuning/biru, Buzzer mulai berbunyi perlahan (intermittent).
Jarak Bahaya: LED menyala merah, Buzzer berbunyi terus-menerus (continuous beep).
4. Validasi Output
Cek apakah Resistor 1k ohm berfungsi melindungi LED sehingga tidak terjadi overcurrent dalam simulasi.
Pastikan Buzzer merespon sinyal dari pin Nucleo dengan tepat sesuai dengan perubahan logika pada sensor IR.
5. Pengakhiran
Tekan Switch kembali untuk mematikan sistem atau hentikan simulasi dengan menekan tombol Stop.
2. Hardware dan Diagram Blok [kembali]
3. Rangkaian Simulasi dan Prinsip Kerja [kembali]
Prinsip kerja sistem deteksi jarak parkir ini bekerja dalam sebuah siklus loop tertutup yang dimulai ketika Switch diaktifkan ke posisi ON untuk mensimulasikan sistem yang aktif saat mobil mulai mundur. Sensor Infrared bertindak sebagai unit penginderaan yang secara kontinu memancarkan sinyal untuk mengukur jarak antara kendaraan dengan objek di belakangnya. Data jarak fisik tersebut kemudian dikirimkan ke Mikrokontroler STM32 Nucleo-G474RE untuk diproses berdasarkan nilai ambang batas (Reference) yang telah ditentukan sebelumnya.
Di dalam mikrokontroler, algoritma kontrol membandingkan data jarak real-time dari sensor dengan referensi jarak aman; jika objek terdeteksi masuk ke zona bahaya, mikrokontroler akan segera memicu Output System. Respon ini berupa peringatan visual melalui LED RGB yang berubah warna serta peringatan suara melalui Buzzer yang frekuensinya meningkat seiring semakin dekatnya rintangan. Karena sistem ini bersifat closed-loop, status jarak yang terukur terus-menerus dikirimkan kembali sebagai Feedback ke kontroler, sehingga indikator LED dan suara dapat menyesuaikan secara dinamis dan akurat terhadap setiap pergerakan mobil hingga jarak aman kembali tercapai.
4. Flowchart dan Listing Program[kembali]
berisi library dari program. HAL_Init(), yang bertugas mengatur abstraksi perangkat keras, menginisialisasi instruksi cache, dan mengatur prioritas interupsi sistem. Selanjutnya, fungsi SystemClock_Config() dipanggil untuk mengonfigurasi sumber detak (clock) sistem, seperti menentukan kecepatan prosesor dan mengatur jalur sinyal internal agar periferal dapat bekerja pada frekuensi yang tepat. Terakhir, fungsi MX_GPIO_Init() dijalankan untuk menentukan peran pin-pin fisik pada mikrokontroler, baik sebagai input maupun output, sehingga perangkat dapat berinteraksi dengan komponen eksternal sesuai dengan konfigurasi yang telah ditentukan.Kondisi Pertama: Jika pin
PA0dalam keadaanRESET(biasanya ditekan), maka semua output pada pinPB0,PB1, danPB2akan dimatikan (RESET).Kondisi Kedua: Jika
PA0tidak aktif tetapi pinPA1dalam keadaanRESET, program hanya akan menyalakan pinPB0(SET) dan mematikan sisanya.Kondisi Ketiga: Jika kedua input (
PA0danPA1) tidak memenuhi syarat di atas, program secara otomatis akan mematikanPB0dan menyalakan pinPB1sertaPB2.
Di akhir setiap siklus, terdapat HAL_Delay(50) untuk memberikan jeda waktu sebesar 50 milidetik guna menjaga stabilitas pembacaan input (mencegah bouncing) sebelum loop diulang kembali.
Konfigurasi Osilator: Pertama, program mengaktifkan osilator HSI melalui struktur
RCC_OscInitTypeDef. Jika osilator gagal menyala, sistem akan masuk ke fungsiError_Handler()untuk mencegah kegagalan lebih lanjut.Konfigurasi Jalur Bus: Setelah sumber detak siap, program mendistribusikan frekuensi tersebut ke berbagai bagian prosesor melalui struktur
RCC_ClkInitTypeDef. Program mengatur SYSCLK (detak sistem), HCLK (bus AHB), dan PCLK1 (bus APB1) dengan pembagi (divider) bernilai 1, yang berarti komponen-komponen tersebut berjalan langsung menggunakan frekuensi penuh dari HSI tanpa dikurangi kecepatannya.
Terakhir, fungsi HAL_RCC_ClockConfig menetapkan Flash Latency ke level 0, yang menandakan bahwa memori flash dapat diakses secara instan tanpa jeda karena frekuensi kerja yang digunakan masih dalam batas rendah/standar.
- Aktivasi Clock: Program terlebih dahulu mengaktifkan sinyal detak (clock) untuk GPIOA dan GPIOB. Tanpa langkah ini, periferal GPIO tidak akan merespons perintah apa pun.
- Pengaturan Input (Port A): Pin PA0 dan PA1 dikonfigurasi sebagai Input dengan fitur Pull-down internal. Ini memastikan bahwa jika tidak ada sinyal yang masuk, status pin akan tetap stabil di logika rendah (0 atau Low), sehingga mencegah pembacaan data yang mengambang (floating).
- Pengaturan Output (Port B): Pin PB0, PB1, dan PB2 dikonfigurasi sebagai Output Push-Pull dengan kecepatan rendah (Low Frequency). Mode ini memungkinkan pin untuk menyuplai atau menarik arus listrik, yang biasanya digunakan untuk menyalakan LED atau menggerakkan beban digital lainnya.
Gemini berkata
Fungsi Error_Handler ini berfungsi sebagai mekanisme pengamanan terakhir ketika sistem mendeteksi kegagalan kritis yang tidak dapat dipulihkan selama proses inisialisasi atau eksekusi program. Begitu fungsi ini dipanggil, perintah __disable_irq() akan segera menghentikan semua interupsi global untuk memastikan tidak ada tugas latar belakang yang mengganggu proses penanganan kesalahan. Setelah itu, mikrokontroler akan terjebak dalam while(1) (loop tak terbatas), yang secara efektif "membekukan" sistem agar pengembang dapat melakukan proses debugging guna mencari penyebab kegagalan tersebut sebelum melakukan reset manual.
5. Video Demo[kembali]
...
6. Kondisi [kembali]
Percobaan 2 kondisi 2:
7. Video Simulasi [kembali]
8. Download File [kembali]