MODULE 1
Fokus Module: Mahasiswa memahami digital I/O, konsep state machine (misal pada lampu lalu
lintas), dan timing tanpa memblokir CPU (non-blocking delay menggunakan
millis()).
• KEGIATAN PRAKTIKUM 1: Smart Environment & Multi-Hazard Monitor (Pemantauan
Suhu, Kebocoran Gas, dan Deteksi Api Berbasis Algoritma Fusi Data Sensor)
1.1 Tujuan Praktikum.
Setelah menyelesaikan modul ini, mahasiswa diharapkan mampu:
1. Mengintegrasikan protokol komunikasi I2C pada LCD 16x2 serta mengondisikan pin
input digital/analog untuk sensor (DHT22, MQ-2, IR Flame) dan pin output digital
untuk indikator multi-status (3 LED).
2. Menganalisis karakteristik sensor optik (IR Flame) dalam mendeteksi spektrum panjang
gelombang api dibandingkan dengan sensor termal dan kimia.
3. Mendesain algoritma fusi data berbasis aturan (rule-based data fusion) untuk
memetakan kombinasi tiga parameter lingkungan menjadi status visual yang diskrit
(Aman, Waspada, Bahaya).
4. Mengevaluasi tingkat keandalan keputusan logika sistem kendali cerdas ketika
menghadapi gangguan fisik (noise lingkungan).
1.2 Alat dan Bahan
1. Mikrokontroler Arduino Uno
2. Sensor Suhu dan Kelembaban Digital DHT22
3. Sensor Gas/Asap Analog/Digital MQ-2 (atau MQ-series relevan)
4. Sensor Api Infrared (IR Flame Sensor Module)
5. Modul LCD 16x2 dengan I2C Backpack
6. LED (Warna Hijau, Kuning, Merah)
1.3 Dasar Teori
Secara fundamental, perancangan sistem peringatan dini bahaya kebakaran tidak dapat
direpresentasikan secara linier dengan mengandalkan satu parameter fisis. Paradigma otomasi
konvensional (single-variable thresholding) memiliki kerentanan tinggi terhadap false positive
(alarm palsu) yang diakibatkan oleh gangguan lingkungan (environmental noise). Oleh karena itu,
praktikum ini mengedepankan prinsip Sistem Kendali Cerdas yang bertumpu pada arsitektur fusi
data sensor (sensor data fusion) dan pemodelan mesin status (Finite State Machine).
1.3.1 Karakteristik Transduser dan Mekanisme Akuisisi Data
Sistem ini mengambil tiga jenis data poin (termal, kimiawi, dan optik) dari tiga transduser
dengan karakteristik sinyal keluaran yang berbeda
a. Sensor Suhu dan Kelembaban (DHT22)
DHT22 merupakan sensor digital terkalibrasi yang mengombinasikan termistor Negative
Temperature Coefficient (NTC) dan elemen kapasitif pengukur kelembaban udara. Sensor ini tidak
menghasilkan sinyal analog mentah, melainkan memproses data secara internal pada IC
mikrokontroler 8-bit bawaannya, dan mentransmisikan deretan bit data (sebesar 40-bit) melalui
protokol komunikasi single-bus. Oleh karena itu, beban konversi analog ke digital tidak terjadi
pada Arduino, melainkan sudah diselesaikan pada tingkat sensor.
b. Sensor Gas Semikonduktor (MQ-2)
MQ-2 beroperasi berdasarkan prinsip elektrokimia. Material peka gas 𝑆𝑛𝑂2 (Timah
Dioksida) akan mengalami penurunan nilai resistansi ketika terpapar gas pereduksi (seperti
metana, butana, atau asap pembakaran). Perubahan resistansi ini dirangkai dalam sirkuit pembagi
tegangan (voltage divider) yang menghasilkan tegangan analog berskala 0 hingga 5V.
Mikrokontroler membaca tegangan ini melalui Analog-to-Digital Converter (ADC) beresolusi 10-
bit, sehingga rentang tegangan fisis direpresentasikan menjadi data poin diskrit:
𝐴𝐷𝐶𝑣𝑎𝑙𝑢𝑒 × 𝑉𝑟𝑒𝑓
𝑉𝑜𝑢𝑡 =
1023
Sensitivitas 𝑆𝑛𝑂2 sangat dipengaruhi oleh tingkat kelembaban lingkungan, sehingga dalam
kendali cerdas tingkat lanjut, data kelembaban dari DHT22 sering digunakan sebagai
kompensator pembacaan MQ-2.
c. Sensor Optik Api (IR Flame Sensor)
Berbeda dengan suhu dan asap yang menyebar melalui konveksi udara (membutuhkan
waktu), radiasi cahaya api merambat seketika. Modul sensor ini menggunakan fotodioda yang
dirancang secara spesifik untuk menangkap spektrum panjang gelombang inframerah yang
dipancarkan oleh hidrokarbon yang terbakar (umumnya pada rentang 760 nm - 1100 nm). Sinyal
analog dari fotodioda dikomparasikan oleh IC LM393 terhadap batas referensi (potensiometer),
menghasilkan sinyal digital murni (HIGH/LOW). Sensor ini mayoritas bersifat active-low, di mana
status LOW mengindikasikan adanya tangkapan spektrum api.
1.3.2 Fusi Data Sensor (Sensor Data Fusion) Tingkat Rendah
Fusi data adalah proses menggabungkan observasi dari berbagai sensor independen untuk
menghasilkan inferensi lingkungan yang lebih akurat dan dapat diandalkan dibandingkan jika
sensor bekerja secara individual.
Pada sistem ini, kita menerapkan Fusi Data Kombinatorial Berbasis Aturan (Rule-Based
Combinatorial Fusion). Sistem tidak akan memicu status bahaya darurat jika hanya sensor termal
yang mendeteksi kenaikan suhu, karena hal tersebut dapat diasumsikan sebagai perubahan cuaca.
Sistem hanya akan memvalidasi status kebakaran jika terjadi konvergensi data: Suhu ekstrem
(konfirmasi termal) $\cap$ Konsentrasi partikel asap tinggi (konfirmasi kimiawi) $\cap$ Deteksi
spektrum inframerah (konfirmasi optik). Fusi ini menciptakan sistem yang sangat toleran terhadap
anomali lingkungan sesaat.
1.3.3 Protokol Komunikasi I2C (Inter-Integrated Circuit)
Untuk memvisualisasikan data, praktikum ini menggunakan LCD 16x2. Secara
konvensional, LCD membutuhkan hingga 6 pin digital dari mikrokontroler. Untuk
mengoptimalkan ketersediaan pin antarmuka (I/O efficiency), digunakanlah modul PCF8574 yang
menerapkan protokol I2C. I2C beroperasi menggunakan arsitektur Master-Slave dengan dua jalur
utama:
o SDA (Serial Data Line): Jalur transmisi bit data dua arah.
o SCL (Serial Clock Line): Jalur sinkronisasi detak (clock) yang dihasilkan oleh Master
(Arduino)
Dengan protokol ini, pengalamatan (addressing) dilakukan melalui format heksadesimal
(misal: 0x27), memungkinkan sistem untuk mengirimkan string visual kompleks hanya
menggunakan 2 pin (A4 dan A5 pada Arduino Uno).
1.4 Koneksi
1.5 Kode Program Utama
1.6 SOAL TUGAS PRAKTIKUM 1
1.6.1 Tugas 1: Studi Kasus Kesalahan Hierarki Logika (Logic Flaw Analysis)
Modifikasi pemograman pada praktium ini dengan program berikut:
Soal: Jika terjadi kebakaran riil (suhu ekstrem, gas bocor, dan api terdeteksi secara
bersamaan), apakah program di atas akan berhasil menyalakan LED_MERAH dan menampilkan
status "BAHAYA: KEBAKARAN"? Jelaskan secara analitis letak kesalahan logika percabangan
if-else di atas, lalu perbaiki struktur kodenya agar State Machine berjalan dengan benar!
1.6.2 Tugas 2: Implementasi Ambang Batas Dinamis (Dynamic Thresholding)
Pada program utama, THRESHOLD_GAS ditetapkan secara statis pada nilai $400$.
Dalam kondisi nyata, saat suhu ruangan meningkat drastis (misal: di atas 400 𝐶), material sensor
gas cenderung menjadi lebih sensitif dan rawan menghasilkan alarm palsu.
Soal: Modifikasi program utama agar nilai ambang batas gas bersifat dinamis terhadap
parameter suhu! Kriterianya:
o Jika pembacaan suhu normal (di bawah 350 𝐶), maka ambang batas gas tetap 400.
o Jika suhu terdeteksi antara 350 𝐶 ℎ𝑖𝑛𝑔𝑔𝑎 4𝐶, naikkan ambang batas gas menjadi 450 untuk
mengompensasi sensitivitas.
o Tuliskan deklarasi variabel tambahan yang dibutuhkan dan tunjukkan modifikasi blok kodenya!
• KEGIATAN PRAKTIKUM 2: Sistem Pencahayaan Ruangan Adaptif & Efisiensi Energi
Berbasis Fusi Sensor LDR dan PIR
2.1 Tujuan Praktikum.
Setelah menyelesaikan modul ini, mahasiswa diharapkan mampu:
1. Menganalisis karakteristik pembacaan resistansi sensor LDR dan memetakannya
menjadi data point batas ambang (threshold) intensitas cahaya secara empiris.
2. Mengintegrasikan sensor LDR (analog) dan sensor PIR (digital) dengan aktuator
Relay mekanis untuk membentuk sistem otomasi saklar silang.
3. Mengevaluasi implementasi algoritma logika AND (AND-gate logic) sebagai
fundamental penghematan energi pada sistem otomasi bangunan.
4. Merancang mekanisme kompensasi penundaan waktu (software delay-off)
menggunakan timer non-blocking pada sensor gerak untuk mencegah osilasi aktuator
(chattering).
2.2 Alat dan Bahan
1. Trainer Kit Arduino R3
2. Cahaya LDR (Light Dependent Resistor)
3. Sensor Gerak PIR (HC-SR501)
4. Modul Relay 1-Channel (5V)
5. Kabel Jumper
2.3 Landasan Teori
Perancangan infrastruktur pintar yang berkelanjutan (sustainable smart infrastructure)
sangat bertumpu pada efisiensi konsumsi daya. Pada sistem pencahayaan konvensional, otomasi
sering kali hanya menggunakan sensor cahaya statis, yang menyebabkan lampu tetap menyala di
ruangan kosong selama kondisi gelap. Untuk mengatasi kelemahan tersebut, digunakan
pendekatan Sistem Kendali Cerdas melalui fusi sensor tingkat rendah (low-level sensor data
fusion) yang menggabungkan parameter pencahayaan lingkungan dan kehadiran manusia secara
riil.
2.3.1 Prinsip Otomasi Kontekstual (Demand-Driven Actuation)
Otomasi pencahayaan berbasis efisiensi energi menganut prinsip demand-driven actuation,
yaitu aktuator (relay/lampu) hanya akan diberikan daya jika dan hanya jika kondisi lingkungan
membutuhkan (gelap) DAN terdapat pengguna yang diuntungkan oleh daya tersebut (kehadiran
manusia). Pendekatan ini meminimalkan konsumsi energi laten—energi yang terbuang saat
perangkat aktif tanpa adanya fungsionalitas riil. Logika ini diturunkan melalui aljabar Boolean
konjungsi (Gerbang AND):
Status_lampu = kondisi_gelap ∙ kehadiran_manusia
2.3.2 Karakteristik LDR dan Rangkaian Pembagi Tegangan (Voltage Divider)
Light Dependent Resistor (LDR) adalah transduser fotoresisitis yang memanfaatkan
material semikonduktor seperti Kadmium Sulfida (CdS). Ketika foton cahaya mengenai
permukaan LDR, elektron valensi melompat ke pita konduksi, yang mengakibatkan nilai resistansi
(𝑅𝐿𝐷𝑅 ) menurun drastis (dari beberapa Mega-Ohm di kondisi gelap menjadi ratusan Ohm di
kondisi terang).
Karena Arduino tidak dapat membaca perubahan resistansi secara langsung, LDR harus
dirangkai dalam sirkuit pembagi tegangan (voltage divider) bersama resistor tetap (𝑅1 = 10 kOhm)
Tegangan luaran analog (𝑉𝑜𝑢𝑡 ) yang masuk ke penapis ADC 10-bit Arduino dirumuskan sebagai:
𝑅1
𝑉𝑜𝑢𝑡 = 𝑉𝑐𝑐 − 𝑅𝐿𝐷𝑅 + 𝑅1
Melalui interaksi ini, ketika ruangan semakin gelap, 𝑅𝐿𝐷𝑅 membesar, menyebabkan nilai
𝑉𝑜𝑢𝑡 mengecil. Nilai diskrit data poin analog yang dibaca oleh ADC (0 hingga 1023) akan
berbanding lurus dengan intensitas cahaya di sekitar sensor.
2.3.3 Karakteristik Sensor PIR (Passive Infrared) dan Eksitasi Termal
Sensor PIR (seperti tipe HC-SR501) bekerja dengan mendeteksi radiasi inframerah pasif
yang dipancarkan oleh objek bermassa termal, seperti tubuh manusia, yang memancarkan panjang
gelombang inframerah antara 9-10 mikrometer. Sensor ini dilengkapi dengan lensa Fresnel yang
membagi sudut pandang menjadi beberapa area fokus.
Ketika makluk hidup bergerak melintasi area pandang sensor, elemen piroelektrik di dalam
PIR menangkap perbedaan fluktuasi energi inframerah antar-zona secara bergantian. Sinyal
perubahan arus ini kemudian dikondisikan oleh IC komparator (BISS0001) di dalam modul sensor
untuk menghasilkan keluaran sinyal digital murni: HIGH (5 V) saat terdeteksi gerakan dinamis,
dan LOW (0 V) saat kondisi statis atau kosong.
2.3.4 Mekanisme Penjadwalan Waktu Non-Blocking (Software Delay-Off)
Secara arsitektur perangkat keras, sensor PIR memiliki keterbatasan yang disebut holding
time fisik, yaitu penguncian sinyal HIGH selama durasi tertentu (bisa diatur via potensiometer Tx
pada modul) sesaat setelah gerakan berhenti. Namun, dalam aplikasi kendali cerdas,
mengandalkan delay bawaan hardware memiliki kelemahan:
1. Sifat jeda waktu tidak presisi dan sulit diubah secara dinamis melalui algoritma.
2. Manusia di dalam ruangan sering kali melakukan gerakan mikro (seperti membaca atau
mengetik) yang tidak cukup kuat memicu eksitasi piroelektrik secara kontinu, sehingga sinyal
PIR sering mengalami drop ke LOW.
Untuk mengompensasi kelemahan fisik PIR dan menghindari efek chattering (saklar relai
berbunyi klik berulang-ulang akibat sinyal masukan yang berosilasi cepat), sistem kendali harus
mengimplementasikan fungsi penahanan waktu berbasis perangkat lunak (software delay-off).
Fungsi delay() bawaan Arduino bersifat blocking, artinya CPU akan dipaksa berhenti
mengeksekusi instruksi lain, termasuk menghentikan sampling data LDR. Guna menjaga sistem
tetap responsif (real-time), digunakanlah pendekatan timer non-blocking menggunakan fungsi
millis().
Setiap kali sensor PIR mendeteksi gerakan (HIGH), variabel penanda waktuTerakhirGerak
diisi dengan representasi waktu internal sistem saat itu. Ketika gerakan hilang, sistem menciptakan
jendela validasi waktu (time windowing) secara dinamis selama 10 detik:
∆𝑡 = 𝑤𝑎𝑘𝑡𝑢𝑆𝑒𝑘𝑎𝑟𝑎𝑛𝑔 − 𝑤𝑎𝑘𝑡𝑢𝑇𝑒𝑟𝑎𝑘ℎ𝑖𝑟𝐺𝑒𝑟𝑎𝑘
Selama nilai ∆𝑡 ≤ 10000𝑚𝑠, status lampu dipaksa tetap bertahan ON (dengan catatan
kondisi LDR tetap gelap). Jika ada gerakan baru sebelum batas 10 detik berakhir, nilai
waktuTerakhirGerak diperbarui lagi ke titik nol yang baru (dynamic reset). Logika komputasi
inilah yang menjamin kontinuitas penyaluran daya pada beban secara cerdas tanpa interupsi
noise.
2.4 Koneksi
2.5 Kode program Utama
2.6 Soal Tugas Praktikum 2
2.6.1 Tugas 1: Mengatasi Masalah Chattering dengan Algoritma Histeresis Dua Titik
Latar Belakang Masalah: Pada program utama, transisi antara kondisi "Terang" dan
"Gelap" dipisahkan oleh satu nilai ambang batas statis, yaitu THRESHOLD_GELAP = 400.
Ketika waktu senja tiba atau kondisi awan mendung transisional, intensitas cahaya ruangan akan
berosilasi di sekitar nilai tersebut (misalnya membaca nilai 399, 401, 399, 401 secara cepat akibat
noise pembacaan sensor). Jika pada saat yang sama sensor PIR mendeteksi ada orang, relai
mekanis akan mengalami chattering (saklar hidup-mati berulang kali dalam fraksi detik), yang
berpotensi merusak perangkat keras lampu dan relai itu sendiri.
Instruksi Tugas:
1. Modifikasi blok evaluasi logika fusi pada program utama dengan menerapkan prinsip Histeresis
(dua titik ambang batas).
2. Tentukan aturan baru: Lampu hanya boleh menyala jika nilai LDR turun di bawah 380
(Ambang Batas Aktivasi), dan lampu baru diizinkan mati jika nilai LDR naik melampaui 430
(Ambang Batas Deaktivasi).
3. Tunjukkan sintaks program hasil modifikasi Anda dan jelaskan bagaimana variabel state lampu
sebelumnya (previous state tracking) digunakan untuk mempertahankan kondisi saklar di dalam
rentang dead-band (380 - 430).
2.6.2 Tugas 2: Implementasi Mode "Presentation Overriding" (State Machine Lanjutan)
Latar Belakang Masalah: Dalam pemakaian ruang kelas pintar di universitas, terdapat
skenario di mana dosen harus mematikan lampu ruangan secara total untuk keperluan presentasi
menggunakan proyektor/proinfokus, meskipun kondisi ruangan saat itu gelap dan mahasiswa
bergerak aktif di dalamnya. Sistem pencahayaan adaptif saat ini belum mengakomodasi kebutuhan
intervensi manusia tersebut.
Instruksi Tugas:
1. Tambahkan komponen Push-Button virtual (simulasikan pada Pin Digital 3 Arduino) sebagai
tombol Manual Override.
2. Modifikasi arsitektur kode Anda menjadi berbasis Finite State Machine (FSM) yang memiliki
2 Mode Operasi:
o State 0 (Mode AUTO): Sistem berjalan normal menggunakan fusi sensor LDR dan PIR
dengan penahanan waktu 10 detik (sesuai kode utama).
o State 1 (Mode PRESENTASI): Lampu dipaksa mati total (Relay = HIGH) tanpa
memedulikan data poin dari LDR maupun PIR.
3. Transisi antara Mode AUTO dan Mode PRESENTASI harus dipicu melalui penekanan push-
button tersebut. Pastikan Anda mengimplementasikan algoritma software debouncing pada
pembacaan tombol agar perpindahan state tidak mengalami gangguan akibat efek bouncing
mekanis tombol.
• Kegiatan Praktikum 3: Sistem Penghitung Otomatis dan Quality Control Objek pada
Konveyor Berbasis Edge Detection dan Multiplexing Tujuan Praktikum
3.1 TUJUAN PRAKTIKUM
Setelah menyelesaikan modul ini, mahasiswa diharapkan mampu:
1. Menganalisis karakteristik sinyal digital untuk merancang algoritma deteksi transisi
fasa (falling/rising edge detection) pada objek bergerak berkecepatan tinggi melintasi
sensor optik.
2. Membangun algoritma software debouncing berbasis pewaktuan (timer non-blocking)
untuk mereduksi efek osilasi mekanis (switch bouncing) pada saklar push button tanpa
mengganggu eksekusi program utama.
3. Mengintegrasikan metode multiplexing visual pada 7-Segment Display multi-digit
guna mengoptimalkan pemakaian pin I/O pada mikrokontroler.
4. Mengevaluasi perbedaan keandalan antara arsitektur pemrograman berbasis level-
triggered (mendeteksi level sinyal) dengan edge-triggered (mendeteksi perubahan
sinyal) dalam kasus penghitungan jumlah barang
3.2 Alat dan Bahan
1. Trainer Kit Arduino R3
2. Sensor Infrared (IR) Obstacle/Proximity (Modul FC-51 atau sejenis)
3. 7 Segement 4 digit
4. Saklar Push Button (Tactile Switch)
5. Kabel Jumper
3.3 LANDASAN TEORI
Pada otomasi industri modern seperti sistem ban berjalan (conveyor belt), keandalan sistem
penghitung barang (counting system) tidak hanya diukur dari akurasi sensor, tetapi juga dari
ketahanan algoritma terhadap gangguan (noise) perangkat keras. Pemrosesan sinyal digital
(Digital Signal Processing) tingkat dasar membutuhkan pemahaman mengenai transisi sinyal,
waktu stabilisasi mekanis, serta efisiensi arsitektur komunikasi mikroprosesor.
3.3.1 Karakteristik Sinyal dan Algoritma Deteksi Transisi (Edge Detection)
Sensor Infrared (IR) tipe proksimitas beroperasi berdasarkan pantulan spektrum
inframerah. Fotodioda pada modul menangkap intensitas pantulan cahaya, yang kemudian
dikonversi oleh IC Komparator (seperti LM393) menjadi sinyal digital murni. Modul ini bersifat
active-low, yang berarti dalam kondisi statis (tanpa objek) sensor mengeluarkan logika HIGH,
dan saat mendeteksi objek, keluaran berubah menjadi LOW
Dalam perancangan sistem penghitung, pendekatan logika statis (Level-Triggered) akan
menyebabkan kesalahan fatal (double-counting). Jika program hanya membaca kondisi "selama
sinyal bernilai LOW, maka hitung", sebuah kotak barang berukuran panjang yang melintas
perlahan akan dihitung berulang kali selama kotak tersebut masih menutupi sensor.
Untuk mengatasi ini, diterapkan algoritma Edge Detection (Deteksi Tepi/Transisi). Sistem
tidak mendeteksi keberadaan sinyal, melainkan mendeteksi momen perubahan sinyal:
o Falling Edge (Transisi Turun): Momen presisi dalam fraksi milidetik saat sinyal
berubah drastis dari HIGH menuju LOW. Ini menandakan "tepi depan" objek baru
saja memotong sensor.
o Rising Edge (Transisi Naik): Momen perubahan dari LOW kembali ke HIGH. Ini
menandakan objek telah berlalu dan sensor kembali melihat ruang kosong.
3.3.2 Efek Osilasi Mekanis (Switch Bouncing) dan Software Debouncing
Masukan manual pada sistem industri sering kali melibatkan saklar mekanis (push button).
Komponen mekanis ini terbuat dari pelat logam yang sangat elastis. Ketika pelat tersebut ditekan
hingga menutup sirkuit, kontak fisik tidak langsung tertutup secara sempurna dan instan. Pada
skala mikroskopis, pelat tersebut memantul (bouncing) beberapa kali sebelum akhirnya mencapai
fase stabil (steady state).
Osilasi mekanis ini umumnya berlangsung sangat singkat, sekitar 10 ms hingga 50 ms.
Namun, bagi unit pemroses sentral (CPU) seperti mikrokontroler Arduino yang bekerja pada
kecepatan komputasi komando 16 MHz (mengeksekusi jutaan instruksi per detik), pantulan
tersebut tidak terbaca sebagai satu kali penekanan, melainkan sebagai puluhan kali logika masukan
yang berosilasi cepat.
Untuk mencegah sistem merespons interupsi palsu ini, diterapkan teknik komputasi
Software Debouncing. Algoritma ini membangun jendela waktu isolasi (time windowing)
menggunakan fungsi penanda waktu non-blocking (millis()). Ketika deteksi awal penekanan
terjadi, program akan "menahan" pengesahan logika tersebut dan mengabaikan fluktuasi sinyal
berikutnya, hingga sinyal terbukti tetap stabil dalam satu logika yang sama melewati ambang batas
waktu penyaringan (misal: 50 ms).
3.3.3 Komunikasi Serial Asinkron dan Hardware Offloading (IC TM1637)
Secara tradisional, mengontrol modul layar 7-segment 4-digit membutuhkan teknik
Multiplexing secara manual. Hal ini mengharuskan mikrokontroler menggunakan banyak pin
Input/Output (I/O) dan memaksa CPU untuk terus-menerus melakukan siklus penyegaran tampilan
(refreshing) pada kecepatan tinggi (high-speed cyclic scanning) agar mata manusia tidak melihat
efek berkedip (flicker). Pendekatan ini sangat membebani siklus kerja CPU (CPU intensive).
Pada praktikum ini, kita memperkenalkan konsep Hardware Offloading—sebuah teknik
pendelegasian beban komputasi tingkat rendah kepada perangkat keras sekunder yang lebih
terspesialisasi (Application-Specific Integrated Circuit atau ASIC), dalam hal ini adalah IC
TM1637.
Dengan kehadiran cip driver tersebut, mikrokontroler dibebaskan dari tugas multiplexing.
Arduino hanya perlu mengirimkan deretan paket data (data points) ke layar melalui protokol
komunikasi serial dua kabel (Two-Wire Serial Communication):
o Jalur CLK (Clock): Sinyal detak yang dikirimkan oleh mikrokontroler utama untuk
mensinkronkan ketepatan waktu transmisi setiap bit data.
o Jalur DIO (Data In/Out): Jalur transportasi paket data aktual yang berisi informasi
heksadesimal mengenai segmen mana yang harus dinyalakan.
Arsitektur sistem yang didelegasikan ini memungkinkan mikrokontroler untuk menghemat
sumber daya resource dan mengalokasikan memori serta siklus prosesor secara penuh pada fungsi
otomasi utama yang lebih kritis, yaitu evaluasi algoritma Edge Detection dari objek yang bergerak
cepat di atas lintasan.
3.4 Koneksi
3.5 Kode Program Utama
3.6 Soal Tugas Praktikum 3
3.6.1 Tugas 1: Sistem Peringatan Dini Kemacetan Konveyor (Stall/Jamming Detection)
Latar Belakang Masalah: Masalah terbesar pada satu sensor tunggal di konveyor adalah
mendeteksi ketika motor konveyor tiba-tiba macet atau ada barang yang tersangkut tepat di depan
sensor. Jika barang berhenti di depan sensor, program Edge Detection biasa akan menganggap
tidak ada aktivitas baru, padahal sistem sedang dalam kondisi bahaya (stalled).
Instruksi Tugas:
1. Rancang sebuah fungsi pengawas (Watchdog Timer sederhana) menggunakan millis().
2. ika sensor IR membaca logika LOW secara terus-menerus dan durasinya melampaui 3000 ms
(3 detik), sistem harus mengonfirmasi bahwa telah terjadi kemacetan (Jamming/Stall).
3. Ketika kondisi Jamming terkonfirmasi, perintahkan layar TM1637 untuk mengunci
perhitungan dan menampilkan tulisan flash berkedip "STOP" (Gunakan array byte
heksadesimal secara manual untuk karakter S, T, O, P).
4. Status "STOP" ini hanya bisa dihilangkan jika operator telah membersihkan lintasan dan
menekan Push Button untuk melakukan Reset/Resume.
3.6.2 3.6.2 Tugas 2: Analisis Batas Kecepatan Sampling (Nyquist Theorem & Debounce
Time Limits)
Latar Belakang Masalah: Dalam otomasi industri yang riil, mendeteksi kemacetan
(jamming) melalui sensor IR dan menampilkannya di layar 7-Segment belumlah cukup. Jika terjadi
kemacetan fisik pada lintasan, motor penggerak konveyor yang terus menyala akan mengalami
kelebihan beban mekanis (mechanical overload) dan berpotensi terbakar. Selain itu, pekerja pabrik
di kejauhan membutuhkan indikator visual yang besar dan jelas (dikenal sebagai sistem Andon)
untuk mengetahui status mesin tanpa harus mendekat ke layar penunjuk angka.
Instruksi Tugas:
1. Definisikan Pin I/O Baru: Lakukan pelacakan jalur (tracing) pada papan Trainer Kit Anda
untuk mengetahui pin Arduino mana yang terhubung ke modul Relay dan LED Traffic Light.
Deklarasikan pin-pin tersebut di bagian atas program Anda!
2. Modifikasi State Machine Aktuator: Integrasikan logika pengendalian perangkat keras keras ini
ke dalam State Machine yang telah Anda buat pada Tugas 1 dan Tugas 2 dengan aturan
interlocking berikut:
o State NORMAL (Konveyor Berjalan): Relay berada pada kondisi ON (menyalakan
motor), LED Hijau menyala, LED lainnya mati.
o State PAUSE (Ditekan Manual): Relay berada pada kondisi OFF (mematikan motor
agar konveyor berhenti), LED Kuning menyala stabil, LED lainnya mati.
o State EMERGENCY / JAMMING (Barang tersangkut > 3 detik): Relay dipaksa OFF
secara darurat, dan LED Merah berkedip (blinking) secara terus-menerus menggunakan
interval $250\text{ ms}$ (Gunakan millis(), dilarang menggunakan delay()).
3. Analisis Fail-Safe: Pada umumnya, modul Relay pada Trainer Kit bersifat Active-Low (Logika
LOW akan menyalakan Relay, HIGH mematikan). Jelaskan dalam laporan Anda, mengapa
dalam mendesain sistem pengaman mekanis (safety interlock), logika Active-Low pada saklar
pemutus daya dianggap lebih aman ( fail-safe) jika sewaktu-waktu terjadi kabel mikrokontroler
yang terputus mendadak!