true | false trong Arduino là gì?

Trong Arduino, truefalse là hai giá trị boolean được sử dụng để biểu diễn các trạng thái logic:

  • true: Đại diện cho trạng thái "đúng", tương đương với giá trị số 1.
  • false: Đại diện cho trạng thái "sai", tương đương với giá trị số 0.

Chúng thuộc kiểu dữ liệu boolean và được sử dụng để kiểm soát luồng chương trình, đặc biệt trong các cấu trúc điều kiện và vòng lặp.

1. Định nghĩa kiểu boolean trong Arduino

Arduino hỗ trợ kiểu dữ liệu boolean để làm việc với các giá trị logic:

boolean myFlag = true;  // Biến boolean có giá trị true
  • Giá trị boolean chỉ có thể là true hoặc false.
  • true được ánh xạ thành 1false được ánh xạ thành 0 khi sử dụng trong các phép toán hoặc biểu thức.

2. Sử dụng truefalse trong Arduino

a. Cấu trúc điều kiện

Bạn có thể sử dụng truefalse trong các câu lệnh điều kiện như if hoặc while:

boolean isOn = false;

void setup() {
  Serial.begin(9600);
}

void loop() {
  if (isOn) {
    Serial.println("Đèn đang bật!");
  } else {
    Serial.println("Đèn đang tắt!");
  }
  delay(1000);
  isOn = !isOn;  // Đổi trạng thái giữa true và false
}
b. Vòng lặp

Các vòng lặp while có thể sử dụng true để tạo vòng lặp vô hạn hoặc dựa trên điều kiện logic:

void loop() {
  while (true) {
    Serial.println("Vòng lặp vô hạn!");
    delay(1000);
  }
}
c. Biểu thức logic

Kết hợp truefalse trong các biểu thức logic:

boolean isButtonPressed = false;

void loop() {
  if (!isButtonPressed) {
    Serial.println("Nút chưa được nhấn.");
  } else {
    Serial.println("Nút đã được nhấn.");
  }
}

3. Cách Arduino xử lý truefalse

  • Arduino coi bất kỳ giá trị khác 0true.
  • Chỉ giá trị 0 mới được coi là false.
Ví dụ:
int myValue = 10;

if (myValue) {
  Serial.println("Giá trị khác 0 => true");
} else {
  Serial.println("Giá trị là 0 => false");
}

4. Các trường hợp sử dụng phổ biến

  • Điều kiện bật/tắt thiết bị:

    boolean ledState = false;
    
    void loop() {
    if (ledState) {
      digitalWrite(LED_BUILTIN, HIGH);  // Bật LED
    } else {
      digitalWrite(LED_BUILTIN, LOW);   // Tắt LED
    }
    delay(1000);
    ledState = !ledState;  // Đổi trạng thái
    }
  • Theo dõi trạng thái cảm biến:

    boolean isSensorActive = digitalRead(sensorPin);
    
    if (isSensorActive == true) {
    Serial.println("Cảm biến đang hoạt động.");
    } else {
    Serial.println("Cảm biến không hoạt động.");
    }

5. Một số lưu ý khi sử dụng

  • Kiểu dữ liệu boolean:

    • Arduino hỗ trợ kiểu boolean, nhưng cũng có thể sử dụng int với giá trị 01 nếu cần tương thích với các thư viện cũ.
    • Ví dụ:
      int flag = 1;  // Tương tự true
      if (flag) {
      Serial.println("Đúng");
      }
  • Tiết kiệm bộ nhớ:

    • Mỗi biến boolean chiếm 1 byte bộ nhớ, trong khi nó chỉ cần 1 bit để lưu trữ trạng thái. Khi cần tối ưu hóa, hãy nhóm các trạng thái boolean vào một biến số nguyên.

Tóm tắt:

  • truefalse là hai giá trị logic cơ bản trong Arduino.
  • Chúng được sử dụng để kiểm soát luồng chương trình, xử lý các trạng thái bật/tắt, hoặc kết hợp trong các biểu thức logic.
  • Mọi giá trị khác 0 đều được coi là true, còn 0 được coi là false.