Laporan Akhir 1

 

 



1. Prosedur [Kembali]

  1. Buka software proteus lalu rangkai komponen sesuai dengan gambar yang ada di modul
  2. Buka software STM32CubeIDE lalu lakukan konfigurasi pin pada STM untuk menentukan GPIO input dan GPIO output
  3. Masukan Program ke dalam software STM32CubeIDE lalu build untuk mendapatkan file .hex
  4. Masukan file .hex ke dalam file library STM32F103C8 pada proteus
  5. Simulasikan rangkaian

2. Hardware dan Diagram Blok [Kembali]





3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]



Sistem ini bekerja secara terus-menerus di dalam blok while(1) dengan alur operasi yang terstruktur. Pada tahap awal, mikrokontroler STM32 melakukan pengecekan terhadap saklar utama (tombol) yang terhubung ke pin PA0. Apabila tombol dalam kondisi tidak ditekan (LOW), maka sistem dianggap dalam حالت standby atau tidak aktif, sehingga seluruh output seperti LED merah, LED hijau, dan buzzer akan dimatikan untuk menjaga efisiensi energi sekaligus memastikan kondisi aman. Sebaliknya, jika tombol ditekan (HIGH), sistem akan aktif dan melanjutkan proses ke tahap berikutnya.

Setelah sistem aktif, mikrokontroler mulai memantau sinyal dari sensor IR yang terhubung ke pin PA1. Dalam kondisi pertama, ketika sensor mendeteksi adanya objek (bahaya), sinyal yang dikirim adalah LOW. Sebagai respons, mikrokontroler memberikan sinyal HIGH ke pin PB1 dan PB2 sehingga LED merah menyala dan buzzer berbunyi sebagai tanda peringatan, sementara pin PB0 dibuat LOW sehingga LED hijau mati. Pada kondisi kedua, ketika objek tidak lagi terdeteksi (aman), sensor mengirimkan sinyal HIGH ke PA1. Mikrokontroler kemudian mematikan LED merah dan buzzer dengan memberikan sinyal LOW pada PB1 dan PB2, serta menyalakan LED hijau melalui sinyal HIGH pada PB0 sebagai indikator bahwa kondisi sudah aman.

Dengan demikian, tombol berfungsi sebagai pengendali utama untuk mengaktifkan atau menonaktifkan sistem, sedangkan sensor IR berperan dalam menentukan perubahan kondisi antara keadaan peringatan (ditandai LED merah dan buzzer aktif) dan keadaan aman (ditandai LED hijau menyala tanpa bunyi).

4. Flowchart dan Listing Program [Kembali]





#include "main.h" void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); while (1)
GPIO_PinState flame_state; GPIO_PinState float_state; flame_state = HAL_GPIO_ReadPin(FLAME_PORT, FLAME_PIN); float_state = HAL_GPIO_ReadPin(FLOAT_PORT, FLOAT_PIN); /* ===== FLAME SENSOR ===== */ if (flame_state == GPIO_PIN_SET) { /* Api terdeteksi */ HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_SET); } else { HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET); HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_RESET); } /* ===== RELAY / POMPA ===== */ if ((flame_state == GPIO_PIN_SET) || (float_state == GPIO_PIN_SET)) { /* Api ATAU tangki penuh → pompa MATI */ HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_RESET); } else { /* Aman & tangki belum penuh → pompa HIDUP */ HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_SET); } HAL_Delay(100); } } static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); /* INPUT */ GPIO_InitStruct.Pin = FLAME_PIN | FLOAT_PIN; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* OUTPUT */ GPIO_InitStruct.Pin = LED_PIN | BUZZER_PIN | RELAY_PIN; GPIO_InitStruct.Mode = GPI
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* Relay default ON */ HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_SET); } void SystemClock_Config(void) { /* Clock default CubeIDE */ } void Error_Handler(void) { while (1) {} }


5. Video Demoo [Kembali]



6. Kondisi [Kembali]

Program ini merepresentasikan sebuah sistem proteksi kebakaran sekaligus pengendalian pompa yang berbasis pada dua jenis sensor, yaitu flame sensor untuk mendeteksi keberadaan api dan float sensor untuk memantau ketinggian air (misalnya kondisi tangki penuh). Sistem ini juga dilengkapi dengan beberapa output yang berfungsi sebagai indikator dan peringatan, yaitu LED sebagai indikator visual serta buzzer sebagai alarm suara.

7. Video Simulasi [Kembali]




8. Analisa [Kembali]

1. Analisa pengaruh pemilihan GPIO pada masing-masing development board

Pemilihan GPIO (General Purpose Input Output) pada masing-masing development board STM32 sangat berpengaruh terhadap kinerja dan fleksibilitas sistem yang dirancang. Setiap board seperti STM32F103C8 dan STM32 NUCLEO G474RE memiliki jumlah dan karakteristik pin yang berbeda, sehingga menentukan banyaknya perangkat eksternal yang dapat dihubungkan. Selain itu, setiap pin GPIO memiliki fungsi alternatif seperti ADC, PWM, UART, atau SPI, sehingga pemilihan pin yang tidak tepat dapat menyebabkan konflik fungsi. Kemampuan arus pada setiap pin juga menjadi pertimbangan penting karena setiap pin memiliki batas maksimum arus tertentu, sehingga jika tidak diperhatikan dapat merusak komponen. Selain itu, konfigurasi pin seperti input atau output, serta penggunaan pull-up atau pull-down resistor juga mempengaruhi kestabilan sinyal. Dengan demikian, pemilihan GPIO harus dilakukan secara tepat agar sistem dapat bekerja optimal, stabil, dan sesuai dengan kebutuhan aplikasi.

2. Analisa deklarasi pin input/output pada STM32

Deklarasi pin dilakukan pada fungsi MX_GPIO_Init() menggunakan struktur konfigurasi yang menentukan pin, mode (input/output), pull resistor, dan kecepatan. Pin input digunakan untuk membaca sinyal dari sensor, sedangkan pin output digunakan untuk mengendalikan perangkat seperti LED atau buzzer. Proses ini penting agar mikrokontroler dapat mengenali dan mengontrol setiap pin sesuai fungsinya.

3. Analisa proses input dan output pada STM32

STM32 bekerja dengan membaca input menggunakan HAL_GPIO_ReadPin(), kemudian memprosesnya dengan logika program, dan menghasilkan output menggunakan HAL_GPIO_WritePin(). Input berupa logika HIGH atau LOW dari sensor akan menentukan aksi pada output seperti menyalakan LED atau buzzer. Proses ini berlangsung terus-menerus dalam loop sehingga sistem dapat merespons secara real-time.

4. Analisa pengaruh perubahan main.h terhadap main.c

File main.h berisi definisi pin dan port yang digunakan dalam program. Perubahan pada file ini akan langsung mempengaruhi main.c karena semua pin dipanggil melalui definisi tersebut. Hal ini memudahkan pengelolaan program, tetapi jika tidak sesuai dengan rangkaian, dapat menyebabkan sistem tidak bekerja dengan benar.

5. Analisa metode pendeteksian input pada STM32

Metode yang digunakan adalah polling, yaitu membaca input secara terus-menerus, serta deteksi perubahan (edge detection) untuk mendeteksi perubahan kondisi input. Selain itu, digunakan delay untuk mengurangi noise (debouncing). Metode ini sederhana dan cukup efektif, meskipun menggunakan sumber daya CPU lebih besar dibanding interrupt.

6. Analisa kelebihan mikrokontroler dibandingkan rangkaian logika

Mikrokontroler memiliki banyak kelebihan dibandingkan rangkaian logika konvensional. Salah satu keunggulan utamanya adalah fleksibilitas, di mana fungsi sistem dapat diubah hanya dengan memodifikasi program tanpa perlu mengubah rangkaian fisik. Selain itu, mikrokontroler mampu menangani logika yang kompleks seperti perulangan, percabangan, dan pengolahan data secara real-time, yang sulit dicapai dengan rangkaian logika sederhana. Dari segi efisiensi, penggunaan mikrokontroler dapat mengurangi jumlah komponen karena satu chip dapat menggantikan banyak gerbang logika seperti AND, OR, dan NOT. Mikrokontroler juga mendukung berbagai fitur tambahan seperti komunikasi serial, PWM, dan ADC, sehingga lebih multifungsi. Dengan ukuran yang lebih kecil dan konsumsi daya yang relatif rendah, mikrokontroler menjadi solusi yang lebih praktis dan efisien dalam perancangan sistem elektronik modern.

 

 





Komentar

Postingan populer dari blog ini

SUB BAB 2.15 COMPUTER ANALYSIS