TP 1 MODUL 1 MIKRO
1. Prosedur [kembali]
- Menyiapkan alat dan bahan.
- Merangkai komponen pada breadboard sesuai dengan gambar rangkaian percobaan.
- Menghubungkan masing masing pin input output.
- Mengunggah program menggunakan ST-LINK ke mikrokontroler.
- Jalankan Rangkaian
2. Hardware dan Diagram Blok [kembali]
- ST-LINK
- STM32F103C8 (BLUEPILL)
- IR Transmitter
- IR Receiver
- Touch sensor
- Buzzer
- LED
- Resistor 220 OHM
3. Rangkaian Simulasi dan Prinsip Kerja [kembali]
Rangkaian pada gambar bekerja dengan menggabungkan dua sensor, yaitu sensor infrared (IR) dan sensor touch, yang dikendalikan oleh mikrokontroler untuk menentukan kondisi output berupa LED dan buzzer. Sensor IR berfungsi mendeteksi adanya objek di depan sensor melalui pantulan sinar inframerah, sedangkan sensor touch mendeteksi sentuhan berdasarkan perubahan kapasitansi. Kedua sensor ini mengirimkan sinyal digital ke mikrokontroler, yang kemudian memprosesnya menggunakan logika AND. Artinya, LED hanya akan mati ketika kedua kondisi terpenuhi secara bersamaan, yaitu saat IR mendeteksi objek dan sensor touch disentuh. Jika salah satu atau kedua kondisi tersebut tidak terpenuhi, maka LED tetap menyala. Resistor pada rangkaian berfungsi untuk membatasi arus dan menstabilkan sinyal, sedangkan buzzer digunakan sebagai indikator tambahan yang dapat aktif sesuai program. Secara keseluruhan, rangkaian ini merupakan sistem kontrol sederhana yang memanfaatkan kombinasi dua input sensor untuk menghasilkan respon output yang lebih selektif dan mengurangi kesalahan deteksi.
4. Flowchart dan Listing Program [kembali]
#include "main.h"
/* Variabel */
uint8_t touch_last = 0;
/* Prototype */
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 = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0); // IR sensor
uint8_t touch = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1); // Touch sensor
/* =========================
LOGIKA UTAMA
========================= */
if (ir == GPIO_PIN_SET && touch == GPIO_PIN_RESET)
{
// IR deteksi & Touch tidak disentuh → LED MATI
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
}
else
{
// Selain kondisi itu → LED NYALA
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
}
HAL_Delay(50);
}
}
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/* INPUT: IR dan Touch */
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);
/* OUTPUT: LED */
GPIO_InitStruct.Pin = GPIO_PIN_0;
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);
/* Default LED OFF */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, 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();
}
}
void Error_Handler(void)
{
__disable_irq();
while (1)
{
}
}
5. Video Demo [kembali]
Buatlah rangkaian seperti pada gambar percobaan 3 dengan kondisi ketika Infrared sensor mendeteksi benda dan sensor Touch tidak mendeteksi sentuhan, maka LED akan mati.
7. Video Simulasi [kembali]
- Download File Rangkaian (klik disini)
- Download Video Penjelasan Rangkaian (klik disini)
- Download Datasheet Touch Sensor (klik disini)
- Download Datasheet Infrared Sensor (klik disini)
- Download Datasheet Resistor (klik disini)
- Download Datasheet LED (klik disini)
- Download Datasheet Buzzer (klik disini)
Komentar
Posting Komentar