Mengenal Fungsi constrain() pada Arduino
Deskripsi Singkat
Fungsi constrain() pada Arduino adalah sebuah fungsi yang berfungsi untuk memberikan batasan (batas atas dan batas bawah) dari sebuah nilai. Sehingga jika kita menggunakan fungsi constrain() pada sebuah variabel misalnya, nilai dari variabel tersebut akan selalu berada di dalam range yang telah kita tentukan. Contoh penggunaan fungsi constrain() misalnya untuk membatasi pembacaan nilai sensor ultrasonik, membatasi sudut servo pada robot dan lainnya.
Sintaksis
Sintaksis dari fungsi constrain() dapat dilihat di bawah ini.
constrain(x,a,b)
Penjelasan Sintaksis
Seperti yang kita lihat, fungsi constrain() memiliki 3 parameter, yakni x, a, b. Berikut penjelasan dari pada parameter-parameter tersebut.
x = Nilai yang ingin diberi batas, menerima semua jenis data.
a = Nilai batas bawah, menerima semua jenis data.
b = Nilai batas atas, menerima semua jenis data.
Nilai Kembalian
Nilai yang dikembalikan saat menggunakan fungsi constrain() ada 3 tergantung dari nilai parameter x. berikut penjelasannya.
- Fungsi akan mengembalikan nilai x apabila nilai x berada di antara nilai a dan b.
- Fungsi akan mengembalikan nilai a apabila nilai x berada di bawah nilai a.
- Fungsi akan mengembalikan nilai b apabila nilai x berada di atas nilai b.
Contoh Penggunaan Fungsi constrain()
Sekarang kita akan mengamati sebuah contoh penggunaan fungsi constrain(), yaitu membatasi nilai sebuah variabel. Cobalah untuk mempraktikkan kode program di bawah ini pada papan Arduino masing-masing, kemudian amati serial monitor.
Penting: Jangan pernah menggunakan fungsi di dalam fungsi constrain() karena nilainya akan bermasalah. Contoh sintaksis yang salah seperti int constrainedInput = constrain (Serial.parseInt(), minimumValue, maximumValue);.
/*
M. Habib Al Khairi
Blog: https://www.mahirelektro.com
Judul: Contoh penggunaan fungsi constrain();
*/
const int batas_bawah = 20;
const int batas_atas = 100;
int input = 0;
void setup() {
Serial.begin(9600);
delay(2000);
}
void loop() {
for (int i = 0; i < 120; i++) {
input++;
Serial.print("nilai sebenarnya: ");
Serial.print(input);
Serial.print(" sudah dibatasi: ");
Serial.println(constrain(input, batas_bawah, batas_atas));
delay(100);
}
for (int i = 0; i < 120; i++) {
input--;
Serial.print("nilai sebenarnya: ");
Serial.print(input);
Serial.print(" sudah dibatasi: ");
Serial.println(constrain(input, batas_bawah, batas_atas));
delay(100);
}
}
Penjelasan
Terdapat 3 variabel pada contoh kode program di atas, yaitu input, batas_bawah dan batas_atas. Jika program tersebut dijalankan, maka nilai input akan tetap berada di dalam range antara batas_bawah (20) dan batas_atas (100).
Apabila nilai variabel input di antara nilai batas_bawah dan batas_atas maka nilai yang dikembalikan oleh fungsi constrain() adalah nilai variabel input itu sendiri (tidak berubah).
Namun apabila nilai variabel input lebih rendah dari pada batas_bawah (20) maka nilai yang dikembalikan oleh fungsi constrain() adalah nilai dari batas_bawah, yaitu 20.
Kemudian apabila nilai variabel input lebih tinggi dari pada batas_atas (100) maka nilai yang dikembalikan oleh fungsi constrain() adalah nilai batas_atas, yaitu 100.
Tantangan
Cobalah buat kode program untuk membatasi sudut pada sebuah servo menggunakan fungsi constrain().
Jawaban: Cara Membatasi Sudut Motor Servo Arduino
Fungsi Matematika Arduino yang Lain
Berikut adalah daftar fungsi matematika yang terdapat pada Arduino.
- Fungsi pow() pada Arduino
- Fungsi constrain() pada Arduino
- Fungsi abs() pada Arduino
- Fungsi map() pada Arduino
- Fungsi max() pada Arduino
- Fungsi min() pada Arduino
- Fungsi sq() pada Arduino
- Fungsi sqrt() pada Arduino