Percobaan 3 LA
1. Prosedur [kembali]
- Menyiapkan alat dan bahan.
- Merangkai komponen pada breadboard sesuai dengan gambar rangkaian percobaan.
- Menghubungkan masing masing pin input output.
- Mengunggah program ke mikrokontroler.
- Jalankan Rangkaian
2. Hardware dan Diagram Blok [kembali]
- STM32F103C8
- Touch Sensor
- IR Sensor
- LED
- Buzzer
- Resistor
3. Rangkaian Simulasi dan Prinsip Kerja [kembali]
Prinsip Kerja:
Rangkaian ini bekerja sebagai sistem pendeteksi berbasis mikrokontroler yang menerima masukan dari dua sensor, yaitu sensor sentuh kapasitif dan sensor inframerah (IR), lalu menghasilkan keluaran berupa LED dan buzzer. Sensor sentuh akan mendeteksi adanya sentuhan pada permukaannya dengan perubahan kapasitansi, sedangkan sensor IR mendeteksi keberadaan objek melalui pantulan sinar inframerah. Kedua sinyal keluaran sensor tersebut masuk ke mikrokontroler (kemungkinan seri STM32) sebagai input digital. Mikrokontroler kemudian memproses logika yang telah diprogram—misalnya, jika salah satu atau kedua sensor aktif, maka mikrokontroler akan mengaktifkan LED sebagai indikator visual dan buzzer sebagai alarm suara. Resistor yang terpasang berfungsi sebagai pembatas arus dan pull-up/pull-down untuk menstabilkan sinyal, sementara catu daya menyuplai tegangan ke seluruh komponen agar sistem dapat bekerja dengan baik. Dengan demikian, rangkaian ini dapat digunakan sebagai sistem deteksi sederhana seperti alarm sentuh atau pendeteksi halangan.
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)
{
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(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. Kondisi [kembali]
7. Video Simulasi [kembali]
Percobaan 3
8. Download File [kembali]
- Download File Rangkaian (klik disini)
- Download Datasheet Touch Sensor (klik disini)
- Download Datasheet Resistor (klik disini)
- Download Datasheet LED (klik disini)
- Download Datasheet Buzzer (klik disini)
- Download Datasheet STM32F103C8 (klik disini)
- Download Datasheet IR Sensor (klik disini)
Komentar
Posting Komentar