Laporan Akhir 2 Modul 1



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


1. Prosedur[Kembali]

    1. Rangkailah rangkaian sesuai dengan rangkaian percobaan 6.
    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





  • Prinsip Kerja 
       Pada Percobaan 6 ini rangkaiannya 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, GREEN_Pin, GPIO_PIN_SET);

HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET);

}

if (ir_status == GPIO_PIN_RESET)

{

HAL_GPIO_WritePin(GPIOA, RED_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

  Bahan Presentasi Untuk Matakuliah   Elektronika 2023 Oleh : Ardizal 2210952007 Dosen Pengampu Dr.Ir. Darwison Referensi : 1.   Darwison,20...