Minggu, 27 September 2026

Simulasi Palan Pintu Kereta Api Antarkota Berbasis Arduino Uno Dengan Indikator 7-Segment

LAPORAN PRAKTIKUM INTERNET OF THINGS (IOT)

Simulasi Palan Pintu Kereta Api Antarkota Berbasis Arduino Uno Dengan Indikator 7-Segment




Disusun Oleh:

Athallah Firmansyah        24051204136

Dave Osvaldo Adris            24051204172

Arsena Cahya Fioralle        24051204190

M. Ai-Bee Tazkyan N        24051204212

 

 

 

BAB I

PENDAHULUAN

1.1 Latar Belakang

Sistem transportasi perkerataapian memerlukan keandalan tinggi, khususnya pada perlintasan sebidang untuk menjamin keselamatan pengguna jalan maupun perjalanan kereta api. Sebagian besar kecelakaan di perlintasan sebidang disebabkan oleh keterlambatan peringatan dini atau kelalaian dalam pengoperasian palang pintu secara manual. Seiring pesat nya perkembangan teknologi embedded system dan Internet of Things (IoT), modernisasi otomatisasi perlintasan kereta api dapat diwujudkan melalui pengolahan sinyal input dan output (I/O) pada mikrokontroler. 

 

Dalam merancang purwarupa sistem peringatan perlintasan kereta api, mikrokontroler seperti Arduino Uno bertindak sebagai unit pemroses utama yang mengolah sinyal digital dan analog. Perubahan jarak atau kedatangan kereta dapat disimulasikan menggunakan sinyal analog dari potensiometer yang dibaca melalui fitur Analog to Digital Converter (ADC). Data analog tersebut selanjutnya diolah oleh program untuk memberikan instruksi keluaran (output) berupa indikator visual, seperti kedipan LED peringatan dan tampilan hitung mundur (countdown) pada modul display 7 segment 4 digit. Selain itu, integrasi saklar interupsi manual (push button) diperlukan sebagai mekanisme override atau reset sistem saat perlintasan telah kembali aman.

Untuk memvalidasi logika pemrograman I/O dan skematik pengkabelan tanpa risiko kerusakan komponen fisik, 

penggunaan platform simulasi berbasis cloud Wokwi menjadi solusi yang efisien. Platform ini mampu mensimulasikan karakteristik Analog/Digital I/O, Internal Pull-Up, hingga teknik pemindaian display (multiplexing) secara real-time. Berdasarkan hal tersebut, laporan praktikum ini disusun untuk mendokumentasikan perancangan, simulasi, dan pengujian sistem Palang Pintu Kereta Api Antarkota Berbasis Arduino Uno sebagai bentuk implementasi materi pemrosesan Digital & Analog I/O. 

1.2 Rumusan Masalah

Berdasarkan latar belakang yang telah diuraikan, maka rumusan masalah dalam praktikum ini adalah sebagai berikut: 

  1. Bagaimana merancang dan merangkai simulasi sistem palang pintu kereta api berbasis Arduino Uno menggunakan platform Wokwi? 
  2. Bagaimana proses pengolahan sinyal masukan analog dari potensiometer (simulator jarak/kedatangan kereta) melalui Analog to Digital Converter (ADC) untuk menentukan ambang batas peringatan (threshold)? 
  3. Bagaimana mengimplementasikan logika kontrol digital untuk menyalakan kedipan LED indikator secara bergantian dan menampilkan hitung mundur waktu tunggu pada display 7 segment 4 digit? 
  4. Bagaimana fungsi push button berpengaruh terhadap interupsi dan reset status sistem kembali ke kondisi aman?  

1.3 Tujuan Laporan

Adapun tujuan dari penulisan laporan praktikum ini adalah: 

  1. Memahami serta mengimplementasikan konsep pemrosesan Digital & Analog Input/Output (I/O) serta pembacaan ADC pada mikrokontroler Arduino Uno. 
  2. Mampu merancang alur algoritma kontrol untuk menggerakkan aktuator berupa LED peringatan dan display 7 segment 4 digit berdasarkan pemicu sinyal input. 
  3. Memvalidasi kebenaran alur logika program dan skematik rangkaian sistem simulasi palang pintu kereta api pada platform Wokwi sebelum tahap pengadaan perangkat keras fisik. 

1.4 Manfaat Penulisan

