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
}
