LA Percobaan 6 (Modul 1)




1. Prosedur
[Kembali]
    1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
    2. Buat program untuk mikrokontroler STM32F103C8 di software STM32 CubeIDE.
    3. Compile program dalam format hex, lalu upload ke dalam mikrokontroler.
    4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.
    5. Selesai.

2. Hard Ware dan Diagram Blok [Kembali]
    A. Hardware :
a) Mikrokontroler STM32F103C8
STM32F103C8 board – Microscale


2. Infrared Sensor

Infrared Sensor Module


3. Push Button

push button 4 kaki di Sabara Mikro | Tokopedia


4. Power Supply

 
5. RGB LED
Jual LED RGB 4 PIN WARNA MERAH HIJAU BIRU 5mm ( ARDUINO ) - Common Cathode  - Jakarta Barat - Ardushop-id | Tokopedia
 
6. Buzzer
Buzzer

    B. Diagram Blok  :


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
      
Rangkaian Pada Proteus

Rangkaian Pada Praktikum

    Prinsip Kerja:
  Program ini membaca status dua input, yaitu tombol (button) dan sensor inframerah (IR), yang terhubung ke port GPIOB (PB 10 dan PB7). Jika tombol ditekan (GPIO_PIN_SET), maka LED merah dan buzzer akan menyala. Jika sensor inframerah mendeteksi objek (GPIO_PIN_SET), maka LED hijau dan buzzer akan menyala. Sebelum pengecekan, semua output (LED merah, LED hijau, dan buzzer) terlebih dahulu dimatikan (GPIO_PIN_RESET). Setelah itu, program menunggu selama 100 milidetik menggunakan HAL_Delay(100) sebelum membaca kembali status input, sehingga loop ini akan berjalan secara periodik dengan jeda waktu tersebut.

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 Rangkaian [Kembali]



6. Analisa [Kembali]

7. Link Download [Kembali]
Video Percobaan Disini
Rangkaian Disini
Datasheet STM32F103C8T6 Disini

Komentar

Postingan populer dari blog ini

Modul 1: Gerbang Logika Dasar, Monostable Multivibrator, & Flip flop

Tugas Besar

Tugas Pendahuluan Modul 2 (Percobaan 1 Kondisi 21)