Anda di halaman 1dari 15

FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR

PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA


Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

1. Kompetensi
Mahasiswa mampu menjelaskan pemrograman input output digital mikrokontroler Arduino
menggunakan serial monitor
2. Sub Kompetensi
 Dapat menerapkan pemrograman input output digital dengan pushbutton
 Dapat menerapkan pemrograman input output digital dengan serial monitor
3. Dasar Teori
Serial Monitor
Serial monitor bisa kita gunakan untuk men-debug secara software. Jika tanpa serial monitor,
kita tidak bisa melakukan debug untuk aplikasi yang kita buat sehingga untuk menemukan
solusinya, kita harus men-debug dari sisi hardware. Misal ketika ada error, kita akan mencoba
dengan LED atau menambah/mengurangi rangkaian.
Tapi jika menggunakan serial monitor, kita akan tahu error-nya melalui data yang dikirimkan
oleh Arduino. Misal ketika nyala LED terlalu lama atau terlalu pelan, kita langsung bisa
mengecek nilai (angka) yang digunakan untuk delay dan semua isi variabel dalam program yang
kita buat. Sehingga kita bisa menelusuri logika dan algoritma program berdasarkan data-data
yang dikirimkan tadi.
Perhatikan pada board arduino, pin 0 dan 1 ada tulisan RX dan TX. Pin tersebut berfungsi
untuk menerima dan mengirim data melalui komunikasi serial dari Arduino ke komputer melalui
kabel USB. Untuk menggunakan komunikasi serial, kita tidak perlu menambahkan komponen
tambahan pada Arduino karena pada board tersebut sudah disediakan. Kita cukup
menghubungkan Arduino ke komputer, dan kita bisa langsung membuat program.

Pada baris ke-6, perintah Seril.begin(9600); berarti kita akan membuat koneksi serial dengan
baud rate 9600. Sederhananya, baud berkaitan dengan jumlah bit yang akan ditransfer setiap
detik. Nilai baud rate ini tergantung pada clock mikrokontroller. Arduino Uno sendiri
menggunakan clock 16 MHz. Jika clock-nya makin rendah, maka baud rate harus kita kurangi.

Sebagai contoh, jika kita menggunakan mikrokontroller dengan clock 1 MHz, maka baud rate
yang cocok adalah 4800. Jika clock 1 MHz kita menggunakan baud rate 9600, maka data yang
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

dikirim ke komputer tidak akan terbaca. Pada Arduino IDE, nilai baud rate default pada Serial
Monitor adalah 9600.
Pada baris ke 12 dan 13, kita menemukan perintha print yang berbeda, yaitu print() dan
println(). Jika kita menggunakan print, maka kita sekedar mengirim data tanpa diikuti end of line
(perintah untuk ganti baris , atau ENTER). Jika kita menggunakan println(), maka tulisan akan
diikuti perintah untuk pindah baris.

Buka Serial Monitor dengan cara mengklik icon Serial Monitor (lihat Gambar 1). Jika/ Anda
menggunakan versi Arduino IDE selain versi 1.63, mungkin letaknya berbeda. Sebelum muncul
pesan “Done Uploading”, maka Serial Monitor belum bisa dibuka. Setelah Serial Monitor
dibuka, maka setidaknya Anda akan melihat pesan seperti pada Gambar 2.

Explorasi pushbutton
Pada labsheet 3 kita sudah mempelajari tentang penggunaan pushbutton sebagai input digital.
Pada labsheet ke-4 ini akan lebih coba dieksplor contoh program menggunakan pushbutton yang
sering dijumpai dalam membuat aplikasi yang cukup kompleks antara lain:
1. Cara menggunakan internal Pullup Resistor
2. Membuat tombol multikondisi
3. Membuat aksi ketika tombol ditekan lama

Internal Pullup resistor


