Menu
CoddyTech

Menjaga Nilai dalam Rentang

Termasuk bagian Input dalam perjalanan Arduino di Coddy. Pelajaran 11 dari 22.

Terkadang, hanya sebagian dari rentang yang perlu dihitung. Misalnya, hanya bagian tengah pergerakan kenop yang penting, yaitu pembacaan dari 200 hingga 800, dan rentang itu harus menjadi 0 hingga 100 persen:

int percent = map(reading, 200, 800, 0, 100);

Hasilnya adalah 0 pada 200 dan 100 pada 800, tetapi map() tidak membatasi nilai di ujung rentang. Pembacaan 0 menghasilkan -33, dan 1023 menghasilkan 137. Persentase di bawah 0 atau di atas 100 tidak masuk akal.

constrain(x, low, high) menjaga angka tetap dalam rentang: nilai apa pun di bawah low menjadi low, nilai apa pun di atas high menjadi high, dan semua nilai di antaranya tetap seperti semula.

percent = constrain(percent, 0, 100);
challenge icon

Tantangan

Mudah

Kenop berada di A0. Cetak persentase dengan pembacaan 200 hingga 800 dihitung sebagai 0 hingga 100:

  • petakan pembacaan dari 200 hingga 800 ke rentang 0 hingga 100
  • jaga nilainya tetap antara 0 dan 100 dengan constrain()
  • cetak nilainya, lalu tunggu 100 ms

Tekan Jalankan, putar kenop hingga mentok ke kedua arah, lalu tekan Periksa.

Coba sendiri

void setup() {
  Serial.begin(9600);
}

void loop() {
  int reading = analogRead(A0);
  // petakan 200..800 ke 0..100, pastikan nilainya tetap dalam 0..100, cetak nilainya, lalu tunggu 100 ms
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Input

Latihan sendiri: Playground Arduino