TP 1 MODUL 1 MIKRO



1. Prosedur [kembali]

  1. Menyiapkan alat dan bahan.
  2. Merangkai komponen pada breadboard sesuai dengan gambar rangkaian percobaan.
  3. Menghubungkan masing masing pin input output.
  4. Mengunggah program menggunakan ST-LINK ke mikrokontroler.
  5. 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]


Percobaan 3

Prinsip Kerja:

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]

 

Flowchart

Listing Program:

#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]


6. Kondisi [kembali]

    Percobaan 3 Kondisi 2

    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]

Percobaan 3 Kondisi 2

8. Download File [kembali]










Komentar

Postingan populer dari blog ini