Dengan adanya internal pullup resistor, kita tidak perlu lagi menambahkan resistor pada tombol
sebagai pullup. Cukup mengaktifkan internal pullup resistor dengan program. Jika pin Arduino
diset sebagai INPUT, maka logika yang terbaca oleh Arduino tergantung INPUT yang diberikan.
Jika pin dihubungkan ke VCC, logika yang terbaca adalah HIGH. Jika pin dhibungkan ke GND,
maka logika yang terbaca adalah LOW. Lalu bagaimana jika pin tidak dihubungkan ke
VCC atau GND? Nah, kondisi seperti itu disebut floating. Logika pada pin bisa dibilang kacau,
HIGH dan LOW bergantian. Logika pada pin INPUT seakan digantung, nggak jelas. Sehingga
kita butuh resistor untuk menentukan kondisi defaultnya, apakah akan dibuat default HIGH atau
default LOW. Untuk mengaktifkan internal pullup resistor, pin Arduino tidak didefinisikan
dengan INPUT lagi, tapi INPUT_PULLUP.
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

Tombol Multi Kondisi


Apa maksud dari tombol multikondisi? Normalnya, tombol push button hanya punya dua logika,
ON dan OFF, namun kondisi ON tidak dapat terkunci. Jika kita menggukan switch ON/OFF
seperi saklar, kondisi ON akan terkunci dengan mudah karena proses pengunciannya
secara fisik. Jika kita pakai tombol push button, akan susah kalau kita ingin mengunci kondisi
ON. Sebab logika tombol akan langsung berubah menjadi OFF ketika tombol kita lepas.
Pada langkah kerja akan dibuat program pushbutton yang seolah akan berfungsi sebagai saklar
yang akan mengunci kondisi input jika belum ada perubahan atau penekanan kembali.
4. Alat dan Instrument
 Arduino Uno 1 buah
 Kabel USB 1 buah
 LED secukupnya
 Kabel jumper male – male secukupnya
 Pushbutton 2 buah
5. Langkah Kerja
Internal Pullup Resistor
1. Buat rangkaian Arduino dan sebuah pushbutton seperti gambar berikut :

2. Ketik program berikut pada editor Arduino IDE :


/*
* MONSTER ARDUINO V2
* Program Tombol tanpa Pullup Resistor
* www.ElangSakti.com
*/
// tombol pada pin 2
const byte PIN_TOMBOL = 2;

// variabel penyimpan data dari tombol


// dan data sebelumnya
boolean data = HIGH;
boolean data_last = data;
void setup() {
// buka koneksi ke serial
Serial.begin(9600);
while(!Serial);
// tombol sebagai input
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

pinMode(PIN_TOMBOL,INPUT);
}
void loop() {
// baca data tombol
data = digitalRead(PIN_TOMBOL);
// jika data berbeda dari data sebelumnya
// cetak ke serial monitor
if(data != data_last){
Serial.println( data );
// simpan data sebagai data sebelumnya
data_last = data;
}
}
3. Upload program ke Arduino dan klik serial monitor.
4. Tekan pushbutton dan amati tampilan serial monitor, ketika pushbutton tidak ditekan amati
apakah ada output tampilan pada serial monitor.
Jawab : ketika tombol tidak ditekan maka data berubah dari 1 ke 0 dan 0 ke 1 secara terus
menerus, ktika tombol di tekan maka data yang tampil di serial monitor bertahan di 0.
5. Edit perintah pinMode(PIN_TOMBOL,INPUT); dengan perintah
pinMode(PIN_TOMBOL,INPUT_PULLUP);
/*
* MONSTER ARDUINO V2
* Program Tombol tanpa Pullup Resistor
* www.ElangSakti.com
*/
// tombol pada pin 2
const byte PIN_TOMBOL = 2;
// variabel penyimpan data dari tombol
// dan data sebelumnya
boolean data = HIGH;
boolean data_last = data;
void setup() {

// buka koneksi ke serial


Serial.begin(9600);
while(!Serial);
// tombol sebagai input
pinMode(PIN_TOMBOL,INPUT_PULLUP);
}
void loop() {
// baca data tombol
data = digitalRead(PIN_TOMBOL);
// jika data berbeda dari data sebelumnya
// cetak ke serial monitor
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

if(data != data_last){
Serial.println( data );
// simpan data sebagai data sebelumnya
data_last = data;
delay(500);
}
}
Analisa = ketika tombol di tekan maka data akan muncul dari 0 ke 1 dan 1 ke 0 secara terus menerus,
ketika tombol ditekan lama maka yang tampil di serial monitor adalah 0 dan jika di lepas maka yang
muncul adalah angka 1
Tombol multikondisi
1. Buat rangkaian Arduino dan sebuah pushbutton seperti gambar berikut :

