LAPORAN AKHIR MODUL 1 PERCOBAAN 3

 

LAPORAN AKHIR MODUL 1 PERCOBAAN 3




1. Prosedur (kembali)

A. Persiapan Alat dan Bahan

  1. Siapkan semua komponen: ST-LINK, STM32 Bluepill, IR transmitter & receiver, touch sensor, buzzer, LED, dan resistor 220Ω.
  2. Pastikan laptop sudah terinstal STM32CubeIDE dan driver ST-LINK.
  3. Pastikan kabel jumper dalam kondisi baik. 

 B. Perakitan Rangkaian     

  1. Hubungkan pin 3.3V dari STM32 ke jalur VCC pada breadboard.
  2. Hubungkan pin GND STM32 ke jalur ground breadboard.
  3. Rangkai IR Receiver:
    • VCC → 3.3V
    • GND → GND
    • OUT → pin PA0
  4. Rangkai Touch Sensor:
    • VCC → 3.3V
    • GND → GND
    • OUT → pin PA1
  5. Rangkai LED:
    • Anoda → pin PB0
    • Katoda → resistor 220Ω → GND
  6. Rangkai Buzzer:
    • Positif → pin PB1
    • Negatif → GND
  7. Hubungkan ST-LINK ke STM32:
    • SWDIO → PA13
    • SWCLK → PA14
    • GND → GND
    • 3.3V → 3.3V
  8. Periksa kembali semua koneksi agar tidak terjadi kesalahan wiring.

 C. Konfigurasi dan Upload Program

  1. Hubungkan ST-LINK ke laptop melalui USB.
  2. Buka STM32CubeIDE dan buka project yang telah dibuat.
  3. Lakukan build project hingga tidak terdapat error.
  4. Klik tombol Run/Download untuk mengunggah program ke STM32.
  5. Tunggu hingga proses flashing selesai tanpa error.

 D. Pengujian Sistem

  1. Nyalakan rangkaian dengan memastikan STM32 mendapatkan tegangan.
  2. Amati kondisi awal sistem (LED dan buzzer).
  3. Lakukan pengujian touch sensor:
    • Sentuh sensor untuk mengaktifkan atau menonaktifkan sistem.
    • Amati perubahan kondisi output.
  4. Lakukan pengujian IR sensor:
    • Dekatkan objek ke IR transmitter/receiver.
    • Amati apakah LED dan buzzer merespon.
  5. Ulangi pengujian beberapa kali untuk memastikan sistem bekerja stabil.

2. Hardware (kembali)

 Alat

  • ST-LINK (programmer/debugger STM32) 
 St Link V2 Mini Simulator Download Programmer (STM8 6 STM32) Compatible  with Arduino
  • Laptop / PC dengan STM32CubeIDE 
 STM32CubeIDE | Software - STMicroelectronics
  • Breadboard 
 Breadboard | Komponen, Alat, + Catu Daya
  • Kabel jumper
 Jual Kabel Dupont / Kabel Jumper / Pelangi Jumper 10 Cm Arduino Isi 10 Pcs  Di Seller Klinik Rasyid - Pangulah Utara, Kab. Karawang | Blibli
Bahan
  • Mikrokontroler STM32F103C8 (Bluepill)
 STM32F103C8 V/S GD32VF103Cx — Mecrisp Stellaris Unofficial 1.0 documentation
  • IR Sensor
 Detektor Rintangan menggunakan modul IR - tutorial | Arduino Project Hub
  • Touch Sensor 
 Touch Sensor Module — SunFounder Ultimate Sensor Kit documentation
  • Buzzer 
 Fungsi dan Cara Kerja Buzzer dalam Proyek Elektronika
  • LED 
 Lite-On 2.6 V Red LED 5 mm Through Hole LTL LTL-307P | RS
  • Resistor 220 Ω

 


3. Rangkaian Simulasi dan Prinsip Kerja (kembali)

 

