Rangkaian ini menggunakan mikrokontroler STM32F103C8 sebagai pusat kendali dan dilengkapi dengan sensor inframerah untuk mendeteksi objek. Sensor IR mengirimkan sinyal ke mikrokontroler saat mendeteksi hambatan, yang kemudian memicu output ke LED RGB dan buzzer sebagai indikator. LED RGB dihubungkan melalui resistor pembatas arus untuk menampilkan warna yang sesuai dengan status deteksi, sedangkan buzzer berbunyi sebagai alarm. Sistem ini bekerja pada tegangan 5V dan menggunakan pull-up resistor pada tombol input untuk memastikan stabilitas sinyal.
Rangkaian ini bekerja dengan mendeteksi keberadaan objek menggunakan sensor inframerah, yang akan mengirimkan sinyal digital ke mikrokontroler STM32F103C8 ketika hambatan terdeteksi. Mikrokontroler kemudian mengaktifkan indikator visual berupa LED RGB dan buzzer sebagai tanda adanya objek di depan sensor. LED RGB menyala dengan warna tertentu sesuai dengan logika program, sementara buzzer berbunyi sebagai alarm. Sistem ini dikendalikan oleh tombol input dan mendapatkan pasokan daya 5V untuk mengoperasikan semua komponennya.
Ketika sensor IR mendeteksi gerakan, maka buzzer akan berbunyi dan LED akan menampilkan warna hijau. Jika push button ditekan, akan menghasilkan LED berwarna biru dan buzzer menyala. Jika sensor IR mendeteksi gerakan dan push button ditekan secara bersamaan, maka LED akan menampilkan warna cyan.
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
Tidak ada komentar:
Posting Komentar