LAPORAN AKHIR 2



 1. Prosedur[kembali]

  • Siapkan board STM32 Nucleo G474RE dan hubungkan ke laptop menggunakan kabel yang sesuai.
  • Buka aplikasi STM32CubeIDE pada laptop.
  • Pilih tipe board yang digunakan, yaitu Nucleo G474RE, pada menu konfigurasi proyek.
  • Lakukan pengaturan pin (pinout) sesuai dengan kebutuhan rangkaian pada modul praktikum.
  • Masukkan atau tuliskan program sesuai dengan instruksi yang terdapat pada modul.
  • Kompilasi dan jalankan program melalui STM32CubeIDE.
  •  2. Hardware dan Diagram Blok [kembali]

    Hardware:
    • STM32 NUCLEO-G474RE 
    • Infrared Sensor 

    • Buzzer 


    • Push Button

    • LED RGB


    • Resistor 


    • Switch 

    Diagram Blok:


     3. Rangkaian Simulasi Dan Prinsip Kerja [kembali]

    Gambar Rangkaian ketika Switch Otomatis

    Gambar Rangkaian ketika Switch Manual


    Gambar Rangkaian Simulasi Wokwi

    Prinsip Kerja:

    Ketika switch berada pada posisi ON dan sensor inframerah mendeteksi adanya objek, sistem akan mengaktifkan LED merah serta buzzer sebagai indikator bahwa sistem bekerja secara otomatis. Namun, jika switch tetap ON tetapi sensor inframerah tidak mendeteksi objek, maka LED merah tetap menyala sementara buzzer tidak aktif, yang menunjukkan kondisi manual. Sebaliknya, jika switch berada pada posisi OFF, maka seluruh output seperti LED RGB dan buzzer akan tetap mati tanpa dipengaruhi oleh ada atau tidaknya objek yang terdeteksi oleh sensor inframerah.

     4. Flowchart dan Listing Program [kembali]

    Flowchart



    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.APB1CLKDivider = 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_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]


    Komentar

    Postingan populer dari blog ini

    2.12 Voltage-Multiplier Circuits

    Tugas Besar - Pengamanan ATM

    Modul 1- Potensiometer & Tahanan Geser dan Jembatan Wheatstone