LA 2 M1



Percobaan 6
Led & Switch


1. Prosedur[Kembali]

  • Rangkai semua komponen 
  • Buat program di website wokwi
  • Jalankan program dan cobakan sesuai kondisi

.

2. Hardware dan Diagram Blok[Kembali]

Hardware :

  • STM32F103C8 




  • Push button





  • LED



  • Resistor

  • LED RGB 





  • Sensor Infrared 




  • Buzzer 





Diagram Blok


  • Rangkaian




  • Prinsip Kerja

Rangkaian ini memanfaatkan mikrokontroler STM32 sebagai pusat kendali utama, didukung oleh sensor inframerah (IR), tombol, LED RGB, dan buzzer sebagai komponen tambahan. Saat sistem mulai beroperasi, STM32 akan melakukan proses inisialisasi dengan mengkonfigurasi GPIO untuk membaca input dari sensor IR dan tombol, serta mengontrol output ke LED dan buzzer.


Mikrokontroler memantau kondisi tombol dan sensor IR melalui port GPIOB. Ketika tombol ditekan, STM32 akan menyalakan LED merah dan mengaktifkan buzzer sebagai penanda bahwa tombol telah ditekan. Jika sensor IR mendeteksi adanya objek di depannya, LED hijau dan buzzer akan menyala sebagai indikasi keberadaan objek. Namun, jika tidak ada input dari tombol maupun sensor IR, maka LED dan buzzer akan tetap dalam keadaan mati.


Seluruh proses berjalan secara terus-menerus di dalam loop tak terbatas (while(1)) dengan penundaan selama 100 ms untuk menjaga kestabilan pembacaan data dari sensor dan tombol. Sistem ini cocok diterapkan dalam berbagai aplikasi, seperti sistem keamanan atau penghitung objek otomatis berbasis sensor IR.

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(); 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 SystemClock_Config(); MX_GPIO_Init(); while (1) {

5. Analisa[Kembali]




6. Video Demo[Kembali]

7. Download File[Kembali]

HTML [Download]
Rangkaian [Download
Video Simulasi [Download 
Listring Program [Download 


Komentar

Postingan populer dari blog ini

MODUL 1

modul 2 sistem digital

MODUL 3