Skip to content

Instantly share code, notes, and snippets.

@idriszmy
Last active April 29, 2019 06:28
Show Gist options
  • Save idriszmy/05d72556eac69e871c79c5807697f3f4 to your computer and use it in GitHub Desktop.
Save idriszmy/05d72556eac69e871c79c5807697f3f4 to your computer and use it in GitHub Desktop.
Melaksanakan tugasan gangguan luaran melalui butang tekan di Maker UNO.
/*
Fungsi kod: Membaca pin butang tekan dan melaksanakan tugasan
gangguan luaran.
Penulis: Idris Zainal Abidin
Blog: https://idrisz.my
Kemaskini: 29 April 2019
*/
#define BUTTON 2 // Butang tekan bersambung pada pin 2
#define LED12 12 // LED12 bersambung pada pin 12
#define LED13 13 // LED13 bersambung pada pin 13
void setup()
{
pinMode(BUTTON, INPUT_PULLUP); // Tetapkan butang tekan sebagai pin masukan pullup
pinMode(LED12, OUTPUT); // Tetapkan LED12 sebagai pin keluaran
pinMode(LED13, OUTPUT); // Tetapkan LED13 sebagai pin keluaran
// Tetapkan pin pada butang tekan sebagai gangguan luaran
// Namakan fungsi kejadian adalah buttonTrigger
// Gangguan akan berlaku setiap kali isyarat berubah dari HIGH ke LOW atau sebaliknya
attachInterrupt(digitalPinToInterrupt(BUTTON), buttonTrigger, CHANGE);
}
void loop()
{
// Di dalam fungsi berulang utama, hanya ada LED berkelip pada pin 13
digitalWrite(LED13, HIGH);
delay(1000);
digitalWrite(LED13, LOW);
delay(1000);
}
// Fungsi kejadian gangguan luaran
void buttonTrigger()
{
if (digitalRead(BUTTON) == LOW) { // Jika butang ditekan
digitalWrite(LED12, HIGH); // Nyalakan LED12
}
else { // Jika butang dilepaskan
digitalWrite(LED12, LOW); // Padamkan LED12
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment