LA 1




a. Prosedur[Kembali]

  • Siapkan seluruh komponen yang dibutuhkan seperti STM32F103C8 (Bluepill), ST-LINK, IR transmitter, IR receiver, touch sensor, buzzer, LED, resistor 220Ω, serta kabel jumper.
  • Hubungkan pin VCC dan GND dari semua sensor (IR transmitter, IR receiver, dan touch sensor) ke sumber tegangan dan ground pada board STM32.
  • Sambungkan output dari IR receiver ke salah satu pin input digital pada STM32, yang berfungsi untuk membaca apakah sinar inframerah terputus atau tidak.
  • Hubungkan touch sensor ke pin input digital STM32 sebagai saklar untuk mengaktifkan atau menonaktifkan sistem.
  • Pasang LED dengan menambahkan resistor 220Ω secara seri, kemudian hubungkan ke salah satu pin output STM32 dan ke ground.
  • Sambungkan buzzer ke pin output STM32 dan ground sebagai indikator suara.
  • Pastikan semua koneksi sudah sesuai, tidak ada kabel yang longgar atau terbalik.
  • Hubungkan board STM32 ke komputer menggunakan ST-LINK, lalu lakukan pemrograman sesuai dengan flowchart yang telah dibuat.
  • Setelah program berhasil di-upload, lakukan pengujian dengan mencoba mengaktifkan touch sensor dan memutus sinyal IR untuk memastikan sistem bekerja dengan baik.
  • b. Hardware dan Diagram Blok[Kembali]

    HARDWARE


        1. STM32F103C8

    Microcontroller

    ARM Cortex-M3

    Operating Voltage

    3.3 V

    Input Voltage (recommended)

    V

    Input Voltage (limit)

    2  3.6 V

    Digital I/O Pins

    32

    PWM Digital I/O Pins

    15

    Analog Input Pins

    10 (dengan resolusi 12-bit ADC)

    DC Current per I/O Pin

    25 mA

    DC Current for 3.3V Pin

    150 mA

    Flash Memory

    64 KB

    SRAM

    20 KB

    EEPROM

    Emulasi dalam Flash

    Clock Speed

    72 MHz


        2. Touch Sensor

        SPESIFIKASI :

    • Konsumsi daya yang rendah
    • Bisa menerima tegangan dari 2 ~ 5.5V DC
    • Dapat menggantikan fungsi saklar tradisional
    • Dilengkapi 4 lobang baut untuk memudahkan pemasangan
    • Tegangan kerja : 2v s/d 5.5v (optimal 3V)
    • Output high VOH : 0.8 VCC (typical)
    • Output low VOL : 0.3 VCC (max)
    • Arus Output Pin Sink (@ VCC 3V, VOL 0.6V) : 8 mA
    • Arus Output pin pull-up (@ VCC=3V, VOH=2.4V) : 4 mA
    • Waktu respon (low power mode): max 220 ms
    • Waktu respon (touch mode): max 60 ms
    • Ukuran: 24 mm x 24 mm x 7.2 mm

        4. PIR Sensor

        5. LED



        6. Buzzer

        7. Resistor


             DIAGRAM BLOK  






        
                                                                                                                                                               

    c. Rangkaian Simulasi dan Prinsip Kerja[Kembali]









    Prinsip Kerja

    Sistem alarm perimeter pintu ini bekerja dengan memanfaatkan kombinasi sensor sentuh (touch sensor) dan sensor inframerah (IR). Pada awalnya, mikrokontroler akan melakukan inisialisasi terhadap semua komponen yang digunakan, terutama IR sensor dan touch sensor. Touch sensor berfungsi sebagai saklar utama untuk mengaktifkan atau menonaktifkan sistem keamanan.

    Ketika touch sensor dalam kondisi aktif (ON), sistem akan mulai memantau kondisi dari sensor inframerah. IR transmitter akan memancarkan sinar inframerah yang diterima oleh IR receiver. Selama sinar tersebut tidak terhalang, sistem menganggap kondisi aman sehingga LED dan buzzer tetap dalam keadaan mati.

    Namun, ketika sinar inframerah terputus (misalnya karena pintu dibuka atau ada objek yang menghalangi), maka IR receiver akan mendeteksi perubahan tersebut dan mengirimkan sinyal ke mikrokontroler. Mikrokontroler kemudian akan mengaktifkan LED dan buzzer sebagai tanda adanya gangguan atau penyusup.

    Sebaliknya, jika touch sensor dalam kondisi OFF, maka sistem tidak akan melakukan pemantauan, sehingga LED dan buzzer tetap dalam keadaan mati meskipun terjadi gangguan pada sensor inframerah. Dengan demikian, sistem ini memungkinkan pengguna untuk mengontrol kapan alarm diaktifkan dan memberikan peringatan secara otomatis ketika terjadi pelanggaran pada area yang dipantau.


    d. Flowchart dan Listing Program[Kembali]

    FLOWCHART
     






    LISTING PROGRAM 

    #include "main.h" uint8_t system_enable = 1; uint8_t touch_last = 0; void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); while (1) { uint8_t touch_now = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1); if (touch_now == GPIO_PIN_SET && touch_last == GPIO_PIN_RESET) { system_enable = !system_enable; HAL_Delay(200); } touch_last = touch_now; if (system_enable) { if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_RESET) { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); } else { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); } } else { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); } } } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) { Error_Handler(); } } static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_RESET); GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); } void Error_Handler(void) { __disable_irq(); while (1) { } } #ifdef USE_FULL_ASSERT void assert_failed(uint8_t *file, uint32_t line) { } #endif

    e. Video Demo[Kembali]






     

    f. Analisa [Kembali]












    g. Download File[Kembali]

    FIle Zip  [klik disini]

    LAPORAN AKHIR [Klik Disini]

    Datasheet Sensor: 

    Datasheet Led  [klik disini]











     

     

    Komentar

    Postingan populer dari blog ini

    Tugas Besar