Laporan Akhir 2


1. Prosedur [Kembali]

Untuk menjalankan dan memvalidasi simulasi rangkaian pada platform seperti Wokwi, prosedur berikut harus dilakukan secara berurutan:

  1. Persiapan Lingkungan Simulasi: Buka platform simulator sirkuit elektronik (misalnya Wokwi) dan buat proyek baru dengan memilih papan mikrokontroler STM32 (khususnya seri Nucleo C031C6 jika tersedia, atau seri STM32 yang kompatibel).

  2. Perakitan Perangkat Keras (Wiring): * Hubungkan komponen Push Button ke pin PA0 dan sumber tegangan/GND melalui resistor (konfigurasi pull-down eksternal atau sesuai gambar).

    • Hubungkan Slide Switch (sebagai simulator sensor IR) ke pin PA1.

    • Hubungkan anoda LED Hijau ke pin PB0 dan anoda LED Merah ke pin PB1 (keduanya dihubungkan ke GND melalui resistor pembatas arus).

    • Hubungkan terminal positif Buzzer ke pin PB2 dan terminal negatifnya ke GND.

  3. Kompilasi Kode Program: Salin seluruh kode C (berbasis STM32 HAL) yang telah disediakan ke dalam editor teks pada simulator.

  4. Eksekusi Simulasi: Tekan tombol "Play" atau "Start Simulation" untuk mengkompilasi kode dan menjalankan mikrokontroler secara virtual.

  5. Pengujian Interaktif: Aktifkan Push Button di pin PA0 untuk menyalakan sistem.

    • Ubah status Slide Switch di pin PA1 untuk menyimulasikan transisi antara kondisi "tidak mendeteksi objek" dan "mendeteksi objek", lalu amati respons keluaran pada LED dan Buzzer.


2. Hardware dan Diagram Blok [Kembali]



A. Hardware

Rangkaian ini terdiri dari beberapa komponen esensial yang saling terintegrasi:
  • Mikrokontroler STM32 Nucleo C031C6: Merupakan unit pemroses sentral (otak sistem) yang bertugas mengeksekusi instruksi program, membaca sinyal digital dari pin input, dan mengendalikan logika pada pin output berdasarkan algoritma yang ditanamkan.
  • Push Button (Saklar Utama): Komponen input elektromekanis yang berfungsi sebagai pengontrol daya sistem secara logis. Komponen ini memberikan sinyal pemicu (logika HIGH) ke mikrokontroler untuk mengizinkan sistem mulai membaca data sensor.
  • Slide Switch (Simulator Sensor Inframerah): Komponen input yang digunakan untuk menyimulasikan pembacaan sensor IR. Dalam realitasnya, sensor IR bertugas mendeteksi pantulan cahaya untuk mengetahui ada tidaknya objek, yang diterjemahkan menjadi sinyal digital (HIGH untuk tidak ada objek, LOW untuk ada objek).
  • LED (Light Emitting Diode) Merah dan Hijau: Aktuator visual yang merepresentasikan status operasional sistem. LED Hijau mengindikasikan bahwa jalur aman (tidak ada rintangan), sedangkan LED Merah mengindikasikan status peringatan (terdapat rintangan).
  • Buzzer Piezoelektrik: Aktuator audio yang berfungsi menghasilkan gelombang suara sebagai bentuk peringatan atau alarm kepada pengguna ketika sensor mendeteksi keberadaan suatu objek.
  • Resistor: Komponen pasif yang berfungsi membatasi arus listrik. Dalam rangkaian ini, resistor digunakan untuk melindungi LED dari kerusakan akibat arus berlebih dan menstabilkan sinyal input (konfigurasi pull-down/pull-up).

B. Diagram Blok (Sistem Loop Tertutup)

Dalam konteks kontrol otomatis, sistem ini diimplementasikan sebagai siklus pemantauan kontinu (direpresentasikan oleh fungsi while(1)). Kondisi lingkungan secara terus-menerus memberikan umpan balik (feedback) kepada sistem.
  • Input (Referensi/Setpoint): Saklar utama (PA0) bertindak sebagai enable signal.
  • Feedback Element (Sensor): Sensor IR (PA1) secara terus-menerus membaca kondisi fisik lingkungan (keberadaan objek) dan mengirimkan data tersebut kembali ke mikrokontroler.
  • Controller (Mikrokontroler STM32): Mengambil data dari Feedback Element, membandingkannya dengan kondisi logika instruksional (apakah status sensor HIGH atau LOW), dan menghitung keputusan kontrol.
  • Actuator (Plant): Berdasarkan keputusan Controller, sinyal diteruskan ke elemen keluaran (LED Hijau, LED Merah, dan Buzzer) untuk mengubah kondisi lingkungan/indikator.
  • Alur Loop Tertutup: Aksi keluaran (misalnya, alarm berbunyi) tidak mengubah posisi objek secara fisik (seperti pada kontrol suhu ruangan), namun sistem secara komputasional membaca ulang keadaan sensor setiap 50 milidetik (HAL_Delay(50)). Pembacaan feedback ini memastikan jika objek tersebut bergeser atau hilang, sistem akan merespons secara real-time dan secara otomatis mengubah status Actuator kembali ke kondisi aman.


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Alur kerja sistem ini didasarkan pada siklus pemindaian input (input scanning) dan eksekusi logika kontrol pada unit pemroses pusat (MCU) STM32 Nucleo C031C6. Secara fundamental, sistem beroperasi dalam struktur algoritma sekuensial yang berada di dalam infinite loop while(1).

