/**
fungsi millis() mengembalikan nilai maksimal unsigned long (32 bit) atau uint32_t (0-4Milyar+)
semua fungsi aritmatika menggunakan unsigned long, wajib dengan operand
dengan tipe data unsigned long agar hasilnya akurat. Sehingga angka wajib
dikasih UL pada setiap akhir angka.
*/
#define BUTTON_PIN 2
bool ledState = false;
uint32_t lastChangeTime=0;
uint32_t debounceDelay=200UL; // Angka wajib dikasih UL agar tipe datanya jadi Unsigned Long
void setup(){
Serial.begin(9600);
pinMode(BUTTON_PIN, INPUT);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop(){
digitalWrite(LED_BUILTIN, ledState);
int pressed = digitalRead(BUTTON_PIN);
if(pressed==true && ((millis()-lastChangeTime)>debounceDelay))
{
ledState=!ledState;
lastChangeTime=millis();
}
Serial.print("Kondisi tombol: "); Serial.println(pressed);
Serial.print("Kondisi LED : "); Serial.println(ledState);
delay(0);
}