Cara Menggunakan Fungsi dalam Pemrograman Arduino
Fungsi adalah kode dalam program Anda yang menyelesaikan sesuatu tujuan tertentu. Mereka berisi kode untuk melakukan hal-hal seperti mendapatkan data dari sensor, mengatur status tegangan pin ataupun menampilkan teks pada layar LCD serta masuh banyak yang lainnya manfaat dari fungsi (functions). Pada artikel ini, kita akan mempelajari apa fungsi dan bagaimana menggunakannya dalam proyek Arduino Anda.
Fungsi Itu Apa?
Semua fungsi memiliki input dan output:
Input adalah informasi yang Anda berikan pada fungsi tersebut. Fungsi melakukan tindakan pada input dan output hasil data. Misalnya, perhatikan fungsi x = y 2 + 1:
Jika kita memasukkan y = 3, fungsi akan menghitung dan menghasilkan x = 10:
Dalam pemrograman, kami mengatakan bahwa fungsi ini mengembalikan nilai 10.
Cara Menggunakan Fungsi Dalam Program Arduino
Setiap fungsi memiliki tipe pengembalian. Tipe pengembalian adalah tipe data dari nilai yang dikembalikan oleh fungsi. Jadi jika fungsi mengembalikan bilangan bulat, tipe pengembalian fungsi disebut int:
Untuk fungsi yang tidak mengembalikan nilai apa pun, tipe pengembaliannya disebut void:
Kode fungsi berada di dalam kurung kurawal. Anda dapat menggunakan kode Arduino apa pun di dalam suatu fungsi:
Menggunakan fungsi dalam suatu program dikenal sebagai pemanggilan fungsi atau pemanggilan fungsi. Untuk memanggil fungsi, tulis nama fungsi, tanda kurung buka dan tutup dan titik koma seperti ini:
Di sini kita memanggil fungsi functionName() di bagian loop, tetapi fungsi juga bisa dipanggil di bagian setup.
Memberikan input ke suatu fungsi disebut "passing it an argument". Saat kami meneruskan argumen ke suatu fungsi, kami memberikannya input yang dibutuhkan untuk melakukan tugasnya. Misalnya, fungsi digitalWrite() mengambil dua informasi, nomor pin dan mode pin:
pin dan mode disebut parameter. Parameter adalah jenis data yang digunakan fungsi sebagai input. Argumen adalah nilai aktual yang Anda berikan. Misalnya, kita menggunakan fungsi digitalWrite() untuk mengatur pin 10 tinggi:
pin dan mode adalah parameternya, tetapi 10 dan HIGH adalah argumennya.
Tidak setiap fungsi membutuhkan parameter. Beberapa fungsi seperti fungsi millis() akan mengembalikan nilai tanpa argumen apa pun.
Contoh Proyek
LED adalah cara yang baik untuk mendemonstrasikan topik ini karena dapat diganti dengan perangkat lain yang dapat dikontrol oleh sinyal 5V dari Arduino. Jadi mari kita buat fungsi functionName() berkedip LED hijau dan LED biru.
Ini adalah bagian yang Anda perlukan untuk membangun proyek ini:
- arduino uno
- Kabel jumper
- Papan projectboard
- Schmitt SN74HC14N
- Push button taktil
- Resistor 10K Ohm
- 1 uF kapasitor
Berikut cara menghubungkan rangkaian:
Setelah rangkaian terhubung, unggah kode ini ke Arduino:
Penjelasan Kode
Di bagian setup() ini, kami mengatur mode pin dari pin 9 dan 10 sebagai output.
Di bagian loop() ini kami memanggil fungsi blinkLED() dua kali, sekali untuk setiap pin LED. Setiap kali fungsi dipanggil, Arduino melompat ke tempat fungsi blinkLED() didefinisikan dengan void blinkLED(int pin, int duration).
Dua parameter didefinisikan dalam fungsi blinkLED(), variabel int dipanggil pin dan variabel int disebut duration. Variabel pin akan menyimpan nomor pin Arduino yang dimasukkan sebagai argumen pertama dari fungsi blinkLED() tersebut. Variabel duration akan menyimpan lama kedipan LED dalam milidetik. Nilai ini diatur dalam argumen kedua dari fungsi blinkLED().
Ketika fungsi blinkLED() pertama dipanggil di bagian loop(), angka 9 akan disimpan dalam variabel pin dan angka 500 akan disimpan dalam variabel duration.
Dalam definisi fungsi blinkLED(), kita menulis variabel pin high secara digital, kemudian menunda dengan lamanya waktu yang disimpan dalam variabel duration. Kemudian kita tulis digital variabel pin low dan tunda lagi untuk waktu yang disimpan dalam variabel duration. Ini akan membuat LED yang terhubung ke pin 9 berkedip dan mati setiap 500 milidetik.
Sekarang semua kode di dalam fungsi blinkLED() telah dieksekusi, Arduino keluar dari fungsi dan kembali ke baris kode berikutnya di bagian loop() tersebut.
Baris kode berikutnya di bagian loop() ini adalah fungsi kedua blinkLED(). Jadi sekarang 10 disimpan dalam variabel pin dan 1000 milidetik disimpan dalam variabel duration. Hal ini membuat LED yang terhubung ke pin 10 berkedip dan mati setiap 1000 milidetik.
Sumber: Circuit Basics