Laporan Akhir 2



1. Prosedur [kembali]
    1. Menyiapkan alat dan bahan berupa STM32 NUCLEO-G474RE, infrared sensor, buzzer, LED
        RGB, resistor 1k ohm, switch, adaptor, breadboard, dan kabel jumper.
    2. Merangkai rangkaian sesuai dengan ketentuan pada modul percobaan 2 dengan menghubungkan
        sensor dan switch sebagai input serta LED RGB dan buzzer sebagai output ke pin GPIO
        mikrokontroler.
    3. Menghubungkan board STM32 NUCLEO-G474RE ke laptop menggunakan kabel USB.
    4. Membuat project baru pada software STM32CubeIDE sesuai dengan tipe board yang digunakan.
    5. Mengatur konfigurasi GPIO dengan menjadikan pin input sebagai GPIO input dan pin output
        sebagai GPIO output.
    6. Melakukan generate code pada STM32CubeIDE.
    7. Memasukkan listing program percobaan 2 ke dalam file main.c serta menyesuaikan konfigurasi
        pin pada file main.h.
    8. Melakukan proses build dan upload program ke mikrokontroler melalui koneksi USB.
    9. Menguji sistem dengan mengaktifkan switch dan mengamati respon LED serta buzzer terhadap
        pembacaan infrared sensor.

2. Hardware dan Diagram Blok [kembali]
    A. Hardware
    1. STM32 NUCLEO-G474RE


    2. Infrared Sensor


    3. Switch 


    4. LED RGB



    5. Buzzer

    6. Resistor


    B. Diagram Blok


3. Rangkaian Simulasi dan Prinsip Kerja [kembali]
    
    Prinsip Kerja:
    Sistem deteksi jarak pada parkir mundur bekerja dengan memanfaatkan dua input yaitu switch dan
    infrared sensor yang diproses oleh mikrokontroler. Switch berfungsi sebagai pengaktif atau
    penonaktif sistem. Ketika switch dalam kondisi tidak aktif (logika LOW), maka seluruh output
    berupa LED dan buzzer berada dalam kondisi mati.

    Ketika switch dalam kondisi aktif (logika HIGH), sistem mulai bekerja dengan membaca kondisi
    infrared sensor. Jika sensor tidak mendeteksi objek (logika LOW), maka LED indikator pertama akan
    menyala, yang menunjukkan bahwa jarak masih aman. Namun, jika sensor mendeteksi adanya objek
    (logika HIGH), maka LED indikator lainnya akan menyala bersamaan dengan buzzer sebagai
    peringatan bahwa objek sudah berada pada jarak dekat.

    Dengan demikian, sistem ini memberikan indikasi visual melalui LED dan indikasi suara melalui
    buzzer berdasarkan kondisi jarak yang dideteksi oleh sensor, serta hanya aktif ketika switch
    dihidupkan.

4. Flowchart dan Listing Program [kembali]
    A. Flowchart
    B. Listing Program
        main.c
        #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)
         {
         if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_RESET)
         {
         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);
         }
         else
         {
         if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1) == GPIO_PIN_RESET)
         {
         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);
         }
         else
         {
         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);
         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_SET);
         }
         }

         HAL_Delay(50);
         }
        }
        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;

         if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
         {
         Error_Handler();
         }
         RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK |
        RCC_CLOCKTYPE_SYSCLK
         | RCC_CLOCKTYPE_PCLK1;

         RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
         RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
         RCC_ClkInitStruct.APB1CLK
         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_GPIOA_CLK_ENABLE();
         __HAL_RCC_GPIOB_CLK_ENABLE();

         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_PIN_2;
         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)
         {
         }
        }

    main.h
    #ifndef __MAIN_H
    #define __MAIN_H

    #ifdef __cplusplus
    extern "C" {
    #endif

    #include "stm32c0xx_hal.h"

    void Error_Handler(void);
    
    #define BUTTON_REVERSE_Pin GPIO_PIN_0
    #define BUTTON_REVERSE_GPIO_Port GPIOA

    #define IR_SENSOR_Pin GPIO_PIN_1    
    #define IR_SENSOR_GPIO_Port GPIOA 

    #define LED_GREEN_Pin GPIO_PIN_0
    #define LED_GREEN_GPIO_Port GPIOB

    #define LED_RED_Pin GPIO_PIN_1
    #define LED_RED_GPIO_Port GPIOB

    #define BUZZER_Pin GPIO_PIN_2
    #define BUZZER_GPIO_Port GPIOB

    #ifdef __cplusplus
    }
    #endif
    
    #endif 

5. Video Demo [kembali]


6. Analisa [kembali]

7. Download File [kembali]
  • Download Rangkaian Tugas Pendahuluan 2 disini
  • Download Listing Program disini
  • Download Datasheet STM32 NUCLEO-G474RE disini
  • Download Datasheet IR Sensor disini


[menuju awal]




Komentar

Postingan populer dari blog ini