2. Ketik program berikut pada editor Arduino IDE :


/*
* MONSTER ARDUINO V2
* Program Tombol dengan Lock Status
* www.ElangSakti.com
*/
// kita set supaya tombol active low
#define ON LOW // active low
#define OFF !ON
// tombol pada pin 2
const byte PIN_TOMBOL = 2;
// data awal ada OFF

// dan data sebelumnya juga OFF


boolean data = OFF;
boolean data_last = data;
// variabel untuk lock status
boolean logika = data;
// delay untuk penekanan tombol.
// setelah tombol ditekan, maka selama 150 ms
// tidak bisa ditekan.
// delay ini berguna untuk menghindari 2 kali eksekusi
unsigned long delay_press = 150; // dalam ms
unsigned long delay_press_last = 0;
void setup() {
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

// buka koneksi ke serial


Serial.begin(9600);
while(!Serial);
// tombol sebagai input dengan pullup resistor
pinMode(PIN_TOMBOL,INPUT_PULLUP);
}
void loop() {
// jika selisih waktu penekanan tombol
// lebih besar dari waktu delay tombol
// baca tombol lagi, jika tidak tombol tdk dibaca
if( millis() - delay_press_last > delay_press ){
// baca data tombol
data = digitalRead(PIN_TOMBOL);
// jika data berbeda dari data sebelumnya
// cetak ke serial monitor
if(data != data_last){
// jika data = ON
if(data == ON){
// balik status logika tolbol
logika = !logika;
// jika ON, cetak ON
// jika OFF, cetak OFF
if( logika == ON ){

Serial.println("ON");
} else {
Serial.println("OFF");
}
}
// simpan data sebagai data sebelumnya
data_last = data;
// catat waktu penekanan tombol terakhir
delay_press_last = millis();
}
}
}
3. Upload program ke Arduino dan klik serial monitor.
4. Tekan pushbutton dan amati tampilan serial monitor, ketika pushbutton tidak ditekan amati
apakah ada output tampilan pada serial monitor.
Jawab = ketika ditekan pertama kali maka data yang muncul adalah ON jika ditekan kedua kali
maka data yang muncul adalah OFF.
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

Satu Tombol Banyak Menu


1. Buat rangkaian Arduino dan sebuah pushbutton seperti gambar berikut :

2. Ketik program berikut pada editor Arduino IDE :


/*
* MONSTER ARDUINO V2
* Program Satu Tombol Banyak Menu
* www.ElangSakti.com
*/
// kita set supaya tombol active low
#define ON LOW // active low
#define OFF !ON
// definisikan 4 buah menu
// menu 0 - 3
#define MENU_0 0
#define MENU_1 1
#define MENU_2 2
#define MENU_3 3
// tombol pada pin 2
const byte PIN_TOMBOL = 2;
// data awal ada OFF
// dan data sebelumnya juga OFF
boolean data = OFF;
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

boolean data_last = data;


