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);Tantangan
MudahKenop 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
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Input
2Input Analog
Membaca KenopMengubah Pembacaan Kenop menjadi VoltMemetakan ke PersentaseMenjaga Nilai dalam RentangAmbang KenopLampu Malam OtomatisPin Sakelar Sensor CahayaLatihan sendiri: Playground Arduino