a
MODUL 1
TUGAS PENDAHULUAN 1
1. Prosedur [kembali]
1. Persiapan Perangkat Lunak & Firmware
Kompilasi Kode: Pastikan kode program (C/C++) sudah berhasil di-compile menggunakan IDE (seperti STM32CubeIDE atau Arduino IDE) untuk menghasilkan file .hex atau .elf.
Pemuatan Program: Klik dua kali pada komponen STM32F103C8 dalam Proteus. Pada bagian Program File, cari dan pilih file
.hexyang telah disiapkan.Konfigurasi Clock: Atur Crystal Frequency pada pengaturan STM32 ke 8MHz agar pewaktuan (timing) sensor dan delay berjalan akurat.
2. Inisialisasi Sistem
Aktivasi Power: Klik tombol Play (ikon segitiga) di pojok kiri bawah Proteus untuk mengalirkan daya ke seluruh rangkaian.
Cek Tegangan: Pastikan terminal VCC (+5V) dan jalur Ground terhubung dengan benar (indikator titik merah/biru pada jalur kabel di Proteus).
3. Pengujian Sensor Input (Proses Deteksi)
Simulasi Gerak (PIR Sensor):
Tekan tombol Logic State pada input Sensor PIR (ubah dari 0 ke 1). Ini mensimulasikan orang masuk ke lorong.
Verifikasi bahwa sinyal masuk ke Pin PA1.
Simulasi Interaksi (Touch Sensor):
Tekan tombol pada komponen Touch Sensor (terhubung ke Pin PA0).
Gunakan ini untuk menguji fungsi override manual atau aktivasi sistem melalui sentuhan.
4. Verifikasi Output & Feedback Loop
Indikator Visual (LED): Amati LED-RED (D1). Jika sensor terpicu, arus harus mengalir melalui Resistor R2 (220 Ohm) dan menyalakan LED.
Indikator Audio (Buzzer): Amati komponen BUZ1 pada Pin PB1. Buzzer harus aktif sebagai alarm atau penanda adanya aktivitas di lorong.
Logika Closed-Loop (Umpan Balik):
Kembalikan status PIR ke 0 (tidak ada orang).
Perhatikan apakah sistem secara otomatis mematikan LED dan Buzzer setelah jangka waktu tertentu sesuai dengan algoritma kontrol yang ditanamkan.
5. Terminasi
Pemberhentian: Klik tombol Stop (ikon kotak) untuk mengakhiri sesi simulasi.
2. Hardware dan Diagram Blok [kembali]
4. Flowchart dan Listing Program[kembali]
Secara keseluruhan, bagian program dalam while (1) ini berfungsi sebagai inti kendali sistem yang berjalan secara berulang untuk memproses input dari kedua sensor. Pertama, program membaca status digital terbaru dari pin PA0 untuk sensor PIR dan PA1 untuk sensor sentuh. Pada bagian sensor sentuh, program menerapkan logika toggle dengan membandingkan status saat ini dan status sebelumnya; jika terdeteksi sentuhan baru, variabel system_enable akan membalikkan nilainya (dari mati menjadi nyala, atau sebaliknya) disertai bunyi buzzer singkat sebagai konfirmasi serta jeda delay untuk mencegah pembacaan ganda atau bounce.
Sementara itu, untuk sensor PIR, program akan menyalakan LED pada pin PB0 jika terdeteksi adanya gerakan. Agar buzzer tidak berbunyi terus-menerus selama ada orang di depan sensor, digunakan variabel penanda pir_first_trigger sehingga peringatan suara hanya muncul sekali tepat saat gerakan pertama kali terdeteksi. Di akhir setiap putaran loop, program melakukan pengecekan final terhadap variabel system_enable: jika sistem dimatikan secara manual melalui sensor sentuh, maka LED akan dipaksa mati meskipun sensor PIR mendeteksi gerakan, sehingga memberikan kendali penuh kepada pengguna terhadap operasional lampu lorong tersebut.
Fungsi MX_GPIO_Init adalah tahap persiapan awal yang sangat penting untuk menentukan peran setiap pin pada STM32. Pertama, program mengaktifkan jalur clock pada port GPIOA dan GPIOB agar pin-pin tersebut bisa bekerja. Selanjutnya, pin PB0 (LED) dan PB1 (Buzzer) dikonfigurasi sebagai output dengan mode Push-Pull dan kondisi awal mati (low).
Di sisi lain, pin PA0 (PIR) dan PA1 (Sentuh) diatur sebagai input murni tanpa resistor internal (No Pull) untuk membaca sinyal langsung dari sensor. Intinya, bagian ini berfungsi untuk "mendaftarkan" mana pin yang bertugas membaca lingkungan (sensor) dan mana yang bertugas memberikan aksi (lampu/suara).
Fungsi
SystemClock_Config bertanggung jawab untuk mengatur sistem detak jantung (clock) mikrokontroler dengan mengaktifkan osilator internal HSI (High-Speed Internal). Bagian ini memastikan CPU dan seluruh periferal bekerja pada kecepatan frekuensi yang stabil dan sinkron agar eksekusi perintah tidak mengalami malfungsi. Sementara itu, fungsi MX_GPIO_Init bertugas menyiapkan jalur komunikasi fisik dengan mengaktifkan clock pada port GPIOA dan GPIOB. Di sini, pin PA0 dan PA1 dikonfigurasi sebagai input untuk membaca sensor, sedangkan pin PB0 dan PB1 diatur sebagai output untuk mengendalikan LED dan Buzzer dengan kondisi awal mati (reset).5. Video Demo[kembali]
...
6. Kondisi [kembali]
Percobaan 1 Kondisi 2:
7. Video Simulasi [kembali]
8. Download File [kembali]
Tidak ada komentar:
Posting Komentar