// variabel untuk lock status
boolean logika = data;
// jadikan menu sebagai array supaya lebih mudah
const byte MENU[] = {MENU_0,MENU_1,MENU_2,MENU_3};
// siapkan teks nama-nama menu
const String TEKS_MENU[] = {
"Menu Utama",
"Menu 1 Setting",
"Menu 2 Inpu Data",
"Menu 3 Exit"
};
// cata menu yang aktif saat ini
// saat start, menu yg aktif adalah menu_3
byte MENU_COUNTER = MENU_3;
// delay untuk penekanan tombol.
// setelah tombol ditekan, maka selama 150 ms
// tidak bisa ditekan.
// delay ini berguna untuk menghindari 2 kali eksekusi
unsigned long delay_press = 150; // dalam ms
unsigned long delay_press_last = 0;
void setup() {
// buka koneksi ke serial
Serial.begin(19200);
while(!Serial);
// tombol sebagai input dengan pullup resistor
pinMode(PIN_TOMBOL,INPUT_PULLUP);
}
void loop() {
// baca logika tombol
TombolListener();
}
// fungsi TombolListener
void TombolListener(){
// jika selisih waktu penekanan tombol
// lebih besar dari waktu delay tombol
// baca tombol lagi, jika tidak tombol tdk dibaca
if( millis() - delay_press_last > delay_press ){
// baca data tombol
data = digitalRead(PIN_TOMBOL);
// jika data berbeda dari data sebelumnya
// cetak ke serial monitor
if(data != data_last){
// jika data = ON
if(data == ON){
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

// pilih menu selanjutnya


MENU_COUNTER++;
// jika menu melebihi jumlah menu yg ada
// pilih menu awal
if( MENU_COUNTER >= sizeof(MENU) ){
MENU_COUNTER = 0;
}
// eksekusi aksi tombol sesuai logika
AksiTombol(MENU_COUNTER);
}
// simpan data sebagai data sebelumnya
data_last = data;
// catat waktu penekanan tombol terakhir
delay_press_last = millis();
}
}
}
// Fungsi AksiTombol
// INPUT : byte tombol
void AksiTombol(byte tombol){
// print sesuai menu yang dipilih
switch(tombol){
case MENU_0:
// proses sesuatu
Serial.println(TEKS_MENU[MENU_0]);
break;
case MENU_1:
// proses sesuatu
Serial.println(TEKS_MENU[MENU_1]);
break;
case MENU_2:
// proses sesuatu
Serial.println(TEKS_MENU[MENU_2]);
break;
case MENU_3:
// proses sesuatu
Serial.println(TEKS_MENU[MENU_3]);
break;
}
}
3. Upload program ke Arduino dan klik serial monitor.
4. Tekan pushbutton dan amati tampilan serial monitor, ketika pushbutton tidak ditekan amati
apakah ada output tampilan pada serial monitor.
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

Jawab = ketika di tekan pertama kali maka data yang muncul adalah menu utama, di tekan
kedua kali yang muncul adalah menu 1 setting, dotekan ketiga kali maka yang muncul
menu 2 input data, dan ketika di tekan ke empat kali maka yang muncul menu 3 exit.

Program Aksi Tombol Berdasarkan Lama Ditekan


1. Buat rangkaian Arduino dan sebuah pushbutton seperti gambar berikut :

2. Ketik program berikut pada editor Arduino IDE :


/*
* MONSTER ARDUINO V2
* Program Aksi Tombol Berdasarkan Lama Ditekan
* www.ElangSakti.com
*/
// kita set supaya tombol active low
#define ON LOW // active low
#define OFF !ON
// definisikan 4 buah menu
// menu 0 – 3
#define MENU_0 0
#define MENU_1 1
#define MENU_2 2
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