1. Tahap Inisialisasi dan Penentuan Status Awal

Pada saat catu daya diberikan, mikrokontroler mengeksekusi fungsi HAL_Init() dan SystemClock_Config() untuk menstabilkan frekuensi kerja internal. Selanjutnya, fungsi MX_GPIO_Init() menetapkan konfigurasi pin; di mana Port A (PA0 dan PA1) dikonfigurasi sebagai input dengan resistor pull-down internal, sementara Port B (PB0, PB1, dan PB2) ditetapkan sebagai output push-pull. Status awal sistem adalah idle, di mana semua pin keluaran diberikan logika RESET (0V) untuk memastikan seluruh aktuator dalam kondisi nonaktif.

2. Evaluasi Saklar Kendali Utama (Gating Logic)

Sistem menerapkan hierarki kontrol di mana pin PA0 (BUTTON_REVERSE_Pin) bertindak sebagai saklar aktivasi utama. Mikrokontroler melakukan pembacaan digital pada pin ini:

  • Logika LOW (0): Jika saklar utama tidak aktif, sistem secara otomatis masuk ke mode proteksi, mematikan seluruh LED dan Buzzer melalui perintah HAL_GPIO_WritePin dengan parameter GPIO_PIN_RESET.

  • Logika HIGH (1): Jika saklar utama aktif, sistem diberikan izin untuk melanjutkan ke tahap evaluasi sensor inframerah.

3. Pemrosesan Data Sensor dan Respons Aktuator

Ketika saklar utama aktif, mikrokontroler beralih memantau pin PA1 (IR_SENSOR_Pin). Terdapat dua kondisi transisi yang diatur oleh logika percabangan if-else:

  • Kondisi Aman (Tidak Mendeteksi Benda): Apabila pin PA1 menerima sinyal digital berlogika SET (VCC), mikrokontroler menginterpretasikan bahwa tidak ada objek yang menghalangi lintasan sensor. Respons sistem adalah mematikan LED Merah (PB1) dan Buzzer (PB2), serta mengaktifkan LED Hijau (PB0) sebagai indikator visual status aman.

  • Kondisi Peringatan (Mendeteksi Benda): Apabila pin PA1 mendeteksi objek (transisi sinyal ke logika RESET/0V), mikrokontroler akan memicu protokol peringatan secara simultan. Sistem mematikan LED Hijau (PB0) dan memberikan tegangan tinggi pada LED Merah (PB1) serta Buzzer (PB2), sehingga menghasilkan peringatan visual dan audio bagi pengguna.

4. Stabilisasi Siklus (Debouncing & Timing)

Pada akhir setiap siklus instruksi, sistem mengimplementasikan fungsi HAL_Delay(50). Penundaan waktu sebesar 50 milidetik ini sangat krusial dalam sistem kendali tertanam untuk menjaga stabilitas pembacaan sensor dari gangguan derau (noise) elektrik serta mencegah terjadinya flickering atau fluktuasi cepat pada aktuator akibat perubahan status logika yang sangat singkat di terminal input.


Listing Program :

/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : main.h
  * @brief          : Header for main.c file.
  *                   This file contains the common defines of the application.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2026 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */
/* USER CODE END Header */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __MAIN_H
#define __MAIN_H

#ifdef __cplusplus
extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include "stm32g4xx_hal.h"
#include "stm32g4xx_nucleo.h"
#include <stdio.h>

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */

/* USER CODE END Includes */

/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */

/* USER CODE END ET */

/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */

/* USER CODE END EC */

/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */

/* USER CODE END EM */

/* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void);

/* USER CODE BEGIN EFP */

/* USER CODE END EFP */

/* Private defines -----------------------------------------------------------*/
#define BUTTON_REVERSE_Pin       GPIO_PIN_0
#define BUTTON_REVERSE_GPIO_Port GPIOA

#define IR_SENSOR_Pin            GPIO_PIN_1
#define IR_SENSOR_GPIO_Port      GPIOA
#define LED_GREEN_Pin            GPIO_PIN_0
#define LED_GREEN_GPIO_Port      GPIOB

#define LED_RED_Pin              GPIO_PIN_7
#define LED_RED_GPIO_Port        GPIOB

#define BUZZER_Pin               GPIO_PIN_2
#define BUZZER_GPIO_Port         GPIOB

/* USER CODE BEGIN Private defines */

/* USER CODE END Private defines */

#ifdef __cplusplus
}
#endif

#endif /* __MAIN_H */

5. Video Demo [Kembali]


6. Soal Analisa [Kembali]




7. Video Simulasi [Kembali]


8. Download File [Kembali]

Download rangkaian STM32 Nucleo C031C6 klik disini

Tidak ada komentar:

Posting Komentar

  BAHAN PRESENTASI UNTUK MATAKULIAH ELEKTRONIKA 2024 Oleh : MUHAMMAD FADLI NIM. 2310952007   Dosen Pengampu : Dr. Darwison, S. T., M. T. NID...