Prinsip kerja rangkaian ini berbasis sistem kontrol sederhana menggunakan mikrokontroler STM32 sebagai pusat pengolah data input dan pengendali output. Rangkaian memiliki dua jenis input, yaitu touch sensor sebagai pengendali utama (enable/disable sistem) dan IR receiver sebagai pendeteksi objek. Ketika rangkaian diberi tegangan, mikrokontroler akan membaca kondisi awal dan berada dalam keadaan aktif. Touch sensor bekerja sebagai saklar digital, di mana setiap sentuhan akan mengubah kondisi sistem menjadi aktif atau nonaktif. Jika sistem dalam keadaan nonaktif, maka seluruh output seperti LED dan buzzer akan dimatikan tanpa memperhatikan kondisi sensor lainnya.

Saat sistem dalam keadaan aktif, mikrokontroler akan terus membaca sinyal dari IR receiver. IR transmitter memancarkan sinar inframerah, dan ketika ada objek yang menghalangi atau memantulkan sinar tersebut, IR receiver akan memberikan sinyal logika ke mikrokontroler. Sinyal ini kemudian diproses untuk menentukan kondisi output. Jika objek terdeteksi, maka mikrokontroler akan mengaktifkan LED sebagai indikator visual dan buzzer sebagai indikator suara. Sebaliknya, jika tidak ada objek yang terdeteksi, maka LED dan buzzer akan tetap dalam kondisi mati.

Secara keseluruhan, rangkaian ini bekerja dengan konsep input–proses–output, di mana input berasal dari touch sensor dan IR sensor, proses dilakukan oleh mikrokontroler STM32, dan output berupa LED serta buzzer. Sistem ini juga menerapkan logika kontrol sederhana berbasis kondisi (conditional logic), sehingga sangat cocok digunakan sebagai dasar pemahaman sistem otomasi seperti alarm pendeteksi objek atau sistem keamanan sederhana.

4. Flowchart dan Listing Program (kembali)

 #include "main.h"

/* Private variables ---------------------------------------------------------*/
uint8_t system_enable = 1;
uint8_t touch_last = 0;

/* Function prototypes -------------------------------------------------------*/
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);

    // Toggle system dengan touch sensor
    if (touch_now == GPIO_PIN_SET && touch_last == GPIO_PIN_RESET)
    {
      system_enable = !system_enable;
      HAL_Delay(200); // debounce
    }

    touch_last = touch_now;

    if (system_enable)
    {
      // Jika IR mendeteksi objek
      if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_SET)
      {
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); // LED ON
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); // Buzzer ON
      }
      else
      {
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
      }
    }
    else
    {
      // Sistem OFF
      HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
      HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
    }
  }
}

/**
  * @brief System Clock Configuration
  */
void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  // Konfigurasi oscillator
  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();
  }

  // Konfigurasi clock
  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();
  }
}

/**
  * @brief GPIO Initialization Function
  */
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();

  // Set output awal LOW
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_RESET);

  // PA0 & PA1 sebagai input (IR + 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);

  // PB0 & PB1 sebagai output (LED + 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);
}

/**
  * @brief Error Handler
  */
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)

Sistem pada rangkaian ini bekerja dengan dua kondisi utama, yaitu aktif dan nonaktif yang dikendalikan oleh touch sensor sebagai saklar. Saat sistem aktif, mikrokontroler akan membaca sinyal dari IR sensor; jika terdeteksi objek maka LED dan buzzer akan menyala, sedangkan jika tidak terdeteksi maka keduanya mati. Namun, saat sistem dalam kondisi nonaktif, semua output akan tetap mati meskipun IR sensor mendeteksi objek, sehingga touch sensor berfungsi sebagai pengendali utama dan IR sensor sebagai pemicu output.

7. Video Simulasi (kembali)


8. Download File (kembali)

Datsheet ST-LINK [Download]
Datsheet STM32F103C8 (Bluepill) [Download]
Datsheet STM32 NUCLEO-G474RE [Download]
Datsheet IR Sensor [Download]
Datsheet Touch Sensor [Download]
Datsheet Float Switch [Download]
Datsheet Flame Sensor [Download]
Datsheet Relay [Download]
Datsheet Buzzer [Download]
Datsheet LED [Download]
Datsheet Resistor 220 Ω [Download]
Datsheet Breadboard [Download]
Datsheet Adaptor [Download]

Komentar

Postingan populer dari blog ini

Modul 1 : Gerbang Logika

Tugas Besar : Metal detector (alat pendeteksi benda jenis logam)

Modul 3 : Counter dan Shift Register