Manfaat yang diharapkan dari pembuatan simulasi dan penyusunan laporan ini meliputi: 

  1. Bagi Penulis: Menjadi media untuk menerapkan secara langsung teori arsitektur mikrokontroler, pengondisian pin GPIO, konversi Analog to Digital Converter (ADC), dan teknik multiplexing display 7 segment pada kasus nyata berbasis embedded system. 
  2. Bagi Pengguna/Operator Perlintasan: Memberikan gambaran rancangan sistem peringatan dini otomatis yang presisi, sehingga meminimalisir potensi human error dalam pemantauan kedatangan kereta api di perlintasan sebidang. 
  3. Bagi Pengembang/Sistem: Mempercepat proses pengujian dan debugging alur program secara efisien melalui platform Wokwi, sehingga mencegah terjadinya kesalahan pengkabelan maupun risiko kerusakan komponen elektronik saat implementasi hardware. 




BAB II

TINJAUAN PUSTAKA

2.1 Dasar Teori

Internet of Things (IoT) merupakan konsep interkoneksi antar perangkat fisik yang dilengkapi sensor, perangkat lunak, dan konektivitas jaringan sehingga mampu mengumpulkan serta bertukar data secara mandiri. Dalam konteks sistem monitoring seperti Smart Compost Monitor, IoT memungkinkan proses akuisisi data lingkungan dilakukan secara kontinu dan direspons melalui aktuator tanpa memerlukan intervensi manual secara langsung.

 

ESP32 adalah mikrokontroler system-on-chip (SoC) berbasis prosesor dual-core Tensilica Xtensa LX6 yang dilengkapi modul konektivitas Wi-Fi dan Bluetooth terintegrasi. Selain kemampuan pemrosesan data, ESP32 menyediakan sejumlah pin General Purpose Input/Output (GPIO) yang dapat dikonfigurasi sebagai jalur digital maupun analog, sehingga menjadikannya platform yang tepat untuk aplikasi embedded system berbasis IoT.

 

Pemrosesan sinyal digital pada mikrokontroler bekerja berdasarkan dua kondisi logika, yaitu HIGH (1) dan LOW (0). Pada sisi input, sinyal digital diperoleh dari perangkat seperti push button yang menghasilkan perubahan status logika saat ditekan, maupun sensor digital seperti DHT22 yang mengirimkan data melalui protokol komunikasi satu jalur (single-wire). Pada sisi output, sinyal digital digunakan untuk mengendalikan aktuator sederhana seperti LED indikator melalui pengaturan status HIGH/LOW pada pin GPIO.

 

Berbeda dengan sinyal digital, sinyal analog bersifat kontinu dan dapat memiliki nilai tegangan pada rentang tertentu. ESP32 dilengkapi fitur Analog to Digital Converter (ADC) beresolusi 12 bit yang mampu mengonversi tegangan analog masukan (0-3,3V) menjadi nilai digital dalam rentang 0-4095. Fitur ini dimanfaatkan untuk membaca keluaran potensiometer yang merepresentasikan simulasi parameter kelembapan tanah pada sistem kompos.

 

Komunikasi Inter-Integrated Circuit (I2C) merupakan protokol komunikasi serial dua jalur yang terdiri atas jalur data (SDA) dan jalur clock (SCL), yang memungkinkan pertukaran data antara mikrokontroler dan modul periferal seperti LCD 16x2. Penggunaan I2C mengurangi jumlah pin yang dibutuhkan dibandingkan dengan komunikasi paralel, sehingga mempermudah proses pengkabelan pada rangkaian simulasi.

 

Wokwi merupakan platform simulasi elektronika berbasis cloud yang memungkinkan pengujian rangkaian mikrokontroler, termasuk ESP32, secara virtual tanpa memerlukan perangkat keras fisik. Melalui Wokwi, perilaku sinyal digital dan analog dapat diamati secara real-time, termasuk visualisasi pembacaan sensor dan respons aktuator, sehingga mempercepat proses debugging sebelum implementasi pada perangkat sesungguhnya.

 

2.2 Komponen

  • ESP32 (DevKit): berperan sebagai mikrokontroler utama yang mengendalikan seluruh  proses akuisisi data sensor serta kendali aktuator pada sistem.
  • Potensiometer: digunakan sebagai simulasi sensor kelembapan tanah, menghasilkan sinyal tegangan analog yang dibaca melalui pin ADC ESP32.
  • Push Button: berfungsi sebagai sensor input digital yang mensimulasikan aksi manual pengguna, misalnya sebagai tombol reset atau pemicu perubahan status sistem.
  • Sensor DHT22: sensor digital yang membaca parameter suhu dan kelembapan udara di sekitar kompos, dengan data dikirimkan ke mikrokontroler melalui protokol komunikasi single-wire.
  • LED (Light Emitting Diode): berperan sebagai aktuator output digital yang memberikan indikator visual terhadap status kematangan kompos.
  • LCD 16x2 I2C: modul tampilan yang menampilkan informasi hasil pembacaan sensor secara real-time, dihubungkan ke ESP32 menggunakan komunikasi I2C agar penggunaan pin lebih efisien.

 

BAB III

PEMBAHASAN

