Memilih dengan switch
Termasuk bagian Pengaturan Waktu Tanpa Delay dalam perjalanan Arduino di Coddy. Pelajaran 8 dari 18.
Ketika satu variabel dapat memiliki beberapa nilai dan setiap nilai memerlukan kodenya sendiri, rangkaian if dan else if menjadi panjang. switch melakukan hal yang sama dan tampil seperti sebuah daftar:
switch (zone) {
case 0:
// dijalankan saat zone bernilai 0
break;
case 1:
// dijalankan saat zone bernilai 1
break;
default:
// dijalankan saat tidak ada case yang cocok (opsional)
break;
}switch melompat ke case yang nomornya cocok, lalu menjalankan baris-baris di bawahnya. break keluar dari switch. Jika kamu lupa menulis break, papan akan melanjutkan ke baris-baris pada case berikutnya juga. Hal ini disebut falling through.
Di sini, kenop dibagi menjadi empat zona. analogRead() menghasilkan nilai dari 0 hingga 1023, dan membaginya dengan 256 menghasilkan bilangan bulat: 0 untuk seperempat bagian terbawah, lalu 1, 2, dan 3 di bagian atas. Setiap zona menampilkan warnanya sendiri pada LED RGB.
Tantangan
MudahUbah kenop menjadi pemilih warna dengan switch:
- zona 0: merah (sudah ditulis)
- zona 1: hijau
- zona 2: biru
- zona 3: putih (ketiganya menyala)
Gunakan setColor() dan akhiri setiap kasus dengan break;. Tekan Jalankan, putar kenop, lalu tekan Periksa.
Coba sendiri
const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void setColor(int red, int green, int blue) {
digitalWrite(redPin, red);
digitalWrite(greenPin, green);
digitalWrite(bluePin, blue);
}
void loop() {
int zone = analogRead(A0) / 256; // 0, 1, 2 atau 3
switch (zone) {
case 0:
setColor(HIGH, LOW, LOW); // merah
break;
// tambahkan zona 1, 2, dan 3 di sini
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pengaturan Waktu Tanpa Delay
1millis()
Jam millis()Waktu dalam unsigned longLED Berkedip Tanpa JedaDua LED, Dua KecepatanLED Berkedip Saat Tombol Mengubah StatusLampu dengan Pengatur Waktu4Pengaturan Waktu yang Presisi
Mengukur dengan micros()Saat millis() Berputar KembaliStopwatch Tombol2Mesin Keadaan
Mengingat ModeMemilih dengan switchKeadaan Bernama dengan enumMesin Keadaan Lampu Lalu LintasBergilir Antar-Mode dengan TombolLatihan sendiri: Playground Arduino