#define MENU_3 3
// tombol pada pin 2
const byte PIN_TOMBOL = 2;
// data awal ada OFF
// dan data sebelumnya juga OFF
boolean data = OFF;
boolean data_last = data;
// variabel untuk lock status
boolean logika = data;
// pemetaan delay terhadap aksi menu
// delay 0 - 3000 => muncul menu_0
// delay 3000 - 5000 => muncul menu_1
// delay 5000 - 10000=> muncul menu_2
// delay > 10000 => muncul menu_3
const unsigned int TOMBOL_DELAY[] = {0, 3000, 5000, 10000}; // dalam
ms
// jadikan menu sebagai array supaya lebih mudah
const byte MENU[] = {MENU_0,MENU_1,MENU_2,MENU_3};
// siapkan teks nama-nama menu
const String TEKS_MENU[] = {
"Menu Utama",
"Menu 1 Setting",
"Menu 2 Input Data",
"Menu 3 Exit"
};
// cata menu yang aktif saat ini
// saat start, menu yg aktif adalah menu_3
byte MENU_COUNTER = MENU_3;
// delay untuk penekanan tombol.
// setelah tombol ditekan, maka selama 150 ms
// tidak bisa ditekan.
// delay ini berguna untuk menghindari 2 kali eksekusi
unsigned long delay_press = 150; // dalam ms
unsigned long delay_press_last = 0;
// variabel untuk mencatat awal tombol ditekan
unsigned long start_press = 0;
void setup() {
// buka koneksi ke serial
Serial.begin(19200);
while(!Serial);
// tombol sebagai input dengan pullup resistor
pinMode(PIN_TOMBOL,INPUT_PULLUP);
}
void loop() {
// baca logika tombol
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

TombolListener();
}
// fungsi TombolListener
void TombolListener(){
// jika selisih waktu penekanan tombol
// lebih besar dari waktu delay tombol
// baca tombol lagi, jika tidak tombol tdk dibaca
if( millis() - delay_press_last > delay_press ){
// baca data tombol
data = digitalRead(PIN_TOMBOL);
// jika data berbeda dari data sebelumnya
// cetak ke serial monitor
if(data != data_last){
// ketika OFF / onKeyUp
if(data == OFF){
// catat selisih antara
// awal tombol ditekan hingga dilepas
unsigned long selisih = millis() - start_press;
if( selisih >= TOMBOL_DELAY[MENU_3] ){
// jika lama ditekan >= 10 detik
MENU_COUNTER = MENU_3;
} else if( selisih >= TOMBOL_DELAY[MENU_2] ){
// jika lama ditekan >= 5 detik
MENU_COUNTER = MENU_2;
} else if( selisih >= TOMBOL_DELAY[MENU_1] ){
// jika lama ditekan >= 3 detik
MENU_COUNTER = MENU_1;
} else {
// jika antara 0 - 3 detik
MENU_COUNTER = MENU_0;
}
// eksekusi aksi tombol sesuai logika
AksiTombol(MENU_COUNTER);
} else {
// reset waktu yang tercatat
start_press = millis();
}
// simpan data sebagai data sebelumnya
data_last = data;
// catat waktu penekanan tombol terakhir
delay_press_last = millis();
}
}
}
// Fungsi AksiTombol
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

// INPUT : byte tombol


void AksiTombol(byte tombol){
// print sesuai menu yang dipilih
switch(tombol){
case MENU_0:
// proses sesuatu
Serial.println(TEKS_MENU[MENU_0]);
break;
case MENU_1:
// proses sesuatu
Serial.println(TEKS_MENU[MENU_1]);
break;
case MENU_2:
// proses sesuatu
Serial.println(TEKS_MENU[MENU_2]);
break;
case MENU_3:
// proses sesuatu
Serial.println(TEKS_MENU[MENU_3]);
break;
}
}
3. Upload program ke Arduino dan klik serial monitor.
4. Tekan pushbutton dan amati tampilan serial monitor, Tekan pushbutton lebih lama dan amati
tampilan serial monitor.
Jawab = Ditekan satu kali maka yang muncul adalah menu utama, ditekan dan di tahan sekitar
3 detik maka muncul menu 1 setting, ditekan dan ditahan sekitar 6 detik maka muncul
menu 2 input data, ditekan dan ditahan sekitar 9 detik muncul menu 3 exit
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

