TP 1 M1



1. Prosedur [kembali]

  1. Menyiapkan seluruh peralatan dan bahan yang diperlukan.
  2. Menyusun komponen pada breadboard sesuai dengan diagram rangkaian percobaan.
  3. Menghubungkan setiap pin input dan output dengan benar.
  4. Mengunggah program ke mikrokontroler menggunakan ST-LINK.
  5. Menjalankan rangkaian yang telah dibuat.

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 ini beroperasi dengan memanfaatkan dua buah sensor sebagai masukan, yaitu sensor inframerah (IR) dan sensor sentuh (touch sensor) yang dihubungkan ke mikrokontroler STM32. Sensor inframerah akan menghasilkan logika rendah (0) ketika tidak mendeteksi adanya objek, sedangkan sensor sentuh akan memberikan logika tinggi (1) saat terjadi sentuhan.

Mikrokontroler secara berkelanjutan memantau kondisi kedua sensor melalui pin GPIO. Apabila sensor inframerah berada pada kondisi tidak mendeteksi objek (logika 0) dan sensor sentuh mendeteksi sentuhan (logika 1), maka mikrokontroler akan mengirimkan sinyal logika tinggi ke pin output. Sinyal tersebut digunakan untuk menyalakan LED sebagai indikator. Sebaliknya, jika kondisi tersebut tidak terpenuhi, mikrokontroler akan memberikan logika rendah pada output sehingga LED tetap padam.

Dengan demikian, rangkaian ini bekerja berdasarkan logika kombinasi tertentu, di mana LED hanya akan aktif apabila kondisi IR = 0 dan Touch = 1 terpenuhi.


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 infrared = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0);

uint8_t touch = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1);


// KONDISI SESUAI SOAL:

// Infrared TIDAK deteksi benda (HIGH)

// DAN Touch disentuh (HIGH)

if (infrared == GPIO_PIN_SET && touch == GPIO_PIN_SET)

{

// LED & BUZZER ON

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);

}

else

{

// LED & BUZZER OFF

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_GPIOA_CLK_ENABLE();

__HAL_RCC_GPIOB_CLK_ENABLE();


// Output awal OFF

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_RESET);


// INPUT: PA0 (Infrared), PA1 (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: PB0 (LED), PB1 (Buzzer)

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)

{

}

}






5. Video Demo [kembali]



6. Kondisi [kembali]

    Percobaan 3 Kondisi 3

    Buatlah rangkaian sesuai dengan diagram pada percobaan 3, dengan ketentuan bahwa LED akan menyala ketika sensor inframerah tidak mendeteksi objek dan sensor sentuh mendeteksi adanya sentuhan.

7. Video Simulasi [kembali]




8. Download File [kembali]










Komentar

Postingan Populer