Percobaan 6
Buzzer, LED RGB, Push Button, dan Sensor Infrared
- Rangkai rangkaian seperti pada rangkaian percobaan 6 pada modul 1.
- Setelah semua komponen (Buzzer, LED RGB, Push Button, dan Sensor Infrared ) dihubungkan, lalu hubungkan USB STM32 ke laptop.
- Inisaialisasi program menggunakan STM32CubeIDE
- Setelah program selesai, simulasikan rangkaian.
- Selesai
2. Hardware dan Diagram Blok[Kembali]
Hardware :
- STM32
- Push button
- LED RGB
3. Rangkaian Simulasi[Kembali]
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_ASSERTvoid assert_failed(uint8_t *file, uint32_t line){}#endifSystemClock_Config();MX_GPIO_Init();while (1){
Tidak ada komentar:
Posting Komentar