Push button switch sering kita jumpai di sebuah rangkaian elektronika, secara umum fungsi dari tombol/push button ini adalah sebagai penghubung dan pemutus arus listrik. Contohnya penggunaan push button kita bisa lihat di board arduino terdapat sebuah tombol dimana tombol ini berfungsi untuk mereset program dan tentu saja masih banyak contoh dan fungsi yang lainnya.
Pada artikel ini saya akan membahas cara handle push button switch pada Arduino, dengan fungsi basic/dasar yaitu menyalakan sebuah led.
ALAT DAN BAHAN
- Arduino Mega atau yang lain, BELI
- Push button switch
- Lampu LED dan resistor 220 Ohm
- Kabel jumper male to male, BELI
- Projectboard, BELI
GAMBAR RANGKAIAN
Berikut ini adalah gambar rangkaiannya :
Rangkaian push button di atas merupakan rangkaian aktif LOW, dimana ketika ditekan (LOW) maka akan terhubung on dan sebaliknya.
SOURCE CODE ARDUINO
const int ledPin = 2;
const int buttonPin = 7;
int buttonState;
int oldButton = 0;
int state = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
buttonState = digitalRead(buttonPin);
if(!buttonState && !oldButton){
if(state == 0){
digitalWrite(ledPin, HIGH);
state = 1;
}else{
digitalWrite(ledPin, LOW);
state = 0;
}
oldButton = 1;
}else if(buttonState && oldButton){
oldButton = 0;
}
}
Silahkan rangkai dan upload sesuai penjelasan di atas, kemudian coba praktikan. Hasilnya adalah ketika tombol ditekan kemudian dilepas lampu LED akan menyala dan ketika di tekan kembali lampu LED akan mati.
Jika ingin menggunakan 3 tombol dan 3 LED bagaimana? tinggal tambahkan saja inputan dan outputnya, seperti dijelaskan di bawah ini :
RANGKAIAN 3 TOMBOL dan 3 LED
Adapun rangkaiannya di bawah ini :
SOURCE CODE 3 TOMBOL 3 LED
const int ledMerah = 2;
const int ledKuning = 7;
const int ledHijau = 12;
const int button_1 = 23;
const int button_2 = 22;
const int button_3 = 24;
int buttonState_1, buttonState_2, buttonState_3;
int oldbutton_1, oldbutton_2, oldbutton_3 = 0;
int state1, state2, state3 = 0;
void setup() {
pinMode(ledMerah, OUTPUT);
pinMode(ledKuning, OUTPUT);
pinMode(ledHijau, OUTPUT);
pinMode(button_1, INPUT_PULLUP);
pinMode(button_2, INPUT_PULLUP);
pinMode(button_3, INPUT_PULLUP);
}
void loop() {
buttonState_1 = digitalRead(button_1);
buttonState_2 = digitalRead(button_2);
buttonState_3 = digitalRead(button_3);
if (!buttonState_1 && !oldbutton_1) {
if (state1 == 0) {
digitalWrite(ledMerah, HIGH);
state1 = 1;
} else {
digitalWrite(ledMerah, LOW);
state1 = 0;
}
oldbutton_1 = 1;
} else if (buttonState_1 && oldbutton_1) {
oldbutton_1 = 0;
}
if (!buttonState_2 && !oldbutton_2) {
if (state2 == 0) {
digitalWrite(ledKuning, HIGH);
state2 = 1;
} else {
digitalWrite(ledKuning, LOW);
state2 = 0;
}
oldbutton_2 = 1;
} else if (buttonState_2 && oldbutton_2) {
oldbutton_2 = 0;
}
if (!buttonState_3 && !oldbutton_3) {
if (state3 == 0) {
digitalWrite(ledHijau, HIGH);
state3 = 1;
} else {
digitalWrite(ledHijau, LOW);
state3 = 0;
}
oldbutton_3 = 1;
} else if (buttonState_3 && oldbutton_3) {
oldbutton_3 = 0;
}
}
Demikian pembahasan kali ini, semoga bermanfaat. Terima kasih.
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
Bqgaimana cara debounce switch dengan millis(); ?
tiggal dibikin delay dari millis() mas