Tugas :
Modifikasi program aksi tombol ditekan lama, jika tombol ditekan sebentar nyala 1 led berkedip
dan jika tombol yang sama ditekan lama maka nyala 2 led berkedip.
int hitung;
int kondisi;
void setup() {
// put your setup code here, to run once:
pinMode(2,INPUT_PULLUP);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
}

void loop() {
// put your main code here, to run repeatedly:
if(kondisi==0){
digitalWrite(12,0);
digitalWrite(13,0);
}
else if(kondisi==1){
digitalWrite(12,(millis()/500)%2);
digitalWrite(13,0);
}
else if (kondisi==2){
digitalWrite(12,(millis()/500)%2);
digitalWrite(13,(millis()/500)%2);
}
if (digitalRead(2)==0)
{hitung++;delay(200);}
if(hitung==1)kondisi=1;
if(hitung>=10)kondisi=2;
if(digitalRead(2)==1){hitung=0;}
}
FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
PROGRAM STUDI PENDIDIKAN VOKASI MEKATRONIKA
Praktik Mikrokontroler
Semester 3 Input Output Digital Serial Monitor 3 SKS
Nama : Hasriana Aris Nim : 1826042010

6. KESIMPULAN

Serial Monitor
Serial monitor bisa kita gunakan untuk men-debug secara software. Jika tanpa serial monitor,
kita tidak bisa melakukan debug untuk aplikasi yang kita buat sehingga untuk menemukan
solusinya, kita harus men-debug dari sisi hardware. Misal ketika ada error, kita akan mencoba
dengan LED atau menambah/mengurangi rangkaian.
Tapi jika menggunakan serial monitor, kita akan tahu error-nya melalui data yang dikirimkan
oleh Arduino. Misal ketika nyala LED terlalu lama atau terlalu pelan, kita langsung bisa
mengecek nilai (angka) yang digunakan untuk delay dan semua isi variabel dalam program yang
kita buat. Sehingga kita bisa menelusuri logika dan algoritma program berdasarkan data-data
yang dikirimkan tadi.

Internal Pullup resistor


Dengan adanya internal pullup resistor, kita tidak perlu lagi menambahkan resistor pada tombol
sebagai pullup. Cukup mengaktifkan internal pullup resistor dengan program. Jika pin Arduino
diset sebagai INPUT, maka logika yang terbaca oleh Arduino tergantung INPUT yang diberikan.
Jika pin dihubungkan ke VCC, logika yang terbaca adalah HIGH. Jika pin dhibungkan ke GND,
maka logika yang terbaca adalah LOW. Lalu bagaimana jika pin tidak dihubungkan ke
VCC atau GND? Nah, kondisi seperti itu disebut floating. Logika pada pin bisa dibilang kacau,
HIGH dan LOW bergantian. Logika pada pin INPUT seakan digantung, nggak jelas. Sehingga
kita butuh resistor untuk menentukan kondisi defaultnya, apakah akan dibuat default HIGH atau
default LOW. Untuk mengaktifkan internal pullup resistor, pin Arduino tidak didefinisikan
dengan INPUT lagi, tapi INPUT_PULLUP.

Tombol Multi Kondisi


Apa maksud dari tombol multikondisi? Normalnya, tombol push button hanya punya dua logika,
ON dan OFF, namun kondisi ON tidak dapat terkunci. Jika kita menggukan switch ON/OFF
seperi saklar, kondisi ON akan terkunci dengan mudah karena proses pengunciannya
secara fisik. Jika kita pakai tombol push button, akan susah kalau kita ingin mengunci kondisi
ON. Sebab logika tombol akan langsung berubah menjadi OFF ketika tombol kita lepas.
Pada langkah kerja akan dibuat program pushbutton yang seolah akan berfungsi sebagai saklar
yang akan mengunci kondisi input jika belum ada perubahan atau penekanan kembali.

Anda mungkin juga menyukai