M1-Tugas Pendahuluan 1
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]
Prinsip kerja rangkaian ini adalah menggabungkan dua sinyal input dari sensor, yaitu sensor inframerah dan sensor sentuh, menggunakan mikrokontroler STM32 sebagai pengolah utama dengan logika AND.
Sensor inframerah bekerja dengan mendeteksi adanya objek di depannya melalui pantulan cahaya inframerah. Ketika objek terdeteksi, sensor ini menghasilkan sinyal logika LOW (0). Sementara itu, sensor sentuh bekerja berdasarkan perubahan kapasitansi, di mana saat disentuh akan menghasilkan sinyal logika HIGH (1).
Kedua sinyal tersebut kemudian dibaca oleh mikrokontroler melalui pin input. Mikrokontroler akan memproses kondisi ini dengan aturan bahwa output hanya akan aktif jika kedua syarat terpenuhi secara bersamaan, yaitu sensor inframerah mendeteksi objek (0) dan sensor sentuh dalam keadaan aktif (1).
Jika kondisi tersebut terpenuhi, maka mikrokontroler akan memberikan sinyal output untuk mengaktifkan LED sebagai indikator visual dan buzzer sebagai indikator suara. Sebaliknya, jika salah satu kondisi tidak terpenuhi, maka output akan tetap dalam keadaan mati.
Dengan demikian, prinsip kerja sistem ini dapat dikatakan sebagai sistem kontrol berbasis logika digital AND, di mana dua kondisi input harus terpenuhi untuk menghasilkan output aktif.
4. Flowchart dan Listing Program [kembali]
#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 = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0);
uint8_t touch = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1);
// DEBUG: nyalakan PB0 kalau IR aktif
if (ir == GPIO_PIN_RESET)
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
else
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
// DEBUG: nyalakan PB1 kalau TOUCH aktif
if (touch == GPIO_PIN_SET)
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);
else
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
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_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
// Output awal OFF
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_RESET);
// PA0 = IR, PA1 = Touch (INPUT)
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);
// PB0 & PB1 = OUTPUT
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)
{
}
}
Buatlah rangkaian seperti pada gambar percobaan 3 dengan kondisi ketika Infrared sensor tidak mendeteksi benda dan sensor Touch mendeteksi sentuhan, maka LED akan menyala
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