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 }