Laporan Akhir 1

a. Prosedur

  • 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

    A. Hardware
    1. STM32F103C8


    2. Touch Sensor


    3. PIR Sensor

    4. LED

    5. Buzzer

    6. Resistor

    B. Diagram Blok

    c. Rangkaian Simulasi dan Prinsip Kerja



    Prinsip Kerja:

    Sistem ini bekerja dengan memanfaatkan sensor PIR sebagai pendeteksi gerakan, sensor sentuh sebagai input manual, serta mikrokontroler STM32 sebagai pusat kendali. Ketika sensor PIR menangkap adanya pergerakan, keluarannya berubah menjadi logika HIGH, yang kemudian dibaca oleh mikrokontroler untuk mengaktifkan LED sebagai lampu penerangan. Pada saat yang sama, mikrokontroler menjalankan fungsi penundaan waktu (delay timer) agar lampu tetap menyala selama durasi tertentu, meskipun tidak ada gerakan lanjutan.

    Dalam kondisi di mana sensor PIR terus mendeteksi gerakan sebelum waktu tunda berakhir dan sensor touch tidak digunakan, setiap sinyal HIGH dari PIR akan membuat mikrokontroler mengulang kembali perhitungan waktu dari awal. Akibatnya, waktu tunda tidak pernah selesai karena selalu diperbarui oleh deteksi gerakan berikutnya. Karena sensor touch tetap dalam keadaan tidak aktif (LOW), sistem sepenuhnya bergantung pada input dari PIR. Hal ini menyebabkan LED tetap menyala terus menerus selama masih ada aktivitas yang terdeteksi.

    Dengan demikian, sistem dirancang agar lampu hanya akan padam ketika tidak ada gerakan sama sekali dalam rentang waktu tertentu hingga delay benar-benar habis. Selain itu, buzzer dapat berfungsi sebagai indikator tambahan misalnya memberikan peringatan suara saat gerakan pertama kali terdeteksi atau saat sistem aktif sehingga meningkatkan aspek keamanan dan respons sistem terhadap kondisi di sekitarnya.

    d. Flowchart dan Listing Program


    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_SET)

    {

    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

    g. Download File

    Download video demo praktikum klik disini
    Download Laporan Akhir klik disini
    datasheet Sensor Pir klik disini
    datasheet Sensor Touch klik disini
    datasheet Stm32f103C8 [klik disini]
    Datasheet LED klik disini

    Komentar

    Postingan populer dari blog ini

    Figure 7.21

    Figure 8.17

    Figure 12.19