LA M2 P2
Langkah-langkah untuk mensimulasikan rangkaian Sistem Kontrol Otomatis Tangki Minyak menggunakan platform Wokwi adalah sebagai berikut:
Perancangan Hardware di Wokwi
Buka simulator Wokwi dan buat proyek baru menggunakan papan mikrokontroler keluarga STM32 (sesuai spesifikasi NUCLEO).
Siapkan komponen-komponen virtual yang dibutuhkan: Float Sensor (disimulasikan dengan push button), Flame Sensor (disimulasikan dengan push button), Relay, Buzzer, LED, dan Resistor.
Rangkai seluruh komponen tersebut mengikuti skema jalur pada Gambar 6 (Rangkaian Percobaan 4). Pastikan koneksi pin VCC, GND, serta jalur input/output dari komponen ke pin mikrokontroler terhubung dengan presisi.
Memasukkan Listing Program
Buka panel code editor pada antarmuka Wokwi.
Salin dan masukkan kode program yang telah dirancang sebelumnya ke dalam tab file
main.cdanmain.h.Pastikan struktur kode memuat logika kondisi yang diminta: sistem dapat membaca status tegangan dari Flame Sensor dan Float Sensor. Saat Flame Sensor mendeteksi api, program harus menginstruksikan pin output untuk menyalakan LED dan Buzzer. Selanjutnya, jika Flame Sensor mendeteksi api ATAU Float Sensor mendeteksi tangki penuh, program harus mematikan Relay (pompa mati). Sebaliknya, jika kondisi aman (tidak ada api dan tangki belum penuh), Relay akan diaktifkan (pompa hidup).
Menjalankan Simulasi
Klik tombol Play / Start Simulation pada Wokwi untuk mengompilasi kode dan menjalankan rangkaian.
Lakukan pengujian dengan menekan atau berinteraksi pada komponen saklar/tombol yang bertindak sebagai Flame Sensor dan Float Sensor.
Amati respons pada LED, Buzzer, dan Relay untuk memastikan bahwa indikator peringatan dan status operasional pompa minyak sudah berjalan sesuai dengan parameter keselamatan dan batas tangki yang ditetapkan.
2. Hardware dan Diagram Blok [Kembali]
A. Daftar Hardware (Perangkat Keras)
Berdasarkan Rangkaian Percobaan 3, perangkat keras yang digunakan pada simulasi ini beserta fungsinya adalah:
Mikrokontroler STM32F103C8: Bertindak sebagai otak atau pusat pemrosesan utama (CPU) yang membaca input dari sensor dan mengendalikan output berdasarkan program yang ditanamkan.
Float Switch (Sensor Pelampung): Berfungsi sebagai perangkat masukan (input) untuk mendeteksi batas ketinggian atau volume minyak di dalam tangki (menentukan apakah tangki sudah penuh). Pada simulasi ini, komponen direpresentasikan menggunakan tombol tekan (push button).
Flame Sensor (Sensor Api): Berfungsi sebagai perangkat masukan (input) keselamatan untuk mendeteksi keberadaan api di area sekitar tangki minyak. Pada simulasi ini, komponen direpresentasikan menggunakan tombol tekan (push button).
Relay: Berfungsi sebagai aktuator atau saklar elektromagnetik (output) yang bertugas untuk memutus atau mengalirkan arus listrik utama yang menuju ke mesin pompa minyak.
Buzzer: Berfungsi sebagai indikator audio (output) darurat yang akan berbunyi nyaring sebagai alarm peringatan ketika api terdeteksi oleh Flame Sensor.
Push Button & Resistor (10k Ohm, 220 Ohm): Komponen pendukung tambahan. Push button biasanya digunakan untuk reset atau input manual tambahan, sedangkan resistor digunakan sebagai penahan arus (misalnya pada LED agar tidak putus).
- LED (Warna Merah): Berfungsi sebagai indikator visual (output) peringatan yang akan menyala ketika kondisi bahaya (api) terdeteksi.
B. Diagram Blok Sistem (Loop Tertutup)
Sistem kontrol otomatis tangki minyak ini dirancang dengan prinsip closed-loop (loop tertutup) secara perangkat lunak. Mikrokontroler melakukan polling (pembacaan terus-menerus) pada Float Sensor dan Flame Sensor di dalam kalang
while(1). Status tegangan terkini dari kedua sensor tersebut secara langsung menjadi umpan balik (feedback) evaluasi bagi sistem untuk mengambil keputusan keselamatan operasional, lalu secara instan memperbarui status keluaran pada Relay (mengendalikan pompa), LED, dan Buzzer.Berikut adalah representasi diagram bloknya:
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
A. Rangkaian Simulasi
Rangkaian simulasi "Sistem Kontrol Otomatis Tangki Minyak" ini dibangun menggunakan platform Wokwi. Rangkaian berpusat pada papan mikrokontroler STM32 (keluarga NUCLEO) yang dihubungkan dengan perangkat input berupa Float Sensor (Sensor Pelampung) dan Flame Sensor (Sensor Api). Untuk bagian output, mikrokontroler mengendalikan sebuah modul Relay (sebagai saklar penggerak pompa minyak), sebuah LED Merah, serta sebuah Buzzer.
B. Prinsip Kerja Rangkaian
Sistem kontrol otomatis ini bekerja berdasarkan evaluasi logika secara terus-menerus (polling) terhadap status batas volume tangki dan deteksi bahaya api. Berikut adalah urutan prinsip kerjanya dari masukan (input) ke keluaran (output):
1. Kondisi Awal (Aman dan Normal Operasi)
Pada tahap awal, sistem diasumsikan berada dalam kondisi operasional normal di mana area sekitar aman (tidak ada api) dan volume tangki minyak belum penuh. Dalam kondisi ini, Flame Sensor dan Float Sensor tidak mendeteksi anomali. Mikrokontroler membaca status aman ini dan memberikan instruksi awal pada output: Relay berada dalam kondisi Aktif (mengalirkan arus sehingga Pompa Minyak hidup untuk mengisi tangki), sementara LED Merah padam dan Buzzer tidak berbunyi.
2. Transisi Input (Perubahan Status Sensor)
Komponen yang memicu perubahan sistem adalah Float Sensor dan Flame Sensor. Transisi dapat terjadi dalam dua skenario utama:
Tangki Penuh: Ketika volume minyak mencapai batas atas pelampung, Float Sensor mengalami transisi dan mengirimkan perubahan sinyal logika (HIGH) ke mikrokontroler yang menandakan tangki sudah "Penuh".
Darurat Api: Jika terjadi percikan atau nyala api di area tangki, Flame Sensor seketika mengalami transisi dan mengirimkan sinyal logika (HIGH) yang menandakan "Api Terdeteksi".
3. Eksekusi Output Akhir (Respons Sistem)
Mikrokontroler STM32 yang secara terus-menerus (looping) memantau pin input sensor, langsung mengenali transisi bahaya atau batas tangki tersebut. Sebagai respons, mikrokontroler langsung mengeksekusi tindakan pencegahan pada pin outputnya:
Jika Flame Sensor mendeteksi api, mikrokontroler segera mengalirkan arus logika ke indikator peringatan sehingga LED Merah menyala dan Buzzer berbunyi nyaring.
Jika salah satu kondisi bahaya terpenuhi (Flame Sensor mendeteksi api ATAU Float Sensor mendeteksi tangki penuh), mikrokontroler langsung memutus aliran arus logika ke pin Relay, sehingga Relay mati dan Pompa Minyak berhenti beroperasi.
Sistem akan mempertahankan kondisi pompa mati dan alarm berbunyi (jika ada api) untuk mencegah minyak meluber (overfill) atau memperparah kebakaran, sampai kondisi input sensor dipulihkan kembali ke status aman (api padam dan tangki siap diisi).
4. Flowchart dan Listing Program [Kembali]
A. Flowchart Logika
B. Listing Program Bahasa C
1. Penjelasan File
main.h(Deklarasi Makro dan Pin)File ini berfungsi sebagai "kamus" yang mendefinisikan alias/nama pengganti untuk komponen perangkat keras agar penulisan kode di
main.clebih mudah dibaca dan diubah jika diperlukan.
#ifndef __MAIN_H,#define __MAIN_H,#endif: Include guard, mencegah file header ini dipanggil dan diproses berkali-kali oleh compiler yang dapat menyebabkan error.
#ifdef __cplusplus extern "C" { ... }: Memastikan bahwa blok kode ini dikompilasi menggunakan standar bahasa C, meskipun dikompilasi oleh compiler C++.
#include "stm32c0xx_hal.h": Memanggil pustaka utama HAL (Hardware Abstraction Layer) spesifik untuk mikrokontroler STM32 seri C0 yang digunakan pada simulator.Blok Input (
#define FLAME_PIN...&#define FLOAT_PIN...): Membuat alias. PinGPIO_PIN_0diGPIOAsekarang bisa dipanggil dengan namaFLAME_PINdanFLAME_PORT. Berlaku sama untuk sensor float (pelampung) di Pin PA1.Blok Output (
#define LED_PIN...,BUZZER_PIN...,RELAY_PIN...): Mengatur alias untuk LED di Pin PA5, Buzzer di Pin PA6, dan Relay (penggerak pompa) di Pin PA7 pada Port A.2. Penjelasan File
main.c(Logika Utama Program)Deklarasi dan Inisialisasi Awal:
#include "main.h": Menyertakan "kamus" pin yang sudah dibuat di filemain.h.
int main(void): Fungsi utama tempat program mulai dieksekusi.
HAL_Init();: Mereset semua periferal mikrokontroler dan menyiapkan timer dasar.
SystemClock_Config();: Memanggil fungsi untuk mengatur kecepatan detak (clock) sistem.
MX_GPIO_Init();: Memanggil fungsi konfigurasi untuk mengatur pin mana yang menjadi input dan output.Logika Kontrol (Di dalam
while(1)):
while (1): Kalang (loop) tak terbatas, membuat program berjalan terus-menerus (polling).
GPIO_PinState flame_state;&float_state;: Menyiapkan variabel lokal untuk menampung status pembacaan sensor (bernilai SET/1 atau RESET/0).
flame_state = HAL_GPIO_ReadPin(FLAME_PORT, FLAME_PIN);: Membaca sinyal tegangan dari Flame Sensor (PA0) dan menyimpannya ke variabelflame_state. Begitu juga baris di bawahnya untuk Float Sensor (PA1).Logika Evaluasi Keselamatan Api:
if (flame_state == GPIO_PIN_SET): Mengecek apakah sensor mendeteksi api (berlogika HIGH/1).
HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET);: Jika ya, hidupkan LED Merah.
HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_SET);: Jika ya, bunyikan Buzzer.
else: Jika tidak ada api (kondisi aman):
... GPIO_PIN_RESET);: Matikan tegangan ke LED dan Buzzer.Logika Pengendali Relay (Pompa Minyak):
if ((flame_state == GPIO_PIN_SET) || (float_state == GPIO_PIN_SET)): Menggunakan logika OR (||). Jika Flame Sensor mendeteksi api ATAU Float Sensor mendeteksi tangki sudah penuh.
HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_RESET);: Matikan Relay (memutus arus ke pompa minyak). Ini adalah langkah pengamanan agar minyak tidak tumpah dan menjauhkan bahan bakar dari api.
else: Jika tidak ada api DAN tangki belum penuh (keduanya aman):
HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_SET);: Hidupkan Relay (pompa menyedot minyak mengisi tangki).
HAL_Delay(100);: Memberikan jeda 100 milidetik sebelum program mengulang pembacaan sensor, agar mikrokontroler tidak terlalu terbebani.Fungsi Konfigurasi GPIO (
MX_GPIO_Init):
__HAL_RCC_GPIOA_CLK_ENABLE();: Mengaktifkan clock (sumber daya) khusus untuk Port A, karena semua komponen terhubung ke Port A.
GPIO_InitStruct.Pin = FLAME_PIN | FLOAT_PIN;: Memilih pin PA0 dan PA1.
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;: Mengatur kedua pin tersebut sebagai masukan (Input).
GPIO_InitStruct.Pull = GPIO_PULLDOWN;: Mengaktifkan resistor internal yang menarik voltase ke 0V (Low) secara otomatis (pull-down) agar pin tidak mengambang saat sensor mati.Blok Output: Mengatur pin LED, Buzzer, dan Relay (
GPIO_MODE_OUTPUT_PP) agar berfungsi sebagai keluaran tegangan yang stabil (Push-Pull).
HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_SET);: Baris perintah di akhir inisialisasi ini memaksa Relay untuk langsung AKTIF (default ON) saat mikrokontroler baru dihidupkan, mengasumsikan tangki masih kosong.
Modul 1 Percobaan 4
Sistem Kontrol Otomatis Tangki Minyak
- Rangkaian Proteus .pdsprj disini
- Listing Program .workspace XML disini
- Listing Program .hex disini
- Video Demo Rangkaian disini
- Datasheet Float Sensor disini
- Datasheet Flame Sensor disini
- Datasheet STM32 NUClEO C031C6 disini
- Datasheet LED Red disini
- Datasheet Relay disini
- Datasheet Buzzer Active disini
- Library Flame Sensor disini
Tidak ada komentar:
Posting Komentar