3.1 Rangkaian Simulasi

            3.1.1 Mikrokontroler Arduino Uno 

                        Perakitan antarmuka perangkat keras virtual dilakukan dengan memetakan koneksi antar komponen menuju pin pada board mikrokontroler Arduino Uno. Konfigurasi pengkabelan disusun secara sistematis berdasarkan fungsi masing-masing pin sebagai berikut: 

  1. Potensiometer (Sensor Jarak): Bertindak sebagai simulator pendeteksi kedatangan kereta, pin output sinyal analognya dihubungkan ke pin A0. Pemilihan pin ini didasarkan pada fungsinya yang mendukung fitur Analog-to-Digital Converter (ADC) untuk mengkonversi nilai tegangan menjadi data estimasi jarak. 
  2. Push Button (Saklar Reset): Dikonfigurasi dengan pull-up internal dan dipasang pada pin digital 13. Tombol ini berfungsi sebagai saklar interupsi manual bagi penjaga perlintasan untuk mereset dan menormalkan sistem.
  3. LED Indikator: Bertindak sebagai output peringatan visual layaknya alarm perlintasan, masing-masing anoda LED merah dihubungkan ke pin digital 9 dan pin digital 10. 
  4. Modul 4-Digit 7-Segment: Dirangkai secara paralel ke pin-pin digital Arduino untuk memproyeksikan angka hitung mundur estimasi waktu. Pin segmen dihubungkan ke pin 1 hingga 8, sedangkan pin kontrol digit menggunakan pin A1 hingga A4.

            3.1.2 Algoritma Sistem 

Secara algoritma, sistem beroperasi dengan membaca input kondisi secara terus-menerus (looping). Mikrokontroler Arduino Uno akan mengekstraksi data fluktuasi nilai dari potensiometer secara real-time. Data tersebut langsung diproses untuk memicu aktuator visual. Sistem menggunakan logika kondisional (if-else) berdasarkan nilai ambang batas (threshold) kedatangan kereta: 

  1. Kondisi Peringatan/Aktif: Jika nilai pembacaan sensor analog melampaui ambang batas (nilai > 500), program mendeteksi bahwa kereta telah memasuki radius peringatan. Mikrokontroler akan mengirimkan sinyal HIGH dan LOW secara bergantian ke pin 9 dan 10 untuk menciptakan efek kedipan lampu peringatan, sekaligus memulai hitung mundur (contoh: 30 detik) pada layar 7-segment. 
  2. Kondisi Aman (Reset): Program terus memantau status penekanan tombol interupsi. Jika operator menekan tombol (membaca logika LOW), sistem akan mengeksekusi instruksi override untuk menghentikan alarm, mematikan kedua LED merah, dan mengosongkan layar 7-segment sebagai indikasi bahwa perlintasan telah kembali aman.

3.2 Program

Berikut adalah struktur kode program yang digunakan dalam simulasi:

const int segmentPins[] = {1, 2, 3, 4, 5, 6, 7, 8};

const int digitPins[] = {A1, A2, A3, A4}; 

 

const int potPin = A0;      

const int led1 = 9;         

const int led2 = 10;        

const int buttonPin = 13;   

 

const byte digits[] = {

  B11000000,

  B11111001,

  B10100100,

  B10110000,

  B10011001,

  B10010010,

  B10000010,

  B11111000,

  B10000000,

  B10010000

};

 

bool keretaDatang = false;

unsigned long waktuSebelumnyaLED = 0;

unsigned long waktuSebelumnyaDetik = 0;

const int intervalKedip = 400;

bool statusLed = LOW;

int waktuTunggu = 0;

 

void setup() {

  for (int i = 0; i < 8; i++) {

    pinMode(segmentPins[i], OUTPUT);

  }

  for (int i = 0; i < 4; i++) {

    pinMode(digitPins[i], OUTPUT);

    digitalWrite(digitPins[i], LOW);

  }

  

  pinMode(led1, OUTPUT);

  pinMode(led2, OUTPUT);

  pinMode(buttonPin, INPUT_PULLUP);

}

 

void loop() {

  int jarakSensor = analogRead(potPin);

  int statusTombol = digitalRead(buttonPin);

 

  if (jarakSensor > 500 && !keretaDatang) {

    keretaDatang = true;

    waktuTunggu = 30;

    waktuSebelumnyaDetik = millis();

  }

 

  if (statusTombol == LOW) {

    keretaDatang = false;

    waktuTunggu = 0;

    digitalWrite(led1, LOW);

    digitalWrite(led2, LOW);

  }

 

  if (keretaDatang) {

    unsigned long waktuSekarang = millis();

    

    if (waktuSekarang - waktuSebelumnyaLED >= intervalKedip) {

      waktuSebelumnyaLED = waktuSekarang;

      statusLed = !statusLed;

      digitalWrite(led1, statusLed);

      digitalWrite(led2, !statusLed);

    }

    

    if (waktuSekarang - waktuSebelumnyaDetik >= 1000) {

      waktuSebelumnyaDetik = waktuSekarang;

      if (waktuTunggu > 0) {

        waktuTunggu--;

      }

    }

    

    tampilkanAngka(waktuTunggu);

  }

}

 

