Arduino: Mengawal Pin Keluaran Digital

Mengawal pin keluaran digital adalah topik asas dalam mempelajari mikro pengawal. Digital bermaksud ia mempunyai 2 keadaan sahaja seperti HIGH atau LOW, true atau false, 5V atau 0V, menyala atau padam. Sebelum kita boleh mengawal pin, kita perlu tetapkan pin tersebut sebagai keluaran. Untuk makluman, keadaan asal bagi kesemua pin daripada 0 hingga 13, A0 hingga A5, adalah masukan. Jadi untuk mengubah mod pin kepada keluaran, kita perlu tetapkan didalam kod pengaturcaraan.

Ulangkaji
  1. Muat Naik Pengaturcaraan Arduino
  2. Muat Naik Pengaturcaraan ke Maker UNO

Contoh Kod Pengaturcaraan:

1. Mengawal 1 Pin Keluaran di Maker UNO

Contoh kod dibawah adalah untuk mengawal pin keluaran digital nombor 9. Seterusnya mengawal LED L9 pada Maker UNO. LED L9 akan menyala selama 200 mili saat, kemudian padam selama 1 saat. Proses ini akan berulang-ulang.

/*
Fungsi kod: Mengawal pin 9 pada Maker UNO seterusnya
membuat kelipan LED L9.
Penulis: Idris Zainal Abidin
Blog: https://idrisz.my
Kemaskini: 15 Mac 2019
*/
void setup()
{
pinMode(9, OUTPUT); // Tetapkan pin 9 sebagai pin keluaran
}
void loop()
{
digitalWrite(9, HIGH); // Menghantar isyarat HIGH (voltan 5V)
// pada pin 9 seterusnya menyalakan LED
delay(200); // Tunggu 200 mili saat (atau 0.2 saat)
digitalWrite(9, LOW); // Menghantar isyarat LOW (voltan 0V)
// pada pin 9 seterusnya memadamkan LED
delay(1000); // Tunggu 1000 mili saat (atau 1 saat)
}
2. Mengawal 2 Pin Keluaran di Maker UNO

Contoh kod dibawah adalah untuk mengawal pin keluaran digital nombor 9 dan 10. Seterusnya mengawal LED di kedua-dua pin ini.

/*
Fungsi kod: Mengawal pin 9 dan 10 pada Maker UNO seterusnya
membuat kelipan LED L9 dan L10.
Penulis: Idris Zainal Abidin
Blog: https://idrisz.my
Kemaskini: 12 Mac 2019
*/
void setup()
{
pinMode(9, OUTPUT); // Tetapkan pin 9 sebagai pin keluaran
pinMode(10, OUTPUT); // Tetapkan pin 10 sebagai pin keluaran
}
void loop()
{
digitalWrite(9, HIGH); // Menghantar isyarat HIGH (voltan 5V)
// pada pin 9 seterusnya menyalakan LED
digitalWrite(10, LOW); // Menghantar isyarat LOW (voltan 0V)
// pada pin 10 seterusnya memadamkan LED
delay(500); // Tunggu 500 mili saat (atau 0.5 saat)
digitalWrite(9, LOW); // Menghantar isyarat LOW (voltan 0V)
// pada pin 9 seterusnya memadamkan LED
digitalWrite(10, HIGH); // Menghantar isyarat HIGH (voltan 5V)
// pada pin 10 seterusnya menyalakan LED
delay(500); // Tunggu 500 mili saat (atau 0.5 saat)
}
3. Mengawal 12 Pin Keluaran di Maker UNO

Contoh kod dibawah adalah untuk mengawal 12 pin keluaran digital dari 2 hingga 13. Seterusnya mengawal LED.

/*
Fungsi kod: Mengawal pin pada Maker UNO seterusnya
membuat kelipan LED.
Penulis: Idris Zainal Abidin
Blog: https://idrisz.my
Kemaskini: 12 April 2019
*/
int pin = 0;
void setup()
{
for (pin = 2; pin < 14; pin++) {
// Tetapkan pin 2 sehingga 13 sebagai pin keluaran
pinMode(9, OUTPUT);
}
}
void loop()
{
for (pin = 2; pin < 14; pin++) {
if (pin % 2 == 0) {
// Menghantar isyarat HIGH (voltan 5V)
// pada pin genap seterusnya menyalakan LED
digitalWrite(pin, HIGH);
}
else {
// Menghantar isyarat LOW (voltan 5V)
// pada pin ganjil seterusnya memadamkan LED
digitalWrite(pin, LOW);
}
}
delay(500); // Tunggu 500 mili saat (atau 0.5 saat)
for (pin = 2; pin < 14; pin++) {
if (pin % 2 == 0) {
// Menghantar isyarat LOW (voltan 5V)
// pada pin genap seterusnya memadamkan LED
digitalWrite(pin, LOW);
}
else {
// Menghantar isyarat HIGH (voltan 5V)
// pada pin ganjil seterusnya menyalakan LED
digitalWrite(pin, HIGH);
}
}
delay(500); // Tunggu 500 mili saat (atau 0.5 saat)
}
Ubah Kod Pengaturcaraan

Anda akan lebih cepat faham kod program apabila anda mengubah kod, muat naik, lihat hasilnya dan fahamkan kenapa terjadi begitu. Untuk contoh ini, anda boleh cuba:

  • Menukar nombor pin kepada nombor yang lain seperti apa-apa nombor dari 2 hingga 13.
  • Mengubah nilai menunggu didalam fungsi delay seperti 500, 1500 dan lain-lain nilai.

Jadi sampai disini dahulu, selamat mencuba. Belajar sampai faham ya! 😊


Semoga perkongsian ini bermanfaat. Bagi membolehkan saya terus mengusahakan blog ini, amatlah berbesar hati sekiranya tuan/puan dapat memberi sumbangan ikhlas bagi menampung kos (hosting, domain, masa, barang, dll). Terima kasih. Maybank Idris Zainal Abidin 162731011315

Leave a Reply