Laporan Akhir 1 Modul 1 Praktikum Mikro





Laporan Akhir

Percobaan 6
Buzzer, LED RGB, Push Button, dan Sensor Infrared

1. Prosedur [kembali]

    1. Buat rangkaian di project board sesuai dengan percobaan yang dilakukan pada modul.
    2. Konfigurasikan  Pin pada STM
32 cube ide dan lakukan programming.
    3. Connect STM 32 dengan laptop
    4. Simulasikan Program
    5. Lihat Hasil nya

2. Hardware dan Diagram Blok [kembali]
  • Hardware :

    • STM32
    • Push button


    • LED RGB


    • Resistor

    • Buzzer
    • IR Sensor


    Diagram Blok



3. Rangkaian Simulasi dan Prinsip Kerja [kembali]

  • Rangkaian 

  • Prinsip Kerja 

    Pada percobaan keenam, sistem terdiri dari satu push button dan satu sensor IR sebagai perangkat input, sementara LED RGB dan buzzer berperan sebagai perangkat output. Dev board STM32 berfungsi sebagai pengontrol utama yang membaca sinyal dari input dan mengatur output sesuai dengan program yang telah dirancang.

    Setiap input dan output terhubung ke GPIO pada STM32, dengan input dikonfigurasi menggunakan mode pull-down resistor. Dengan pengaturan ini, saat push button tidak ditekan dan sensor IR tidak mendeteksi objek, nilai logika yang terbaca oleh GPIO adalah 0 (low). Sebaliknya, jika push button ditekan atau sensor IR aktif, sinyal akan berubah menjadi 1 (high), yang kemudian diolah oleh STM32 untuk menentukan respons sistem.

    Dalam kondisi normal, ketika kedua input tidak aktif, STM32 tidak mengaktifkan output, sehingga LED RGB tetap mati dan buzzer tidak berbunyi. Jika push button ditekan, STM32 akan mengubah warna LED RGB menjadi merah dan menyalakan buzzer. Sementara itu, jika sensor IR mendeteksi keberadaan objek, STM32 akan menyalakan LED RGB dengan warna hijau serta mengaktifkan buzzer.



4. Flowchart dan Listing Program [kembali]
  • Flowchart



    • Listing Program

    #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) {
    uint8_t button_status = HAL_GPIO_ReadPin(GPIOB, BUTTON_Pin); uint8_t ir_status = HAL_GPIO_ReadPin(GPIOB, IR_Pin); HAL_GPIO_WritePin(GPIOA, GREEN_Pin | RED_Pin | BUZZER_Pin, GPIO_PIN_RESET); if (button_status == GPIO_PIN_SET) { HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET); } if (ir_status == GPIO_PIN_SET) { HAL_GPIO_WritePin(GPIOA, GREEN_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET); } HAL_Delay(100); } } 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(GPIOA, RED_Pin|GREEN_Pin|BUZZER_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, GPIO_PIN_RESET); GPIO_InitStruct.Pin = RED_Pin|GREEN_Pin|BUZZER_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.Pin = BLUE_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(BLUE_GPIO_Port, &GPIO_InitStruct); GPIO_InitStruct.Pin = BUTTON_Pin|IR_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; 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


5. Video Demo [kembali]

Video Perkenalan 


Video Simulasi



6. Analisa [kembali]




7. Download file [kembali]



Komentar

Postingan populer dari blog ini

Modul 2 Praktikum Sistem Digital

Modul 1 Praktikum Sistem Digital

Modul 1 (GPIO) Praktikum Mikroprosesor dan Mikrokontroller