Laporan Akhir 2



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


1. Prosedur[Kembali]

    1. Rangkai rangkaian sesuai dengan rangkaian percobaan 6 pada modul 1.
    2. Setelah semua komponen (Buzzer, LED RGB, Push Button, dan Sensor Infrared ) dihubungkan,             lalu hubungkan USB STM32 ke laptop.
    3. Inisaialisasi program menggunakan STM32CubeIDE
    4. Setelah program selesai, simulasikan rangkaian.
    5. Selesai.


2. Hardware dan Diagram Blok[Kembali]

Hardware :

  • STM32

  • Push button


  • LED RGB

  • Resistor

  • Sensor Infrared

  • Buzzer


  • Jumper Cable Wire
  • Beard board



Diagram Blok




3. Rangkaian Simulasi[Kembali]

Rangkailah seperti rangkaian percobaan 6 pada modul 1





  • Prinsip Kerja 
       Rangkaian ini menggunakan sensor inframerah (IR), mikrokontroler STM32F103C8T6, LED RGB, push button, dan buzzer untuk mendeteksi keberadaan objek dan memberikan respon visual serta audio. Dimana rangkaian ini terdapat 2 input yaitu sensor infrared dan push button, dengan 2 output yaitu RGB LED dan buzzer. Sensor IR bekerja dengan memancarkan sinar inframerah dan mendeteksi pantulannya; jika ada objek yang menghalangi, sensor akan mengeluarkan sinyal logika Low, sedangkan jika tidak ada objek, sensor mengeluarkan logika High. Mikrokontroler membaca sinyal dari sensor IR dan push button untuk mengontrol LED RGB dan buzzer. Saat sensor IR mendeteksi objek, LED RGB akan menyala merah. Jika push button ditekan, LED RGB akan menyala hijau. Selain itu, buzzer akan berbunyi jika salah satu dari sensor IR atau push button aktif, atau keduanya aktif secara bersamaan. Logika ini memastikan bahwa ada peringatan suara setiap kali terjadi interaksi dengan sistem, baik melalui deteksi objek oleh sensor IR maupun dengan menekan tombol.


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]





6. Analisa[Kembali]

  





7. Download File[Kembali]

Listing Program [Download]
Video Demo [Download]  
Datasheet Mikrokontroler STM32F103C8 [Download]
Datasheet Sensor Infrared [Download]
Datasheet Push Button [Download]
Datasheet RGB LED [Download]
Datasheet Buzzer [Download]










Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

Elektronika

 BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA C Disusun Oleh : Nabilah Darma Fitri 2210953003 Dosen Pengampu : Dr. Darwison, M.T JURUSAN ...