Simulasi Counter Digital
Menggunakan Push Button dan 7-Segment Berbasis Arduino
Disusun Oleh:
Muhammad Adrian Vibrianto 24051204124
Mohammad Rizqi Nova Triatmaja 24051204131
Adhim Musafak 24051204191
M. Faisal Alfiansyah 24051204205
BAB I
PENDAHULUAN
1.1 Latar
Belakang
Mikrokontroler
merupakan salah satu komponen penting dalam sistem elektronika karena dapat
digunakan untuk menerima masukan, mengolah data, dan menghasilkan keluaran
sesuai dengan program yang diberikan. Salah satu mikrokontroler yang banyak
digunakan dalam pembelajaran adalah Arduino Uno. Arduino Uno memiliki pin
digital yang dapat digunakan sebagai input maupun output sehingga sesuai untuk
mempelajari konsep dasar input dan output digital. Arduino Uno berbasis
mikrokontroler ATmega328P dan memiliki 14 pin digital input/output serta 6 pin
input analog (Arduino, n.d.).
Salah satu
bentuk penerapan input dan output digital adalah penggunaan push button
sebagai masukan dan seven-segment display sebagai keluaran. Push
button dapat digunakan untuk memberikan sinyal digital berupa kondisi
ditekan atau tidak ditekan. Sinyal tersebut kemudian dibaca oleh Arduino dan
diproses untuk menentukan nilai yang akan ditampilkan. Seven-segment display
digunakan untuk menampilkan angka dalam bentuk yang lebih mudah dibaca.
Penggunaan Arduino Uno bersama push button dan seven-segment display
juga telah diterapkan pada berbagai media pembelajaran mikrokontroler dan
sistem digital (Hidayati et al., 2017; Dwiyanto & Setya W., 2025).
Pada
materi perkuliahan sebelumnya, konsep digital input dan output dijelaskan
melalui hubungan antara masukan dan keluaran pada mikrokontroler. Salah satu
contoh yang diberikan adalah penggunaan tombol sebagai input dan counter
pada 7-segment sebagai output. Konsep tersebut dapat diterapkan dalam bentuk
simulasi menggunakan Wokwi, sehingga rangkaian dan program dapat diuji tanpa
harus menggunakan perangkat keras secara langsung. Simulasi ini memungkinkan
mahasiswa untuk memahami hubungan antara perangkat input, proses pengolahan
pada Arduino, dan perangkat output.
Berdasarkan
hal tersebut, pada tugas ini dibuat simulasi Counter Digital Menggunakan Push
Button dan 7-Segment Berbasis Arduino. Sistem dirancang agar setiap penekanan push
button dapat mengubah nilai penghitung dan menampilkannya pada seven-segment
display. Pembuatan simulasi diharapkan dapat membantu memahami penerapan
konsep input dan output digital yang telah dipelajari sekaligus memberikan
pengalaman dalam merancang rangkaian dan program mikrokontroler.
1.2
Rumusan Masalah
Berdasarkan
latar belakang tersebut, rumusan masalah dalam laporan ini adalah:
- Bagaimana merancang simulasi counter
digital menggunakan push button dan seven-segment display
berbasis Arduino pada Wokwi?
- Bagaimana cara kerja push
button sebagai input dan seven-segment display sebagai output
dalam sistem counter digital?
1.3 Tujuan
Laporan
Tujuan
dari pembuatan laporan ini adalah:
- Membuat simulasi counter
digital menggunakan push button dan seven-segment display
berbasis Arduino pada Wokwi.
- Menerapkan konsep input dan
output digital yang telah dipelajari pada pertemuan sebelumnya.
- Memahami proses pembacaan
input dari push button, pengolahan data oleh Arduino, dan
penampilan hasil pada seven-segment display.
- Menguji kerja rangkaian dan
program melalui simulasi Wokwi.
1.4
Manfaat Penulisan
Manfaat
yang diharapkan dari pembuatan laporan ini adalah:
- Bagi mahasiswa, memberikan
pemahaman yang lebih baik mengenai konsep input dan output digital pada
mikrokontroler.
- Bagi pembelajaran, memberikan
contoh sederhana penerapan Arduino Uno, push button, dan seven-segment
display dalam sistem digital.
- Bagi pengembangan
keterampilan, melatih kemampuan dalam merancang rangkaian, membuat program
Arduino, dan melakukan pengujian melalui simulasi Wokwi.
- Bagi pembaca, dapat menjadi
referensi sederhana untuk memahami penerapan counter digital
berbasis Arduino.
BAB II
TINJAUAN PUSTAKA
2.1 Dasar
Teori
2.1.1
Sistem Counter Digital
Counter
(pencacah) digital merupakan salah satu rangkaian logika sekuensial yang
berfungsi untuk menghitung jumlah pulsa masukan (input) yang diterima, baik
secara up-counting (menghitung naik) maupun down-counting (menghitung turun).
Dalam sistem terbenam (embedded system), pencacah digital memanfaatkan sinyal
pemicu (trigger) berupa perubahan kondisi logika tinggi (HIGH) atau rendah
(LOW) pada pin masukan mikrokontroler. Sinyal pemicu ini umumnya dihasilkan
oleh sakelar mekanis seperti push button. Jumlah hitungan kemudian diproses
oleh unit pemroses utama dan dikonversikan ke dalam kode biner atau bentuk BCD
(Binary Coded Decimal) sebelum ditampilkan pada layar peraga (display).
2.1.2
Mikrokontroler dan Sistem Terbenam
Mikrokontroler
adalah sebuah sistem komputer mini terpadu yang berada di dalam satu keping
sirkuit terpadu (Integrated Circuit / IC). Mikrokontroler terdiri atas Unit
Pemroses Sentral (CPU), memori (RAM, ROM/Flash), serta antarmuka
masukan/keluaran (Input/Output / IO). Sistem terbenam memanfaatkan
mikrokontroler untuk menjalankan tugas-tugas spesifik secara otomatis dan
real-time. Keunggulan penggunaan mikrokontroler terletak pada efisiensi daya,
fleksibilitas pemograman, dan kemudahannya dalam dihubungkan dengan berbagai
komponen peranti keras eksternal.
2.1.3
Teknik Debouncing pada Masukan Mekanis
Masukan
mekanis seperti tombol tekan (push button) sering kali mengalami fenomena
contact bounce atau chattering. Fenomena ini terjadi akibat kontak mekanis di
dalam tombol yang membal secara berulang dalam kurun waktu beberapa milidetik
saat ditekan atau dilepaskan. Jika tidak ditangani, mikrokontroler akan
menganggap balikan tersebut sebagai beberapa kali penekanan tombol secara
beruntun. Untuk mengatasi masalah ini, digunakan teknik debouncing, baik secara
peranti keras (menggunakan kapasitor atau filter) maupun secara peranti lunak
(delay atau pembacaan pewaktu millis pada program).
2.2
Komponen dan Perangkat Utama
2.2.1
Arduino Uno
Arduino
Uno adalah papan pengembang (development board) berbasis mikrokontroler
Microchip ATmega328P. Arduino Uno memiliki 14 pin masukan/keluaran digital (di
mana 6 di antaranya dapat digunakan sebagai keluaran PWM), 6 pin masukan
analog, kristal osilator 16 MHz, koneksi USB, serta soket daya. Papan ini
menggunakan bahasa pemrograman berbasis C/C++ yang disederhanakan dan didukung
oleh Integrated Development Environment (IDE) berbasis sumber terbuka
(open-source), sehingga memudahkan pengembangan dan simulasi sistem elektronika
terintegrasi.
2.2.2
Tampilan 7-Segment (Seven-Segment Display)
Peraga
7-segment adalah komponen elektronik yang berfungsi menampilkan angka desimal
dan beberapa karakter alfabet sederhana. Komponen ini terdiri dari 7 LED utama
yang disusun membentuk angka '8' (diberi label a, b, c, d, e, f, g) serta 1 LED
tambahan untuk titik desimal (Decimal Point / DP). Secara garis besar, peraga
7-segment terbagi menjadi dua jenis konfigurasi:
- Common Anode (Anoda Bersama):
Seluruh kaki anoda (kutub positif) dari LED dihubungkan bersama ke sumber
tegangan VCC, sedangkan kaki katoda (kutub negatif) dihubungkan ke pin
keluaran mikrokontroler melalui resistor pembatas arus. LED akan menyala
ketika pin keluaran berada pada logika rendah (LOW).
- Common Cathode (Katoda
Bersama): Seluruh kaki katoda dari LED dihubungkan bersama ke titik ground
(GND), sedangkan kaki anoda dihubungkan ke pin keluaran mikrokontroler.
LED akan menyala ketika pin keluaran berada pada logika tinggi (HIGH).
2.2.3 Push
Button
Push
button merupakan sakelar tekan sederhana yang berfungsi untuk menghubungkan
atau memutuskan aliran arus listrik secara sementara ketika tombol ditekan.
Pada rangkaian masukan mikrokontroler, push button biasanya dikombinasikan
dengan konfigurasi resistor pull-up atau pull-down (baik internal
mikrokontroler maupun eksternal) untuk memastikan pin masukan memiliki tingkat
tegangan logika yang pasti (HIGH atau LOW) saat tombol tidak ditekan.
2.2.4
Resistor
Resistor
adalah komponen pasif elektronika yang berfungsi memberikan hambatan terhadap
aliran arus listrik dalam suatu rangkaian. Dalam aplikasi peraga 7-segment dan
push button, resistor memiliki dua peran mendasar:
- Resistor Pembatas Arus
(Current Limiting Resistor): Dipasang seri dengan LED pada 7-segment untuk
mencegah arus berlebih yang dapat merusak komponen LED maupun pin
mikrokontroler.
- Resistor Pull-Up / Pull-Down:
Digunakan untuk menjaga kepastian status logika pada pin masukan
mikrokontroler saat push button mengambang (floating).
2.2.5
Perangkat Lunak Simulasi (Proteus / Wokwi / Tinkercad)
Untuk
mempermudah verifikasi dan pengujian rangkaian sebelum implementasi fisik,
digunakan perangkat lunak simulasi sirkuit elektronik. Platform simulasi
seperti Tinkercad, Proteus, atau Wokwi memungkinkan perancangan tata letak
komponen, skema pengabelan (wiring), serta pengunggahan kode program (sketch)
untuk menguji fungsi counter secara interaktif.
BAB III
PEMBAHASAN
3.1
Penjelasan Simulasi
Simulasi
yang dibuat pada tugas ini merupakan sistem counter digital menggunakan push
button dan seven-segment display berbasis Arduino Uno. Sistem dirancang untuk
menerapkan konsep input dan output digital, yaitu push button digunakan sebagai
perangkat masukan (input), Arduino Uno sebagai perangkat pemroses, dan
seven-segment display sebagai perangkat keluaran (output).
Simulasi
dilakukan menggunakan platform Wokwi. Penggunaan Wokwi memungkinkan rangkaian
elektronik dan program Arduino diuji secara virtual tanpa harus menggunakan
perangkat keras secara langsung. Melalui simulasi ini, proses pembacaan input
dari push button, pengolahan data oleh Arduino, hingga penampilan nilai counter
pada seven-segment dapat diamati secara langsung.
Prinsip
kerja sistem dimulai ketika push button berada dalam kondisi tidak ditekan.
Arduino membaca kondisi tersebut sebagai kondisi awal pada pin input. Ketika
tombol ditekan, terjadi perubahan kondisi logika pada pin input Arduino.
Perubahan tersebut kemudian digunakan sebagai pemicu untuk menambah nilai
counter.
Nilai
counter disimpan dan diproses oleh program Arduino. Setiap satu penekanan
tombol akan menyebabkan nilai counter bertambah satu angka. Nilai tersebut
kemudian diterjemahkan oleh program menjadi kombinasi kondisi HIGH dan LOW pada
pin-pin digital yang terhubung dengan segment a, b, c, d, e, f, dan g pada
seven-segment display.
Seven-segment
kemudian menampilkan angka sesuai dengan nilai counter yang sedang tersimpan.
Dengan demikian, hubungan kerja sistem dapat digambarkan sebagai:
Push
Button → Arduino Uno → Pemrosesan Counter → Seven-Segment Display
Sebagai
contoh, ketika nilai awal counter adalah 0, seven-segment menampilkan angka 0.
Ketika push button ditekan satu kali, nilai counter berubah menjadi 1, sehingga
seven-segment menampilkan angka 1. Penekanan berikutnya menyebabkan nilai
berubah menjadi 2, kemudian 3, dan seterusnya.
Pada
simulasi ini, push button berfungsi sebagai sumber pulsa atau trigger untuk
proses pencacahan. Hal ini sesuai dengan konsep counter digital yang
menggunakan perubahan kondisi logika sebagai pemicu proses penghitungan.
Selain
proses pencacahan, program juga perlu memperhatikan kemungkinan terjadinya contact
bounce pada push button. Contact bounce merupakan kondisi ketika kontak
mekanis pada tombol mengalami perubahan kondisi secara berulang dalam waktu
yang sangat singkat ketika tombol ditekan atau dilepas. Apabila tidak
ditangani, satu kali penekanan tombol dapat terbaca sebagai beberapa kali
penekanan oleh Arduino. Oleh karena itu, program dapat menerapkan teknik debouncing
untuk memastikan satu penekanan tombol dihitung sebagai satu kenaikan nilai
counter.
Secara
keseluruhan, simulasi ini menunjukkan penerapan sederhana sistem digital
berbasis mikrokontroler. Input berupa tindakan pengguna diterima melalui push
button, kemudian diproses oleh Arduino Uno, dan hasil pemrosesan ditampilkan
melalui seven-segment display.
3.2
Konfigurasi Rangkaian
Konfigurasi
rangkaian pada simulasi terdiri atas beberapa komponen utama, yaitu Arduino
Uno, push button, seven-segment display, dan resistor. Setiap komponen memiliki
fungsi yang berbeda dan saling terhubung untuk membentuk sistem counter
digital.
Arduino
Uno digunakan sebagai pusat pengendali sistem. Arduino Uno berbasis
mikrokontroler ATmega328P dan memiliki pin digital yang dapat dikonfigurasikan
sebagai input maupun output. Pada simulasi ini, salah satu pin digital
digunakan untuk membaca kondisi push button, sedangkan beberapa pin digital
lainnya digunakan untuk mengendalikan segment pada seven-segment display.
Push
button digunakan sebagai perangkat input. Tombol memberikan dua kondisi logika,
yaitu ditekan dan tidak ditekan. Kondisi tersebut dibaca oleh Arduino melalui
salah satu pin digital. Agar kondisi input memiliki nilai logika yang pasti dan
tidak berada pada kondisi floating, push button digunakan dengan
konfigurasi resistor pull-up atau pull-down.
Seven-segment
display digunakan sebagai perangkat output untuk menampilkan angka hasil
pencacahan. Komponen ini memiliki tujuh LED utama yang diberi label a, b, c, d,
e, f, dan g. Kombinasi penyalaan ketujuh segment tersebut digunakan untuk
membentuk angka 0 sampai 9.
Pada
konfigurasi seven-segment, jenis display yang digunakan perlu diperhatikan
karena terdapat dua konfigurasi utama, yaitu common anode dan common cathode.
Pada common anode, anoda LED terhubung bersama ke VCC dan LED menyala ketika
pin segment diberikan logika LOW. Sedangkan pada common cathode, katoda LED
terhubung bersama ke GND dan LED menyala ketika pin segment diberikan logika
HIGH.
Setiap
segment seven-segment perlu diberikan resistor pembatas arus. Resistor
berfungsi untuk membatasi arus listrik yang mengalir melalui LED sehingga dapat
mencegah arus berlebih yang berpotensi merusak LED maupun pin mikrokontroler.
Konfigurasi
hubungan komponen pada simulasi dapat dijelaskan sebagai berikut:
|
KOMPONEN |
HUBUNGAN/FUNGSI |
|
Arduino
Uno |
Sebagai
pusat pengendali dan pemroses data |
|
Push
Button |
Sebagai
input untuk memberikan perintah penambahan counter |
|
Seven-Segment |
Sebagai
Output untuk menampilkan nilai counter |
|
Resistor |
Membatasi
arus pada seven-segment dan menjaga kondisi logika input |
|
GND |
Sebagai
refrensi tegangan rangkaian |
|
VCC/5V |
Sebagai
sumber tegangan komponen yang membutuhkan suplai |
3.3
Program
Program
Arduino digunakan untuk mengatur seluruh proses pembacaan push button,
penghitungan nilai counter, dan pengendalian seven-segment display. Program
dibuat menggunakan bahasa pemrograman Arduino yang berbasis C/C++.
Secara
umum, program terdiri atas beberapa bagian, yaitu deklarasi pin, deklarasi
variabel counter, konfigurasi awal pada fungsi setup(), serta proses pembacaan
tombol dan pembaruan tampilan pada fungsi loop().
Contoh
program yang digunakan dalam simulasi adalah sebagai berikut:
|
// Pin untuk segment a, b, c, d, e, f, g int segmentPins[] = {2, 3, 4, 5, 6, 7,
8}; //Pin push button int buttonPin = 9; // Variabel counter int counter = 0; // Menyimpan kondisi tombol
sebelumnya int lastButtonState = HIGH; // Pola angka 0-9 untuk 7-segment common
cathode byte angka[10][7] = { {1, 1, 1, 1, 1, 1, 0}, // 0 {0, 1, 1, 0, 0, 0, 0}, // 1 {1, 1, 0, 1, 1, 0, 1}, // 2 {1, 1, 1, 1, 0, 0, 1}, // 3 {0, 1, 1, 0, 0, 1, 1}, // 4 {1, 0, 1, 1, 0, 1, 1}, // 5 {1, 0, 1, 1, 1, 1, 1}, // 6 {1, 1, 1, 0, 0, 0, 0}, // 7 {1, 1, 1, 1, 1, 1, 1}, // 8 {1, 1, 1, 1, 0, 1, 1} // 9 }; void setup() { // Mengatur pin segment sebagai
output for (int i = 0; i < 7; i++) { pinMode(segmentPins[i],
OUTPUT); } // Mengatur push button sebagai input
pull-up pinMode(buttonPin, INPUT_PULLUP); // Menampilkan nilai awal tampilkanAngka(counter); } void loop() { int buttonState = digitalRead(buttonPin); // Mendeteksi tombol baru saja
ditekan if (lastButtonState == HIGH &&
buttonState == LOW) { counter++; // Kembali ke 0 setelah angka 9 if (counter > 9) { counter = 0; } tampilkanAngka(counter); // Debouncing sederhana delay(200); } lastButtonState = buttonState; } void tampilkanAngka(int angkaCounter) { for (int i = 0; i < 7; i++) { digitalWrite(segmentPins[i],
angka[angkaCounter][i]); } } |
3.3.1
Penjelasan Program
Bagian
pertama program digunakan untuk menentukan pin Arduino yang terhubung dengan
masing-masing segment seven-segment.
int
segmentPins[] = {2, 3, 4, 5, 6, 7, 8};
Array
tersebut menyimpan nomor pin digital Arduino yang digunakan untuk mengontrol
segment a sampai g. Dengan menggunakan array, pengendalian tujuh segment dapat
dilakukan menggunakan perulangan sehingga program menjadi lebih sederhana.
Selanjutnya,
pin push button ditentukan menggunakan:
int
buttonPin = 9;
Pin 9
digunakan sebagai input untuk membaca kondisi tombol.
Variabel
counter digunakan untuk menyimpan nilai pencacahan:
int
counter = 0;
Nilai awal
counter ditetapkan menjadi 0. Setiap kali tombol ditekan, nilai tersebut akan
bertambah satu.
Program
juga menyimpan kondisi tombol sebelumnya melalui variabel:
int
lastButtonState = HIGH;
Variabel
ini digunakan untuk mendeteksi perubahan kondisi tombol dari HIGH menjadi LOW.
Dengan cara tersebut, program tidak hanya membaca apakah tombol sedang ditekan,
tetapi mendeteksi kejadian ketika tombol mulai ditekan.
Bagian
array angka berisi pola penyalaan segment untuk angka 0 sampai 9. Setiap baris
mewakili satu angka, sedangkan tujuh nilai di dalamnya masing-masing mewakili
segment a, b, c, d, e, f, dan g.
Sebagai
contoh:
{1, 1, 1,
1, 1, 1, 0} // 0
Pola
tersebut menunjukkan bahwa segment a sampai f dinyalakan, sedangkan segment g
dimatikan sehingga menghasilkan tampilan angka 0.
Pada
fungsi setup(), pin-pin seven-segment dikonfigurasikan sebagai output
menggunakan pinMode():
for (int i
= 0; i < 7; i++) {
pinMode(segmentPins[i],
OUTPUT);
}
Sementara
itu, push button dikonfigurasikan sebagai input dengan internal pull-up:
pinMode(buttonPin,
INPUT_PULLUP);
Konfigurasi
INPUT_PULLUP membuat kondisi normal tombol berada pada logika HIGH. Ketika
tombol ditekan dan terhubung ke GND, kondisi input berubah menjadi LOW.
Pada
fungsi loop(), kondisi push button dibaca menggunakan:
int
buttonState = digitalRead(buttonPin);
Program
kemudian memeriksa perubahan kondisi dari HIGH menjadi LOW:
if
(lastButtonState == HIGH && buttonState == LOW)
Jika
kondisi tersebut terpenuhi, berarti tombol baru saja ditekan. Counter kemudian
dinaikkan satu:
counter++;
Agar
sistem hanya menampilkan angka 0 sampai 9, program memeriksa apakah nilai
counter telah melebihi 9:
if
(counter > 9) {
counter
= 0;
}
Dengan
demikian, urutan pencacahan menjadi:
0 → 1 → 2
→ 3 → 4 → 5 → 6 → 7 → 8 → 9 → 0 → ...
Setelah
nilai counter berubah, fungsi tampilkanAngka() dipanggil untuk memperbarui
tampilan seven-segment:
tampilkanAngka(counter);
Fungsi
tersebut mengatur kondisi masing-masing segment berdasarkan pola angka yang
terdapat pada array angka.
Bagian:
for (int i
= 0; i < 7; i++) {
digitalWrite(segmentPins[i],
angka[angkaCounter][i]);
}
digunakan
untuk mengirimkan nilai HIGH atau LOW ke masing-masing pin segment Arduino.
Program
juga menggunakan:
delay(200);
sebagai
debouncing sederhana. Delay tersebut memberikan jeda setelah tombol terdeteksi
ditekan sehingga perubahan kondisi mekanis tombol yang terjadi dalam waktu
sangat singkat tidak langsung dianggap sebagai beberapa penekanan. Teknik
debouncing diperlukan karena push button dapat mengalami contact bounce
atau chattering.
Dengan
keseluruhan program tersebut, Arduino dapat melakukan tiga proses utama, yaitu:
- Membaca input dari push
button.
- Memproses dan menambah nilai
counter setiap kali tombol ditekan.
- Menampilkan hasil counter
melalui seven-segment display.
Program
tersebut menerapkan konsep dasar input dan output digital yang menjadi tujuan
utama simulasi. Push button berperan sebagai input, Arduino Uno melakukan
pemrosesan, sedangkan seven-segment display berperan sebagai output. Hal ini
sesuai dengan tujuan laporan untuk memahami proses pembacaan input, pengolahan
data oleh Arduino, dan penampilan hasil pada seven-segment display.
3.4 Hasil
Pengujian
Pengujian
dilakukan untuk mengetahui apakah rangkaian dan program counter digital dapat
bekerja sesuai dengan rancangan. Pengujian dilakukan melalui simulasi pada
Wokwi dengan mengamati perubahan nilai pada seven-segment ketika push button
ditekan.
Pengujian
difokuskan pada tiga bagian utama, yaitu pembacaan input push button, proses
pencacahan oleh Arduino, dan tampilan output pada seven-segment display. Sistem
dinyatakan bekerja sesuai rancangan apabila setiap penekanan push button
menghasilkan perubahan nilai counter sebesar satu angka dan perubahan tersebut
dapat ditampilkan dengan benar pada seven-segment.
Pada
kondisi awal, nilai counter diatur pada angka 0. Seven-segment menampilkan
angka 0 sebelum tombol ditekan. Ketika push button ditekan satu kali, Arduino
mendeteksi perubahan kondisi input dan nilai counter bertambah menjadi 1.
Seven-segment kemudian menampilkan angka 1.
Pengujian
dilanjutkan dengan menekan push button beberapa kali. Hasil pengujian
ditunjukkan pada tabel berikut.
|
No. |
Kondisi
Push Button |
Nilai
Counter |
Tampilan
Seven-Segment |
Keterangan |
|
1 |
Kondisi
Awal |
0 |
0 |
Sistem
mulai pada nilai 0 |
|
2 |
Ditekan
1 kali |
1 |
1 |
Counter
bertambah 1 |
|
3 |
Ditekan
2 kali |
2 |
2 |
Counter
bertambah 1 |
|
4 |
Ditekan
3 kali |
3 |
3 |
Counter
bertambah 1 |
|
5 |
Ditekan
4 kali |
4 |
4 |
Counter
bertambah 1 |
|
6 |
Ditekan
5 kali |
5 |
5 |
Counter
bertambah 1 |
|
7 |
Ditekan
6 kali |
6 |
6 |
Counter
bertambah 1 |
|
8 |
Ditekan
7 kali |
7 |
7 |
Counter
bertambah 1 |
|
9 |
Ditekan
8 kali |
8 |
8 |
Counter
bertambah 1 |
|
10 |
Ditekan
9 kali |
9 |
9 |
Counter
bertambah 1 |
|
11 |
Ditekan
10 kali |
0 |
0 |
Counter
bertambah 1 |
Berdasarkan
tabel pengujian tersebut, sistem melakukan pencacahan secara berurutan dari
angka 0 hingga angka 9. Setelah nilai counter mencapai angka 9 dan push button
ditekan kembali, program mengatur nilai counter menjadi 0. Dengan demikian,
pola pencacahan sistem adalah:
0 → 1 →
2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 0
Hasil
tersebut menunjukkan bahwa program dapat membaca input push button dan
menggunakannya sebagai pemicu untuk mengubah nilai counter. Setiap penekanan
tombol menghasilkan kenaikan nilai sebesar satu angka.
Pengujian
juga menunjukkan bahwa seven-segment dapat menampilkan angka sesuai dengan
nilai counter yang sedang diproses oleh Arduino. Hal ini terjadi karena program
telah menyediakan pola kombinasi segment untuk angka 0 sampai 9. Arduino
memberikan sinyal digital kepada setiap segment sehingga terbentuk karakter
angka yang sesuai.
Selain
itu, penerapan debouncing sederhana dengan memberikan jeda setelah
tombol ditekan digunakan untuk mengurangi kemungkinan satu penekanan terbaca
sebagai beberapa penekanan. Hal tersebut penting karena push button sebagai
perangkat mekanis dapat mengalami contact bounce atau perubahan kondisi
secara berulang dalam waktu singkat.
Secara
keseluruhan, berdasarkan pengujian simulasi, rangkaian counter digital dapat
menjalankan fungsi yang dirancang, yaitu menerima input dari push button,
melakukan proses pencacahan menggunakan Arduino Uno, dan menampilkan hasil
pencacahan pada seven-segment display.
BAB IV
PENUTUP
4.1
Kesimpulan
Berdasarkan
proses perancangan, pemrograman, dan pengujian simulasi Counter Digital
Menggunakan Push Button dan 7-Segment Berbasis Arduino, dapat diperoleh
beberapa kesimpulan sebagai berikut:
- Simulasi counter digital
berhasil dirancang menggunakan Arduino Uno, push button, dan seven-segment
display pada platform Wokwi. Rangkaian tersebut menerapkan konsep input
dan output digital dengan push button sebagai input dan seven-segment
sebagai output.
- Push button dapat digunakan
sebagai pemicu (trigger) untuk proses pencacahan. Setiap perubahan
kondisi tombol yang terdeteksi oleh Arduino digunakan untuk meningkatkan
nilai counter sebesar satu.
- Arduino Uno berfungsi sebagai
pusat pengendalian sistem yang bertugas membaca kondisi push button,
mengolah nilai counter, dan mengirimkan sinyal digital ke seven-segment
display.
- Seven-segment display dapat
digunakan untuk menampilkan hasil pencacahan dalam bentuk angka. Kombinasi
kondisi HIGH dan LOW pada segment a sampai g digunakan untuk membentuk
angka 0 sampai 9.
- Sistem counter yang dibuat
memiliki pola pencacahan dari 0 sampai 9. Setelah mencapai angka 9,
penekanan push button berikutnya membuat nilai counter kembali menjadi 0.
- Teknik debouncing
diperlukan dalam penggunaan push button untuk mengurangi kemungkinan
terjadinya pembacaan ganda akibat fenomena contact bounce. Teknik
tersebut dapat diterapkan melalui perangkat keras maupun perangkat lunak.
- Berdasarkan hasil simulasi dan
pengujian, sistem telah menerapkan alur kerja dasar mikrokontroler, yaitu
input → proses → output. Input berasal dari push button, proses dilakukan
oleh Arduino, dan output ditampilkan melalui seven-segment display.
Dengan
demikian, simulasi ini dapat menjadi contoh sederhana penerapan konsep sistem
digital dan mikrokontroler, khususnya dalam memahami hubungan antara perangkat
input, proses pengolahan data, dan perangkat output.
4.2 Saran
Berdasarkan
hasil pembuatan dan pengujian simulasi, terdapat beberapa pengembangan yang
dapat dilakukan pada sistem counter digital ini, yaitu:
- Menambahkan tombol reset
Sistem dapat dikembangkan dengan menambahkan push button khusus untuk mengembalikan nilai counter ke angka 0 tanpa harus menunggu counter melakukan perulangan. - Mengembangkan sistem menjadi
up-counter dan down-counter
Selain menghitung naik dari 0 sampai 9, sistem dapat dikembangkan agar mampu melakukan perhitungan turun. Tombol yang berbeda dapat digunakan untuk fungsi up-counting dan down-counting. - Menggunakan teknik debouncing
yang lebih optimal
Pada implementasi perangkat keras, teknik debouncing dapat dikembangkan menggunakan metode berbasis millis() atau rangkaian perangkat keras sehingga sistem tidak bergantung pada delay() dan dapat menjalankan proses lain secara lebih responsif. - Mengembangkan tampilan menjadi
lebih dari satu digit
Sistem dapat dikembangkan menggunakan dua atau lebih seven-segment sehingga mampu menampilkan angka dengan rentang yang lebih besar, misalnya 00–99 atau 000–999. - Melakukan implementasi pada
perangkat keras secara langsung
Setelah rangkaian berhasil disimulasikan pada Wokwi, sistem dapat direalisasikan menggunakan Arduino Uno, push button, resistor, dan seven-segment display secara fisik. Pengujian perangkat keras dapat digunakan untuk membandingkan hasil simulasi dengan kondisi rangkaian sebenarnya. - Mengembangkan fungsi sistem
Counter dapat dikembangkan menjadi bagian dari sistem yang lebih kompleks, seperti penghitung jumlah objek, penghitung skor, penghitung produksi, atau sistem penghitung sederhana lainnya. - Meningkatkan pengujian sistem
Pengujian dapat dilakukan dengan lebih banyak variasi kondisi, seperti penekanan tombol secara cepat, penekanan berulang, dan pengujian dalam waktu yang lebih lama untuk memastikan kestabilan program dan ketepatan proses pencacahan.
DAFTAR PUSTAKA
Banzi, M.,
& Shiloh, M. (2014). Getting Started with Arduino: The Open Source
Electronics Prototyping Platform (3rd ed.). Maker Media, Inc.
Boylestad,
R. L., & Nashelsky, L. (2013). Electronic Devices and Circuit Theory (11th
ed.). Pearson Education.
Djuandi,
F. (2011). Pengenalan Arduino.
www.tokobuku.com (E-book).
Kadir, A.
(2017). Pemrograman Arduino Menggunakan Software Arduino IDE. Penerbit Andi.
Mano, M.
M., & Ciletti, M. D. (2018). Digital Design: With an Introduction to the
Verilog HDL, VHDL, and SystemVerilog (6th ed.). Pearson.
McRoberts,
M. (2013). Beginning Arduino (2nd ed.). Apress.
Tocci, R.
J., Widmer, N. S., & Moss, G. L. (2017). Digital Systems: Principles and
Applications (12th ed.). Pearson.
Arduino.
(n.d.). Arduino UNO Rev3. Arduino Documentation. https://docs.arduino.cc/hardware/uno-rev3/
Dwiyanto,
D., & Setya W., I. D. (2025). Purwarupa display seven segment dengan
Outseal PLC Arduino sebagai media pembelajaran mata kuliah sistem digital. Go
Infotech: Jurnal Ilmiah STMIK AUB, 31(1), 61–71.
https://doi.org/10.36309/goi.v31i1.361
Hidayati,
Q., Rachman, F. Z., Yanti, N., Jamal, N., & Suhaedi. (2017). Desain model
dan simulasi PLC-mikrokontroler sebagai modul pembelajaran berbasis PLC. JTERA
(Jurnal Teknologi Rekayasa), 2(2), 73–82.
https://doi.org/10.31544/jtera.v2.i2.2017.73-82
Setyawarhana,
B. Y., Sumbawati, M. S., Anifah, L., & Sulistiyo, E. (2021). Pengembangan
media trainer kit sensor Arduino Uno sebagai media penunjang praktikum pada
mata pelajaran teknik pemrograman di SMKN 1 Driyorejo. Jurnal Pendidikan
Teknik Elektro, 11(1), 1–9. https://doi.org/10.26740/jpte.v11n01.p1-9
Sukemi,
S., Sutarno, S., Sembiring, S., Buchari, M. A., & Ubaya, H. (2022).
Perancangan scoreboard digital untuk kegiatan olahraga bulu tangkis dengan
menggunakan mikrokontroler Arduino Uno. Proceedings of National Colloquium
Research and Community Service, 6. https://doi.org/10.33019/snppm.v6i0.3679
Tidak ada komentar:
Posting Komentar