LA KONDISI 2
1. Prosedur [kembali]
1. Sediakan alat dan bahan percobaan
2. Rangkailah rangkaian di breadboard
3. Download stlink. dan masukkan listing program ke aplikasi
STM32 IDE
4. Hubungkan rangkaian dengan software dengan kabel stlink
5. Jalankan program
2. Hardware dan Diagram Blok [kembali]
a. Hardware
1. STM32F103C8
2. Push Button3. Resistor
4. RGB-LED
5. Infrared Sensor
6. Touch Sensor
b. Diagram Blok
3. Rangkaian Simulasi dan Prinsip Kerja [kembali]

Prinsip Kerja:
STM32F103C8 berfungsi mengendalikan berbagai perangkat input
dan output melalui antarmuka mikrokontroler. RGB LED dikendalikan menggunakan
sinyal PWM untuk menghasilkan warna yang berbeda. Push button dan touch sensor
bekerja sebagai input digital, di mana perubahan statusnya dideteksi oleh
mikrokontroler untuk memicu aksi tertentu. Sensor inframerah mendeteksi
keberadaan objek dengan mengukur perubahan sinyal pantulan, sementara resistor
digunakan untuk membatasi arus guna melindungi komponen. Secara keseluruhan,
sistem ini bekerja dengan membaca sinyal dari sensor dan tombol, kemudian
memprosesnya untuk mengontrol perangkat output sesuai dengan logika pemrograman
yang diterapkan.
4. Flowchart dan Listing Program [kembali]
a. Flowchart
b. 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 ir_status = HAL_GPIO_ReadPin(GPIOB, IR_Pin);uint8_t touch_status = HAL_GPIO_ReadPin(GPIOB, TOUCH_Pin);if (ir_status == GPIO_PIN_SET && touch_status == GPIO_PIN_SET) {HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOA, GREEN_Pin, GPIO_PIN_SET);HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, GPIO_PIN_SET);} else {HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, ir_status);HAL_GPIO_WritePin(GPIOA, GREEN_Pin, touch_status);if (ir_status == GPIO_PIN_RESET && touch_status == GPIO_PIN_RESET) {HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET);} else {HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_RESET);}}HAL_Delay(10);}}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, GPIO_PIN_RESET);HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, GPIO_PIN_RESET);GPIO_InitStruct.Pin = RED_Pin | GREEN_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 = IR_Pin | TOUCH_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) {}#endif
5. Video Demo [kembali]
6. Kondisi [kembali]
RGB LED dikendalikan untuk menghasilkan variasi warna, push
button dan touch sensor dapat digunakan sebagai input digital untuk mengontrol
sistem, sementara sensor inframerah mampu mendeteksi objek atau hambatan dengan
respons yang cepat. Penggunaan resistor sebagai pembatas arus juga memastikan
komponen bekerja dalam kondisi aman. Secara keseluruhan, eksperimen ini
membuktikan bahwa STM32F103C8 memiliki fleksibilitas dan keandalan dalam
menangani berbagai jenis antarmuka input-output untuk aplikasi embedded system.
7. Video Simulasi [kembali]
8. Download file [kembali]
Download Datashett STM32 klik disini
Download Datasheet IR sensor klik disini
Download Datasheet Touch sensor klik disini
Download Datasheet Push Button klik disini
Download Datasheet RGB-LED klik disini
Download Datasheet Resistor klik disini
Komentar
Posting Komentar