LA Percobaan 3
1. Prosedur[Kembali]
Buka aplikasi simulator (Proteus).
Buat Project baru dan masukkan komponen-komponen berikut ke dalam workspace: Mikrokontroler STM32F103C6, Touch Sensor, IR Obstacle Sensor, LED, Resistor (220Ω & 10kΩ), Buzzer, dan Push Button.
Rangkai komponen sesuai dengan skematik (Hubungkan output sensor ke PA0 & PA1, dan input aktuator ke PB0 & PB1).
Pastikan pin catu daya (VCC/VDDA dan GND/VSSA) terhubung dengan benar.
Lakukan kompilasi (compile/build) pada Listing Program yang telah dibuat (misal menggunakan Arduino IDE atau STM32CubeIDE) hingga menghasilkan file
.hexatau.elf.Klik ganda (double-click) pada komponen IC STM32 di Proteus, lalu masukkan rute (path) file
.hextersebut ke kolom Program File.Klik tombol Play / Run Simulation yang berada di pojok kiri bawah layar Proteus.
Uji coba simulasi dengan mengklik logic toggle (mengubah nilai 0 menjadi 1) pada sensor sentuh atau sensor IR untuk melihat respon dari LED dan Buzzer.
2. Hardware dan Diagram Blok[Kembali]
- Rangkaian Percobaan
Pusat Kendali: Mikrokontroler STM32F103C6
Input: Modul Sensor Sentuh (Touch Sensor) & Sensor Inframerah (IR Obstacle Sensor)
Output: LED Hijau/Merah (Indikator Visual) & Buzzer (Indikator Suara)
Pendukung: Rangkaian Reset (Push button + Resistor )
3. Rangkaian Simulasi [Kembali]
4. Flowchart dan Listing Program[Kembali]
- Flowchart
- Listing Program
#include "main.h" uint8_t system_enable = 1; uint8_t touch_last = 0; void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); while (1) { uint8_t touch_now = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1); if (touch_now == GPIO_PIN_SET && touch_last == GPIO_PIN_RESET) { system_enable = !system_enable; HAL_Delay(200); } touch_last = touch_now; if (system_enable) { if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_SET) { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); } else { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); } } else { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); } } } 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) } 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(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_RESET); GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 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. Soal Analisa[Kembali]
Mikrokontroler memiliki keunggulan dalam fleksibilitas karena fungsi logikanya dapat diubah melalui perangkat lunak tanpa perlu memodifikasi rangkaian fisik. Selain itu, satu mikrokontroler mampu menggantikan banyak komponen logika konvensional, sehingga sistem menjadi lebih sederhana, hemat biaya, dan memiliki kemampuan pemrosesan yang lebih kompleks.



Komentar
Posting Komentar