Menu
CoddyTech

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.

challenge icon

Tantangan

Mudah

Ubah 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
  }
}
quiz iconUji dirimu

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

Semua pelajaran di Pengaturan Waktu Tanpa Delay

Latihan sendiri: Playground Arduino