LA1_M1_uP

 

 




1. Prosedur
[Kembali]

- Rangkaian


   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.

2. Hardware dan Diagram Blok [Kembali]

STM32F103C8 sebagai mikrokontroler utama untuk mengontrol input dari sensor dan output ke LED.



Sensor inframerah (IR) digunakan untuk mendeteksi objek berdasarkan pantulan sinyal IR


- LED indikator menyala sebagai respons terhadap sinyal dari mikrokontroler. 



Resistor pembatas arus digunakan untuk melindungi LED dan memastikan operasi yang stabil.


- Buzzer  sebagai Aktuator suara yang menghasilkan bunyi saat objek terdeteksi.


- Push Button digunakan sebagai input manual untuk menguji fungsi sensor atau sistem.



- GND sebagai referensi tegangan.


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

- Rangkaian


- Prinsip kerja

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.


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. Kondisi [Kembali]




7. Video Simulasi [Kembali]






8. Download File[Kembali]

Rangkaian [disini]
Listing Program [disini]
Video [disini]
Datasheet STM32F103C8 [disini]
Datasheet IR Sensor [disini]

Tidak ada komentar:

Posting Komentar

BAHAN PRESENTASI UNTUK MATA KULIAH ELEKTRONIKA 2022 Disusun oleh : M. Radhi Azmi (2210952058) Dosen Pengampu : Dr. Darwison, M.T Referensi: ...