B16 – Sử dụng cấu trúc điều khiển Switch…Case

Trong bài trước, hàm if cho phép lựa chọn giữa hai điều kiện, Đúng hoặc Sai. Để làm việc với nhiều lựa chọn, ta có thể dùng nhiều hàm if..else liên kết hoặc sử dụng Switch. Hàm Switch cho phép lựa chọn giữa nhiều điều kiện độc lập.

Trong ví dụ này ta đọc giá trị từ quang trở. Sử dụng hàm map() để đặt lối ra về bốn giá trị chẵn là : 0, 1, 2, 3. Sau đó dùng cấu trúc Switch để lựa chọn hành động dựa trên các giá trị này. Kết quả được gửi về máy tính và hiển thị trong chương trình.

  • Chương trình
/*
  Switch statement

 This example code is in the public domain.

 */

// gán giá trị nhỏ nhất và lớn nhất cho cảm biến
const int sensorMin = 0;      // sensor minimum, discovered through experiment
const int sensorMax = 600;    // sensor maximum, discovered through experiment

void setup() {
  // khởi tạo truyền thông máy tính
  Serial.begin(9600);
}

void loop() {
  // đọc cảm biến
  int sensorReading = analogRead(A0);
  // đưa giá trị đọc được về giá trị chẵn từ 0 đến 3
  int range = map(sensorReading, sensorMin, sensorMax, 0, 3);

  // lựa chọn hành động
  switch (range) {
    case 0:    // che tay lên cảm biến 
      Serial.println("dark");
      break;
    case 1:    // độ sáng thay đổi
      Serial.println("dim");
      break;
    case 2:    // báo hiệu về máy tính
      Serial.println("medium");
      break;
    case 3:    // có thể chèn lệnh bật/tắt đèn LED 
      Serial.println("bright");
      break;
  }
  delay(1);        // chờ giữa các lần đọc cảm biến
}

Leave a Reply

Your email address will not be published. Required fields are marked *