Laporan Akhir Percobaan 6
1. Prosedur [kembali]
- 1. Persiapan Alat dan Bahan
STM32F103C8T6
1 buah Infra Red Sensor
2 buah push button
1 buah Buzzer
1 buah LED RGB
4 buah Resistor
Kabel jumper
Aplikasi Proteus 8.17
STM32F103C8T6
1 buah Infra Red Sensor
2 buah push button
1 buah Buzzer
1 buah LED RGB
4 buah Resistor
Kabel jumper
Aplikasi Proteus 8.17
- 2. Perakitan Rangkaian
Inisialisasi Sistem:
Atur semua pin GPIO sesuai fungsinya:
PA0 dan PA1 sebagai input
PB0, PB1, PB10 sebagai output
Kondisi Awal:
Tidak ada objek terdeteksi → IR OUT = HIGH
Push button tidak ditekan → PA1 = HIGH (karena konfigurasi pull-up)
Pengujian Sensor IR:
Letakkan objek di depan sensor IR
Jika objek terdeteksi → IR OUT menjadi LOW
MCU membaca kondisi ini pada PA0
Aktifkan LED merah (PB0 = HIGH)
Aktifkan buzzer (PB10 = HIGH)
Pengujian Push Button:
Tekan tombol
Pin PA1 akan membaca LOW
MCU mendeteksi tombol ditekan
Aktifkan LED biru (PB1 = HIGH)
Aktifkan buzzer (PB10 = HIGH)
Kondisi Gabungan:
Jika keduanya aktif (sensor mendeteksi dan tombol ditekan)
LED merah dan biru bisa dinyalakan bersamaan (tergantung implementasi)
Buzzer tetap aktif
Jika tidak ada input:
Semua LED dan buzzer mati
Inisialisasi Sistem:
Atur semua pin GPIO sesuai fungsinya:
PA0 dan PA1 sebagai input
PB0, PB1, PB10 sebagai output
Kondisi Awal:
Tidak ada objek terdeteksi → IR OUT = HIGH
Push button tidak ditekan → PA1 = HIGH (karena konfigurasi pull-up)
Pengujian Sensor IR:
Letakkan objek di depan sensor IR
Jika objek terdeteksi → IR OUT menjadi LOW
MCU membaca kondisi ini pada PA0
Aktifkan LED merah (PB0 = HIGH)
Aktifkan buzzer (PB10 = HIGH)
Pengujian Push Button:
Tekan tombol
Pin PA1 akan membaca LOW
MCU mendeteksi tombol ditekan
Aktifkan LED biru (PB1 = HIGH)
Aktifkan buzzer (PB10 = HIGH)
Kondisi Gabungan:
Jika keduanya aktif (sensor mendeteksi dan tombol ditekan)
LED merah dan biru bisa dinyalakan bersamaan (tergantung implementasi)
Buzzer tetap aktif
Jika tidak ada input:
Semua LED dan buzzer mati
2. Hardware dan Diagram Blok [kembali]
2.1 Daftar Komponen
1 × Mikrokontroler STM32F103C8T6
1 × Buzzer (aktif atau pasif — rekomendasi: buzzer aktif 3.3V)
1 × Sensor IR Obstacle
2 × Push button (tact switch)
Digunakan sebagai input manual dari pengguna. |
LED RGB (Common Cathode)
Resistor (R1, R2, R3, R4)
Kabel Jumper
3. Rangkaian Simulasi dan Prinsip Kerja [kembali]
3.1 Rangkaian Simulasi
3.2 Prinsip Kerja
Prinsip kerja rangkaian ini adalah sebagai sistem pendeteksi sederhana dengan dua input utama, yaitu sensor inframerah (IR Sensor) dan push button, serta dua output berupa LED RGB dan buzzer. Saat IR sensor mendeteksi adanya objek di depannya, sensor akan memberikan sinyal ke mikrokontroler STM32F103C8. Mikrokontroler kemudian memproses sinyal tersebut dan mengaktifkan LED RGB pada warna merah sekaligus menyalakan buzzer sebagai tanda alarm. Jika push button ditekan, mikrokontroler juga akan menerima sinyal input, lalu mengaktifkan LED RGB pada warna biru dan menyalakan buzzer. Apabila kedua input aktif secara bersamaan, maka LED RGB akan menampilkan kombinasi merah dan biru (ungu), serta buzzer tetap menyala. Dengan demikian, buzzer akan selalu aktif jika salah satu atau kedua input terpicu, sedangkan warna LED RGB menjadi indikator sumber input yang sedang aktif.
Meng-include file main.h yang berisi deklarasi pin (RED_Pin, GREEN_Pin, BUTTON_Pin, dll), fungsi, dan konfigurasi project dari CubeMX.
- Deklarasi fungsi SystemClock_Config() untuk mengatur clock sistem.
- Deklarasi fungsi MX_GPIO_Init() untuk inisialisasi pin GPIO.
- Inisialisasi library HAL (Hardware Abstraction Layer). Ini mengatur SysTick timer, NVIC, dan hal dasar lain.
- Memanggil fungsi konfigurasi clock agar mikrokontroler menggunakan sumber clock yang ditentukan (HSI = internal oscillator 8 MHz).
- Memanggil fungsi inisialisasi GPIO (mengatur pin input/output sesuai kebutuhan).
- Program utama berjalan dalam loop tak terbatas (while(1)).
- Membaca status tombol (BUTTON_Pin) dan sensor IR (IR_Pin) pada port GPIOB.
- Hasil pembacaan berupa GPIO_PIN_RESET (0) atau GPIO_PIN_SET (1).
- Mematikan (reset/low) semua output: LED hijau, LED merah, dan buzzer setiap kali loop dimulai.
- Fungsinya agar hanya kondisi yang aktif ditampilkan sesuai input.
- Jika tombol ditekan (high), maka LED merah dan buzzer dinyalakan.
- Jika sensor IR aktif (high), maka LED hijau dan buzzer dinyalakan.
- Delay 100 ms tiap loop untuk stabilisasi pembacaan input dan mengurangi konsumsi CPU.
- Membuat struktur konfigurasi oscillator dan clock.
- Menggunakan HSI (High Speed Internal) oscillator (8 MHz bawaan STM32).
- Tidak memakai PLL (jadi clock tidak dimultiplikasi).
- Jika konfigurasi oscillator gagal, masuk ke Error_Handler().
- Mengatur semua clock (HCLK, SYSCLK, PCLK1, PCLK2) menggunakan HSI langsung tanpa pembagi.
Mengaktifkan konfigurasi clock. Jika gagal, masuk ke Error_Handler().
- Membuat struktur konfigurasi GPIO.
- Mengaktifkan clock untuk port D, A, dan B.
- Menginisialisasi semua output awal (LED merah, hijau, biru, buzzer) dalam keadaan mati.
- Mengatur pin RED, GREEN, BUZZER pada port A sebagai output push-pull, tanpa pull-up/pull-down, dengan kecepatan rendah.
- Mengatur pin BLUE sebagai output juga.
- Mengatur BUTTON dan IR sebagai input, tanpa pull-up/pull-down.
- Jika terjadi error (misalnya konfigurasi clock gagal), sistem masuk ke infinite loop setelah mematikan interupsi.
- Fungsi debug tambahan. Jika
assert_param
gagal, fungsi ini dipanggil. Biasanya dipakai hanya saat development.
Comments
Post a Comment