TP 1 Modul 1
MODUL 1
TUGAS PENDAHULUAN 1: Percobaan 3 Kondisi 3
1. Prosedur [kembali]
1. Tahap Persiapan Komponen dan Perangkat
Langkah pertama adalah memastikan seluruh komponen keras tersedia sesuai spesifikasi, meliputi mikrokontroler STM32F103C8, sensor IR, sensor sentuh, buzzer, LED, serta resistor pendukung. Hubungkan modul ST-LINK ke komputer dan integrasikan pada pin pemrograman STM32 (GND, SWCLK, SWDIO, dan 3.3V) guna mempersiapkan jalur komunikasi data.
2. Perakitan Jalur Rangkaian
Susunlah komponen di atas breadboard secara presisi dengan mengacu pada konfigurasi berikut:
Unit Sensor: Hubungkan pin VCC dan GND pada sensor sentuh serta sensor IR ke sumber tegangan yang sesuai. Pin output touch sensor dikoneksikan ke pin digital PA0, sedangkan pin output sensor IR diarahkan ke pin PA1.
Unit Output: Integrasikan pin PA2 pada STM32 ke resistor 220 Ohm yang terhubung dengan anoda LED. Pasang buzzer secara paralel pada jalur output tersebut. Pastikan seluruh kaki katoda LED dan terminal negatif buzzer terhubung sempurna ke jalur ground (GND) bersama.
3. Konfigurasi Program dan Validasi Sistem
Pengembangan Kode (Firmware): Susun algoritma pada STM32CubeIDE dengan logika: jika salah satu atau kedua sensor mengirimkan sinyal interupsi (deteksi objek), maka sistem diperintahkan untuk mengaktifkan LED dan buzzer secara simultan.
Unggah Data (Flashing): Lakukan proses kompilasi (compile) untuk memastikan tidak ada galat kode, kemudian unggah firmware ke mikrokontroler menggunakan ST-LINK.
Uji Fungsional:
Simulasikan pelanggaran perimeter dengan melewati sensor IR untuk memverifikasi respons alarm.
Operasikan sensor sentuh sebagai pemicu manual untuk memastikan redundansi sistem berjalan baik.
Validasi intensitas cahaya LED dan volume buzzer agar berfungsi sebagai peringatan yang efektif.
2. Hardware dan Diagram Blok [kembali]
3. Rangkaian Simulasi dan Prinsip Kerja [kembali]
Prinsip kerja:
Sistem Alarm Perimeter Pintu ini beroperasi melalui mekanisme kontrol loop tertutup yang memantau keamanan area secara kontinu dengan menetapkan kondisi "Aman" sebagai masukan referensi utama. Mikrokontroler STM32F103C8 berperan sebagai pusat kendali yang memproses data dari unit sensor inframerah (IR) dan sensor sentuh; di mana sensor IR mendeteksi lintasan fisik pada perimeter, sementara sensor sentuh berfungsi sebagai pemicu kontak langsung. Ketika gangguan terdeteksi, elemen umpan balik menghasilkan sinyal deviasi dari referensi aman yang memicu mikrokontroler untuk mengaktifkan respons sistem berupa peringatan suara melalui buzzer serta peringatan visual melalui LED. Seluruh proses ini berlangsung dalam siklus yang responsif, di mana alarm akan terus aktif selama gangguan masih terdeteksi pada plant dan hanya akan berhenti secara otomatis saat sensor mengirimkan umpan balik bahwa kondisi lapangan telah kembali sinkron dengan parameter referensi aman.
4. Flowchart dan Listing Program[kembali]
Dimulai dengan direktif #include "main.h" sistem memanggil pustaka dasar HAL (Hardware Abstraction Layer) yang memuat konfigurasi utama perangkat keras, sementara penggunaan variabel global seperti system_enable dan touch_last berfungsi sebagai penanda status aktif serta mekanisme stabilisasi pembacaan sensor sentuh guna menghindari pemicuan palsu. Selain itu, aspek krusial dalam tahap ini melibatkan fungsi SystemClock_Config yang mengalibrasi frekuensi detak jantung mikrokontroler demi sinkronisasi performa, serta fungsi MX_GPIO_Init yang menetapkan peran spesifik setiap pin agar mampu berkomunikasi secara akurat dengan sensor IR, sensor sentuh, LED, dan buzzer sesuai dengan skema rangkaian yang telah direncanakan.
Bagian ini merupakan algoritma utama (main loop) yang mengeksekusi logika operasional sistem alarm secara kontinu. Mekanisme kendali dimulai dengan pemanfaatan Sensor Sentuh pada pin PA1 yang dikonfigurasi sebagai sakelar toggle; sensor ini mendeteksi transisi status tekan untuk mengaktifkan atau menonaktifkan status system_enable secara global. Saat sistem berada dalam fase aktif (system_enable = 1), mikrokontroler akan melakukan pemindaian data secara real-time dari Sensor IR pada pin PA0. Jika sensor mendeteksi adanya intrusi (status SET), sistem secara otomatis memicu LED dan Buzzer pada pin PB0 dan PB1 sebagai respons peringatan. Apabila tidak ada gangguan yang teridentifikasi atau jika sistem diposisikan pada status nonaktif, program akan memastikan seluruh output peringatan berada dalam kondisi mati (RESET) untuk menjaga efisiensi dan keamanan operasional.
Fungsi SystemClock_Config berperan krusial dalam mengonfigurasi arsitektur pendetakan (clock tree) utama mikrokontroler STM32 dengan memanfaatkan HSI (High-Speed Internal) sebagai sumber osilator primer. Dalam pengaturannya, osilator internal diaktifkan secara langsung tanpa melibatkan sirkuit PLL (Phase-Locked Loop), kemudian frekuensi tersebut didistribusikan ke berbagai bus sistem termasuk SYSCLK, HCLK, PCLK1, dan PCLK2 dengan nilai pembagi (prescaler) satu untuk menjaga integritas kecepatan aslinya. Guna menjamin stabilitas operasional, fungsi ini dilengkapi dengan mekanisme proteksi yang secara otomatis akan memicu Error_Handler apabila terdeteksi kegagalan pada proses inisialisasi osilator maupun sinkronisasi distribusi clock ke bus sistem.
Fungsi MX_GPIO_Init berperan dalam menginisialisasi pin kontrol pada STM32 dengan mengaktifkan sinyal pendetakan (clock) pada port GPIOA, GPIOB, dan GPIOD sebagai langkah awal. Dalam konfigurasinya, pin PA0 dan PA1 yang berfungsi sebagai jalur sensor ditetapkan sebagai input digital yang dilengkapi dengan resistor pull-down internal untuk menjamin stabilitas pembacaan sinyal dari gangguan derau (noise). Sementara itu, pin PB0 dan PB1 dialokasikan sebagai jalur output push-pull berkecepatan rendah guna mengendalikan LED dan buzzer, dengan status awal diposisikan mati (RESET). Sebagai langkah preventif, fungsi ini juga terintegrasi dengan Error_Handler yang akan menghentikan seluruh instruksi program serta menonaktifkan interupsi apabila terdeteksi kegagalan konfigurasi yang fatal pada sistem.
Ini merupakan mekanisme validasi parameter atau debugging yang beroperasi secara kondisional, bergantung pada aktivasi makro USE_FULL_ASSERT dalam konfigurasi proyek. Fungsi assert_failed berperan sebagai pengendali kesalahan yang bertugas menangkap laporan malfungsi parameter dari pustaka HAL (Hardware Abstraction Layer) dengan mengidentifikasi nama berkas serta nomor baris spesifik yang memicu kegagalan tersebut. Meskipun saat ini implementasinya masih berupa kerangka kosong, fungsi ini menyediakan fondasi krusial bagi pengembang untuk menyisipkan logika diagnostik, seperti transmisi pesan galat melalui protokol UART atau aktivasi indikator visual LED, guna mempercepat proses pelacakan bug selama fase pengembangan sistem.
5. Video Demo[kembali]
...
6. Kondisi [kembali]
Percobaan 3 Kondisi 3:
Buatlah rangkaian seperti pada gambar percobaan 3 dengan kondisi ketika Infrared sensor tidak mendeteksi benda dan sensor Touch mendeteksi sentuhan, maka LED akan menyala
7. Video Simulasi [kembali]
8. Download File [kembali]
Komentar
Posting Komentar