void tampilkanAngka(int angka) {

  int ribuan = (angka / 1000) % 10;

  int ratusan = (angka / 100) % 10;

  int puluhan = (angka / 10) % 10;

  int satuan = angka % 10;

 

  tulisDigit(0, ribuan);

  tulisDigit(1, ratusan);

  tulisDigit(2, puluhan);

  tulisDigit(3, satuan);

}

 

void tulisDigit(int posisiDigit, int nilai) {

  for (int i = 0; i < 4; i++) {

    digitalWrite(digitPins[i], LOW);

  }

  

  for (int i = 0; i < 8; i++) {

    digitalWrite(segmentPins[i], bitRead(digits[nilai], i)); 

  }

  

  digitalWrite(digitPins[posisiDigit], HIGH);

  delay(5);

}

 

 

BAB IV

PENUTUP

4.1 Kesimpulan

Berdasarkan perancangan, pembuatan kode program, dan pengujian simulasi yang telah dilakukan, dapat ditarik beberapa kesimpulan sebagai berikut:

  1. Simulasi sistem peringatan dini palang pintu kereta api antarkota berhasil dirancang dan divalidasi menggunakan platform Wokwi tanpa kendala, dengan mikrokontroler Arduino Uno yang bertindak sebagai pemroses utama sinyal Input/Output (I/O).
  2. Sistem berhasil melakukan pengolahan sinyal masukan analog dari potensiometer menggunakan fitur Analog to Digital Converter (ADC). Ketika nilai pembacaan sensor jarak melebihi ambang batas (threshold > 500), program secara akurat mendeteksi simulasi kedatangan kereta api.
  3. Logika kontrol digital pada program mampu menggerakkan aktuator visual secara bersamaan saat kondisi peringatan aktif, yaitu menyalakan LED indikator merah yang berkedip secara bergantian serta menampilkan hitung mundur waktu tunggu (countdown) selama 30 detik pada modul display 7-segment 4 digit.
  4. Tombol push button yang dikonfigurasi dengan pull-up internal berhasil berfungsi sebagai saklar interupsi (sistem override). Saat ditekan, sistem berhasil mereset status kembali ke kondisi aman dengan menghentikan hitung mundur, mematikan peringatan LED, dan mengosongkan tampilan display.

4.2 Saran

Untuk pengembangan sistem dan perbaikan pada praktikum atau penelitian selanjutnya, disarankan beberapa hal berikut:

  1. Pada tahap implementasi perangkat keras (hardware) di masa mendatang, penggunaan potensiometer sebaiknya diganti dengan sensor jarak sesungguhnya, seperti sensor ultrasonik atau inframerah, guna mendapatkan data kedatangan objek kereta api yang presisi.
  2. Sistem dapat disempurnakan dengan menambahkan aktuator berupa motor servo untuk mensimulasikan pergerakan palang pintu kereta api yang menutup atau membuka secara fisik.
  3. Penambahan komponen buzzer atau speaker sangat direkomendasikan untuk memberikan peringatan berupa audio (alarm suara) yang melengkapi indikator visual LED, sehingga meminimalisir kelalaian operator maupun pengguna jalan.

 

DAFTAR PUSTAKA

Arduino. (2024). Arduino Uno Rev3 Documentation and Pinout Guide. Arduino Docs. https://docs.arduino.cc/hardware/uno-rev3/

Banzi, M., & Shiloh, M. (2014). Getting Started with Arduino: The Open Source Electronics Prototyping Platform (3rd ed.). Sebastopol: O'Reilly Media.

Kementerian Perhubungan Republik Indonesia. (2018). Peraturan Menteri Perhubungan Republik Indonesia Nomor PM 94 Tahun 2018 tentang Peningkatan Keselamatan Perlintasan Sebidang Antara Jalur Kereta Api dengan Jalan. Jakarta: Kementerian Perhubungan RI.

Microchip Technology Inc. (2018). ATmega328P 8-bit AVR Microcontroller Datasheet. Microchip Technology Documentation. https://www.microchip.com/

Monk, S. (2016). Programming Arduino: Getting Started with Sketches (2nd ed.). New York: McGraw-Hill Education.

Wokwi. (2024). Wokwi Documentation - Arduino Uno Simulator. Wokwi Docs. https://docs.wokwi.com/

  

Tidak ada komentar:

Posting Komentar