Bab 7
Menyalakan PIN 13
oleh: Suryo Adhy Chandra, ST
Apakah PIN 13 dalam arduino
Pin 13 merupakan pin yang berada dalam arduino secara khusus digunakan untuk melakukan pengetesan lampu LED. saat ini kita buka terlaebih dahulu Arduino IDE kita. kemudian kita tambahkan script bahasa C sebagai berikut.
int PIN=13;
void setup() {
pinMode(13,OUTPUT);
}
void loop() {
digitalWrite(13,1);
}
Setelah itu kita tekan tombol verifikasi, kalau tidak ada error baru kita tekan tombol upload ke Arduino.
Berhasil?
Nah sekarang kalian coba mematikan lampunya dengan mengganti digitalWrite dari 1 ke 0.
Cara kerja pin 13
Setiap pin digital Arduino Uno dapat bertindak sebagai keluaran atau masukan. Ketika diatur sebagai OUTPUT, pin akan memberi tegangan 5 V saat diberi nilai HIGH (atau 1) dan 0 V saat diberi LOW (atau 0). Pada board Uno, pin 13 sudah disambungkan ke LED kecil berlabel L melalui sebuah resistor di dalam board. Karena itu kita bisa menguji program tanpa merangkai apa pun, cukup dengan board dan kabel USB.
Perhatikan bahwa pada kode di atas, variabel PIN dibuat tetapi tidak dipakai, sebab pinMode dan digitalWrite langsung ditulis dengan angka 13. Cara yang lebih rapi adalah memakai nama. Anda dapat menulis const int PIN_LED = 13; lalu memakai PIN_LED di setiap tempat. Jika suatu hari lampunya dipindah ke pin lain, cukup satu baris yang diubah.
Mengapa tidak perlu delay pada contoh pertama?
Pada contoh di atas, loop() hanya menulis HIGH berulang-ulang dengan sangat cepat. LED tetap menyala karena nilainya tidak pernah berubah. Agar LED berkedip, kita memerlukan jeda waktu di antara perubahan. Di sinilah perintah delay() dipakai.
Contoh kedua: berkedip dengan jeda
const int PIN_LED = 13;
void setup() {
pinMode(PIN_LED, OUTPUT);
}
void loop() {
digitalWrite(PIN_LED, HIGH);
delay(500);
digitalWrite(PIN_LED, LOW);
delay(500);
}
Penjelasan baris demi baris. Baris pertama memberi nama PIN_LED pada angka 13, dan kata const menandakan nilainya tetap. Di dalam setup(), pinMode mengubah pin 13 menjadi keluaran. Hal ini hanya dilakukan satu kali. Di dalam loop(), LED dinyalakan, program menunggu 500 milidetik (setengah detik), LED dimatikan, lalu menunggu lagi. Setelah baris terakhir, Arduino kembali ke baris pertama loop() dan mengulanginya terus. Hasilnya LED menyala satu kali setiap detik dan padam di antaranya.
Contoh ketiga: pola SOS
const int PIN_LED = 13;
void kedip(int lama) {
digitalWrite(PIN_LED, HIGH);
delay(lama);
digitalWrite(PIN_LED, LOW);
delay(200);
}
void setup() {
pinMode(PIN_LED, OUTPUT);
}
void loop() {
for (int i = 0; i < 3; i++) kedip(200);
for (int i = 0; i < 3; i++) kedip(600);
for (int i = 0; i < 3; i++) kedip(200);
delay(2000);
}
Kode morse untuk SOS adalah tiga titik, tiga garis, tiga titik. Fungsi kedip(lama) menyalakan LED selama waktu yang diberikan lalu memadamkannya selama 200 milidetik. Perulangan for memanggil fungsi itu tiga kali, dengan 200 milidetik untuk titik dan 600 milidetik untuk garis. Setelah satu urutan selesai, program menunggu dua detik sebelum mengulang. Dengan fungsi, kita tidak perlu menulis ulang enam baris yang sama sembilan kali.
Memakai LED luar pada pin 13
Jika ingin LED yang lebih terlihat, sambungkan kaki panjang LED (anoda) ke sebuah resistor 220 sampai 330 ohm, ujung lain resistor ke pin 13, lalu kaki pendek LED (katoda) ke pin GND di sebelah pin 13. Resistor wajib ada. Tanpa resistor, arus yang mengalir bisa melebihi batas aman LED, dan dapat merusak LED maupun pin Arduino. Batas arus yang dianjurkan untuk satu pin Uno adalah 20 mA.
Kesalahan yang sering terjadi
- Lupa pinMode. LED hanya menyala sangat redup karena pin tidak berstatus keluaran penuh.
- Menulis Digitalwrite atau digitalwrite. Nama perintah membedakan huruf besar dan kecil, sehingga muncul pesan kesalahan saat verifikasi.
- Upload ke board atau port yang salah. Periksa Tools → Board dan Tools → Port sebelum menekan upload.
- LED luar terpasang terbalik. LED hanya menghantar satu arah; jika tidak menyala, balik kedua kakinya.
- Mengira program rusak ketika LED L tetap berkedip. Program lama tersimpan di board sampai diganti dengan upload baru.
Ringkasan
Pin 13 bisa dipakai sebagai keluaran digital untuk menyalakan LED bawaan. Tiga perintah penting yang baru saja kita pakai adalah pinMode, digitalWrite, dan delay. Dengan memberi nama pada pin, memakai fungsi, dan menambahkan perulangan, kode menjadi rapi dan mudah diubah.
Soal latihan
- Mengapa LED pada contoh pertama menyala terus dan tidak berkedip?
Lihat jawaban
Karena program hanya memberi HIGH berulang tanpa pernah memberi LOW dan tanpa jeda.
- Berapa lama satu siklus nyala dan padam pada contoh kedua?
Lihat jawaban
1000 milidetik atau satu detik: 500 milidetik menyala ditambah 500 milidetik padam.
- Bagaimana membuat LED menyala 100 milidetik dan padam 900 milidetik?
Lihat jawaban
Gunakan delay(100) setelah HIGH dan delay(900) setelah LOW.
- Mengapa LED luar perlu resistor?
Lihat jawaban
Resistor membatasi arus agar tidak melebihi batas aman LED dan pin Arduino.