Last active
April 29, 2019 01:34
-
-
Save idriszmy/4e93bdf23584aec140071120ba5037a9 to your computer and use it in GitHub Desktop.
Membaca isyarat pada butang tekan di Maker UNO, dan mengawal LED. Aplikasi: Tekan sekali untuk nyalakan LED. Tekan lagi sekali untuk kelipkan LED. Tekan lagi sekali untuk padamkan LED.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Fungsi kod: Membaca isyarat pada butang tekan dan mengawal | |
LED. | |
Penulis: Idris Zainal Abidin | |
Blog: https://idrisz.my | |
Kemaskini: 27 Mac 2019 | |
*/ | |
#define LED 9 // LED bersambung pada pin 9 | |
#define BUTTON 2 // Butang tekan bersambung pada pin 2 | |
int ledMode = 0; // Pemboleh ubah mod LED | |
int ledState = 0; // Pemboleh ubah isyarat LED | |
long previousMillis = 0; // Pemboleh ubah mili saat sebelumnya | |
int interval = 500; // Pemboleh ubah selang masa | |
void setup() | |
{ | |
pinMode(LED, OUTPUT); // Tetapkan pin LED sebagai pin keluaran. | |
pinMode(BUTTON, INPUT_PULLUP); // Tetapkan pin BUTTON sebagai pin masukan pullup. | |
} | |
void loop() | |
{ | |
// Membaca isyarat masukan pada pin butang tekan | |
if (digitalRead(BUTTON) == LOW) { // Jika butang tekan ditekan | |
ledMode++; // Menukar mod LED, dari 0 ke 1, 1 ke 2 dan 2 ke 0 | |
if (ledMode == 3) { | |
ledMode = 0; | |
} | |
while (digitalRead(BUTTON) == LOW); // Tunggu butang tekan dilepaskan | |
delay(100); // Tunggu sekejap selepas butang tekan dilepaskan | |
} | |
switch (ledMode) { // Semak mod LED | |
case 0: // Jika mod LED adalah 0 | |
digitalWrite(LED, LOW); // Mod 0 akan memadamkan LED | |
break; | |
case 1: // Jika mod LED adalah 1 | |
digitalWrite(LED, HIGH); // Mod 1 akan menyalakan LED | |
break; | |
case 2: // Jika mod LED adalah 2 | |
digitalWrite(LED, ledState); // Mod 2 untuk kelipkan LED | |
break; | |
} | |
// Proses kelipan LED | |
if (millis() - previousMillis > interval) { | |
ledState = !ledState; | |
previousMillis = millis(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment